I am having trouble analyzing my problem. I have a ndm2, ndf2 soil mesh and I am trying to place a beam element on top of the soil simulating a foundation and connecting the beam nodes to the soil nodes by springs. The beam element has ndm2 and ndf3, so I am using dummy nodes to connect the beam nodes to the soil nodes. The dummy nodes have ndm2 and ndf2, they have equalDOF with the beam nodes in dof 1 and 2 and then they are connected to the soil nodes by zero-length elements.
I cannot see anything wrong with what I am doing, yet when I try to run it, the analysis fails.
Could you please help me find the problem? I am attaching my code.
Thanks
Code: Select all
# SET UP ----------------------------------------------------------
wipe all;
source Units.tcl;
# Define PARAMETERS------------------------------------------------
set gravY [expr -9.81*1691];
set gravX 0;
# BUILD Soil Model-------------------------------------------------
# BUILD model
model basic -ndm 2 -ndf 2;
######## drained, pressure depend ####################
####### $tag $nd $rho $refShear $Bulk $frictionAng $peakShearStra $refP $pCoef
########## $PTAng $contrac $dilat1 $dilat2 $liqfac1 $liqfac2 $liqfac3 #######
nDMaterial PressureDependMultiYield 1 2 1691 1.0e8 3.0e8 35 0.1 [expr 80*$kPa] 0.5 \
27.0 0.05 0.6 3 0.0 0.015 1.0;
updateMaterialStage -material 1 -stage 0;
# Define GEOMETRY ----------------------------------------------
# Soil nodal coordinates:
node 1 0 0;
node 2 1 0;
node 3 1 2;
node 4 0 2;
# Constraints
fix 1 1 1;
fix 2 1 1;
# Soil quad elements
element quad 1 1 2 3 4 0.3048 "PlaneStrain" 1 $press $rho_s $gravX $gravY;
# Input beam nodes and elements----------------------------------
set Estiff 1.e10;
# generate beam nodes that have the same coordinates as the top soil nodes
model BasicBuilder -ndm 2 -ndf 3;
node 103 1 2;
node 104 0 2;
# generate spring contact nodes and spring elements
model BasicBuilder -ndm 2 -ndf 2;
uniaxialMaterial Elastic 2 $Estiff;
node 1003 1 2;
equalDOF 1003 103 1 2; # equal dof bt the beam node and the dummy node
element zeroLength 2 3 1003 -mat 2 -dir 2;
uniaxialMaterial Elastic 3 $Estiff;
node 1004 0 2;
equalDOF 1004 104 1 2; # equal dof bt the beam node and the dummy node
element zeroLength 3 4 1004 -mat 3 -dir 2;
# Add beam elements
model BasicBuilder -ndm 2 -ndf 3;
set Bmat [expr 22.86*0.001*36.0];
set PlaneStrainWidth 12*$in;
set Amat [expr $Bmat*$PlaneStrainWidth];
set Imat [expr $PlaneStrainWidth*$Bmat*$Bmat*$Bmat/12];
set Ea [expr 7.0e7*$kPa];
set BeamTransfTag 1;
geomTransf Linear $BeamTransfTag;
element elasticBeamColumn 4 104 103 $Amat $Ea $Imat $BeamTransfTag;
# Define and Apply soil+wall GRAVITY load (elastic)----------------------------
# Rezero time and wipe previous analysis objects
setTime 0.0;
loadConst;
wipeAnalysis;
# Recorder for nodal displacement
eval "recorder Node -file Output/disp2.out -time -node all -dof 1 2 disp";
# Create the SOE, ConstraintHandler, Integrator, Algorithm and Numberer
system BandGeneral;
test NormDispIncr 4.e-4 50 1; ## should be 1.e-4
algorithm ModifiedNewton;
constraints Transformation; #Transformation ### WHY????
integrator LoadControl $lf_sw 1 $lf_sw $lf_sw;
numberer RCM;
analysis Static ;
analyze 1;