Problem with Rotational spring by using zerolength element

Forum for OpenSees users to post questions, comments, etc. on the use of the OpenSees interpreter, OpenSees.exe

Moderators: silvia, selimgunay, Moderators

Post Reply
ljdeng
Posts: 9
Joined: Tue Mar 03, 2009 11:41 pm
Location: Davis, CA
Contact:

Problem with Rotational spring by using zerolength element

Post by ljdeng »

hi, I am building a rotational spring to simulate a hinge. I used EPP material for the spring in which k=200 and theta_y=0.005. The model is built as follows.

# units: kip, inch, sec
wipe;
model BasicBuilder -ndm 2 -ndf 3;

node 1 0 0;
node 2 0 0;
fix 1 1 1 1;

set MatTagFlex 1;
uniaxialMaterial ElasticPP $MatTagFlex 200 0.005

proc rotSpring2D {eleID nodeR nodeC matID1} {
element zeroLength $eleID $nodeR $nodeC -mat $matID1 -dir 6
equalDOF $nodeR $nodeC 1 2
}

rotSpring2D 1 1 2 $MatTagFlex;

# Define RECORDERS -------------------------------------------------------------
recorder Node -file DFree.out -time -node 2 -dof 1 2 3 disp;
recorder Element -file FCol.out -time -ele 1 globalForce;

pattern Plain 1 Linear {
load 2 0. 0. 2.;
}
set Tol 1.0e-8;
constraints Transformation 1.0;
numberer Plain;
system BandGeneral;
test NormDispIncr $Tol 6 ;
algorithm Newton;
set Nstep 100;
integrator DisplacementControl 2 3 0.0001;
analysis Static;
analyze $Nstep;

I ran the model with DisplacementControl at the rotational DOF, and let the spring yield. However, the program ceased to work. The error is like this:

[quote]DisplacementControl::newStep() - domainChanged has not been called
StaticAnalysis::analyze() - the Integrator failed at iteration: 0 with domain at
load factor 0
OpenSees > analyze failed, returned: -2 error flag[/quote]

Could anyone find the problem inside the code? Thank you very much.
Lijun
ljdeng
Posts: 9
Joined: Tue Mar 03, 2009 11:41 pm
Location: Davis, CA
Contact:

Post by ljdeng »

EPP material is the reason for the failure. I changed it to Steel01 and tried LoadControl, and the code works.

Now I get into another question. How do I build a rotational spring in a 3D case? Here is my code.

# units: kip, inch, sec
wipe;
model BasicBuilder -ndm 3 -ndf 6;

node 1 0 0 0;
node 2 0 0 0;
fix 1 1 1 1 1 1 1;

set MatTagFlex 1;
uniaxialMaterial Steel01 $MatTagFlex 1.0 200. 0.0001;

proc rotSpring2D {eleID nodeR nodeC matID1} {
element zeroLength $eleID $nodeR $nodeC -mat $matID1 -dir 5 6
equalDOF $nodeR $nodeC 1 2 3 4
}

rotSpring2D 1 1 2 $MatTagFlex;

# Define RECORDERS -------------------------------------------------------------
recorder Node -file DFree.out -time -node 2 -dof 1 2 3 4 5 6 disp;
recorder Element -file FCol.out -time -ele 1 force;

pattern Plain 1 Linear {
load 2 0. 0. 0. 0. 1.5 0.;
}
set Tol 1.0e-8;
constraints Transformation 1.0;
numberer Plain;
system BandGeneral;
test NormDispIncr $Tol 6 ;
algorithm Newton;
set Nstep 100;
integrator LoadControl 0.01;
analysis Static;
analyze $Nstep;

I hope to build 2 springs in bending axes and equalDOF the other four axes. Seems like that the upper program does not work. Any help will be very appreciated. Thanks.
Lijun
silvia
Posts: 3909
Joined: Tue Jan 11, 2005 7:44 am
Location: Degenkolb Engineers
Contact:

Post by silvia »

don't you need to assign a material in each dof?
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
sadaf_rkh
Posts: 8
Joined: Sat Feb 19, 2011 12:08 am
Contact:

Re: Problem with Rotational spring by using zerolength eleme

Post by sadaf_rkh »

can we use rotspring2D codes for 3D cases???
vesna
Posts: 3033
Joined: Tue May 23, 2006 11:23 am
Location: UC Berkeley

Re: Problem with Rotational spring by using zerolength eleme

Post by vesna »

no, you can not use it as is. modification of the code is needed.
sadaf_rkh
Posts: 8
Joined: Sat Feb 19, 2011 12:08 am
Contact:

Re: Problem with Rotational spring by using zerolength eleme

Post by sadaf_rkh »

how can we modify this code for 3d cases?could you please explain it more?
vesna
Posts: 3033
Joined: Tue May 23, 2006 11:23 am
Location: UC Berkeley

Re: Problem with Rotational spring by using zerolength eleme

Post by vesna »

This can be used for 3D:

proc rotSpring3D {eleID nodeR nodeC matID1 $matID2} {
element zeroLength $eleID $nodeR $nodeC -mat $matID1 $matID2 -dir 5 6
equalDOF $nodeR $nodeC 1 2 3 4
}

And this for 2D:

proc rotSpring2D {eleID nodeR nodeC matID1} {
element zeroLength $eleID $nodeR $nodeC -mat $matID1 -dir 6
equalDOF $nodeR $nodeC 1 2
}
Post Reply