Nonlinear 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
sgs
Posts: 17
Joined: Tue Oct 05, 2010 7:18 am
Location: Lehigh University

Nonlinear zerolength element

Post by sgs »

Hi,
I wanted to model a sdof system with one lumped mass and a nonlinear spring (bilinear) $ apply dynamic load to it.
Here is my code. It does not work and I don't know where I am making the mistake.
Can anyone help me please.

The force is harmonic with T=3sec & Ampl=1.
Could you also tell me how I can define the harmonic load inside my code using "Sine" command?
Thanks,


wipe all;
model BasicBuilder -ndm 2 -ndf 3;
source DisplayModel2D.tcl;

set analysisType "harm_NL_sdof";
if {$analysisType == "harm_NL_sdof"} {
set dataDir Harm_NL_sdof-Output;
file mkdir $dataDir;
}

set mass 0.2533;


set Es 29000.0; # steel Young's modulus
set Fy 7.5; # Section's yielding stress
set b 0.05; # strain-hardening ratio (ratio between post-yield tangent and initial elastic tangent)
set steel01matID 1
uniaxialMaterial Steel01 $steel01matID $Es $Fy $b



# nodal coordinates:
node 1 0 0; # node#, X, Y
node 2 0 0;


fix 1 1 1 1; # node DX DY RZ
fix 2 0 0 0; # node DX DY RZ


mass 2 $mass $mass 0.;

geomTransf Linear 1

element zeroLength 1 2 1 -mat $steel01matID -dir 2

pattern Plain 1 "Series -dt 0.002 -filePath force.txt -factor 10 " {
load 2 0 2 0
}

puts "Model Built"
# display the model with the node numbers
DisplayModel2D NodeNumbers
wipe

recorder Node -file $dataDir/DFree.out -time -node 23 -dof 1 2 3 disp;

set Tol 1.e-8; # Convergence Test: tolerance
set maxNumIter 10; # Convergence Test: maximum number of iterations that will be performed before "failure to converge" is returned
set printFlag 0; # Convergence Test: flag used to print information on convergence (optional) # 1: print information on each step;
set TestType EnergyIncr; # Convergence-test type
test $TestType $Tol $maxNumIter $printFlag;


algorithm ModifiedNewton
integrator Newmark 0.5 0.25
test EnergyIncr 1.0e-6 20 1

numberer Plain
constraints Transformation 1.0
system SparseGeneral
analysis Transient


set DtAnalysis 0.002
set algorithmType ModifiedNewton
set TmaxAnalysis 2

set Nsteps [expr int(2/0.002)];

for {set i 1} {$i <= 4000 } {incr i 1} {
analyze 1 0.002
}
Shahidi
vesna
Posts: 3033
Joined: Tue May 23, 2006 11:23 am
Location: UC Berkeley

Re: Nonlinear zerolength element

Post by vesna »

You need to fix node 2 in directions in which you do not have springs (zero length elements) defined.

For anlaysis objects I will use the following:

algorithm Newton
integrator Newmark 0.5 0.25
test EnergyIncr 1.0e-6 10 1
numberer Plain
constraints Plain
system BandGeneral
analysis Transient

Here is the command that you can use to define trigonometric load:http://opensees.berkeley.edu/wiki/index ... TimeSeries
sgs
Posts: 17
Joined: Tue Oct 05, 2010 7:18 am
Location: Lehigh University

Re: Nonlinear zerolength element

Post by sgs »

Dear vesna,

Thank you for your help,
I fixed those two dofs for node 2, also modified my analysis object based on what you said.

It still doesnt work at none of the time steps & gives me this warning 4000 times:
"analysis failed,
Newmark : : new step()-domainChange failed or hasn't beed called
DirectIntegration Analysis : : analyze() - the Integrator failed at time 0"

Could you please help me?

Is there any example for a nonlinear spring solved with opensees?
Shahidi
vesna
Posts: 3033
Joined: Tue May 23, 2006 11:23 am
Location: UC Berkeley

Re: Nonlinear zerolength element

Post by vesna »

I noticed you had a "wipe" after you defined your model. that is why it did not work.

After I removed it it worked.

wipe all;
model BasicBuilder -ndm 2 -ndf 3;

set mass 0.2533;

set Es 29000.0; # steel Young's modulus
set Fy 7.5; # Section's yielding stress
set b 0.05; # strain-hardening ratio (ratio between post-yield tangent and initial elastic tangent)
set steel01matID 1
uniaxialMaterial Steel01 $steel01matID $Es $Fy $b

# nodal coordinates:
node 1 0 0; # node#, X, Y
node 2 0 0;


fix 1 1 1 1; # node DX DY RZ
fix 2 1 0 1; # node DX DY RZ


mass 2 $mass $mass 0.;

geomTransf Linear 1

element zeroLength 1 2 1 -mat $steel01matID -dir 2

timeSeries Trig 1 0.0 0.6 1.2 -factor 10.0

pattern Plain 1 1 {
load 2 0. 1. 0.
}

puts "Model Built"

#dynamic analysis
numberer Plain
constraints Plain
system BandGeneral
integrator Newmark 0.5 0.25
test EnergyIncr 1.0e-6 10
algorithm Newton

analysis Transient
analyze 10 0.1
Post Reply