I am new to OpenSEES and trying to model soil using Gazeta's springs and dampers. Right now I have written a small code to verify if the 2D soil model I am using is correct.
I defined two uniaxial materials, one elastic (for spring) and another viscous (for damper). Then I defined another uniaxial parallel material made of elastic and viscous material.
I define two uniaxial sections, one for axial for deformation, and one for torsion. (Axial force deformation for X & Y direction and torsion for rotation along Z direction).
Then I defined three zero length elements representing spring and dampers in each direction.
The code I wrote is inline, any suggestions would be highly appreciated. I have just assumed some spring and damper coefficients.
Code: Select all
wipe;
wipeAnalysis;
model basic -ndm 2 -ndf 3;
set u 0.0000000001;
node 1 0. 0. -mass $u $u $u;
node 2 0. 0. -mass $u $u $u;
node 3 0. 10. -mass 1000. $u $u;
fix 1 1 1 1;
fix 2 0 0 1;
fix 3 0 0 0;
geomTransf Linear 1;
uniaxialMaterial Elastic 1 30000.;
uniaxialMaterial Viscous 2 20000. 1.;
uniaxialMaterial Parallel 3 1 2;
section Uniaxial 1 3 P;
section Uniaxial 2 3 T;
element zeroLengthSection 1 1 2 1 -orient 0 1 0 0 0 1; # Vertical Spring-Damper
element zeroLengthSection 2 1 2 1 -orient 1 0 0 0 1 0; # Horizontal Spring-Damper
element zeroLengthSection 3 1 2 2 -orient 0 0 1 0 1 0; # Rotational Spring-Damper
element elasticBeamColumn 4 2 3 100. 1000. 10000. 1;
pattern Plain 1 Linear {
load 3 100. 0. 100.
}
constraints Transformation
numberer RCM
system BandGeneral
test NormDispIncr 1.0e-5 60
algorithm Newton
integrator DisplacementControl 3 1 0.1
analysis Static
analyze 10
#Earthquake Analysis
source ReadSMDFile.tcl;
ReadSMDFile BM68elc.th BM68elc.acc dt;
set accelSeries "Series -dt $dt -filePath BM68elc.acc -factor 1";
pattern UniformExcitation 2 1 -accel $accelSeries;
#rayleigh 0. 0. 0. [expr 2*0.02/pow([eigen 1],0.5)];
constraints Plain;
numberer RCM;
system BandGeneral;
test NormDispIncr 1.0e-8 10;
algorithm Newton;
integrator Newmark 0.5 0.25;
analysis Transient;
analyze 500 0.02;