Hi everyone,
I have tried to run the following script for the problem of 2DOF system considering impact between the base and the moat wall under earthquake loading.
The program(opensees) stopped running,i don't know why.
Can someone help me to check where is the problem and suggest what do.
Thank you.
#start of the code
wipe all;
set Tn 1.0
set M 100000
set dampRatio 0.02
set alpha1 0.02
set alpha2 0.008
set ko1 966240.8
set ko2 9800000
set n 8
set gamma 0.5
set beta 0.5
set Ao 1
set deltaA 0
set deltaNu 0
set deltaEta 0
set K1 1600000
set K2 326000
set delta -0.00254
set gap -0.7
#number of modes
set numModes 2
#set some constants
set g 9.810
set PI [expr 2.0 * asin(1.0)]
#derived quantaties
set Wn [expr 2.0 * $PI / $Tn]
set c [expr 2.0*$M*$Wn*$dampRatio]
# create the model
wipe
model basic -ndm 1 -ndf 1
node 1 0.0
node 2 0.0 -mass $M
node 3 1.0 -mass $M
node 4 0.0
fix 1 1
uniaxialMaterial Elastic 1 0.0 $c
uniaxialMaterial BoucWen 2 $alpha1 $ko1 $n $gamma $beta $Ao $deltaA $deltaNu $deltaEta
uniaxialMaterial BoucWen 3 $alpha2 $ko2 $n $gamma $beta $Ao $deltaA $deltaNu $deltaEta
uniaxialMaterial ImpactMaterial 4 $K1 $K2 $delta $gap
uniaxialMaterial Parallel 5 1 3
uniaxialMaterial Parallel 6 1 2
uniaxialMaterial Parallel 7 1 4
#element truss eleno -i -j area matt
element truss 1 1 2 1.0 5
element truss 2 2 3 1.0 6
element truss 3 2 4 1.0 7
# perform eigen analysis
set lambda [eigen -fullGenLapack $numModes];
# calculate frequencies and periods of the structure
set omega {}
set f {}
set T {}
set pi 3.141593
foreach lam $lambda {
lappend omega [expr sqrt($lam)]
lappend f [expr sqrt($lam)/(2*$pi)]
lappend T [expr (2*$pi)/sqrt($lam)]
}
puts "omega are $omega"
puts "periods are $T"
print node 3;
print node 2;
set dT 0.02;
set nPts 1500;
set factor $g
timeSeries Path 1 -filePath Elcentro.dat -dt $dT -factor $g
pattern UniformExcitation 1 1 -accel 1
# create the analysis
constraints Plain
integrator Newmark 0.5 [expr 1.0/6.0]
system ProfileSPD
test NormUnbalance 1.0e-12 6 0
algorithm Newton
numberer RCM
analysis Transient
rayleigh 0.7334 0.0026 0. 0.
set t 0.0
set maxT [expr (1+$nPts)*$dT];
set ok 0.0
set maxD 0.0
recorder Node -file disp3.out -time -node 3 -dof 1 disp
recorder Node -file vel3.out -time -node 3 -dof 1 vel
recorder Node -file accel3.out -time -node 3 -dof 1 accel
recorder Drift -file drift4.out -time -iNode 2 -jNode 3 -dof 1 -perpDirn 1
while {$ok == 0 && $t < $maxT} {
set ok [analyze 1 $dT]
if {$ok != 0} {
test NormDispIncr 1.0e-12 100 0
algorithm ModifiedNewton -initial
set ok [analyze 1 .01]
test NormDispIncr 1.0e-12 10
algorithm Newton
}
set time [getTime]
set d [nodeDisp 3 1]
if {$d > $maxD} {
set maxD $d
} elseif {$d < [expr -$maxD]} {
set maxD [expr -$d]
}
set t [expr $t + $dT]
}
puts "record: $record period: $Tn damping ratio: $dampRatio max disp: $maxD"
wipe all;
2 DOF system for base isolation considering impact.
Moderators: silvia, selimgunay, Moderators
-
- Posts: 917
- Joined: Mon Sep 09, 2013 8:50 pm
- Location: University of California, Berkeley
Re: 2 DOF system for base isolation considering impact.
I am not sure if you can define a zerolength truss. Please consider using a zerolength element between nodes 1 and 2
-
- Posts: 25
- Joined: Fri Jun 15, 2018 2:47 am
- Location: Huazhong University of Science & Technology,China
Re: 2 DOF system for base isolation considering impact.
Thank you very much for your kind response, let me work on it.
What about the zero length between node 2 and 4,where i want to include the impact material?
Can you please comment something!
Thank you.
What about the zero length between node 2 and 4,where i want to include the impact material?
Can you please comment something!
Thank you.