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
}
Nonlinear zerolength element
Moderators: silvia, selimgunay, Moderators
Nonlinear zerolength element
Shahidi
Re: Nonlinear zerolength element
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
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
Re: Nonlinear zerolength element
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?
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
Re: Nonlinear zerolength element
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
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