Error when using different time step dt of ground motion
Posted: Sun Nov 13, 2011 9:32 pm
I am getting the following error message:
"WARNING invalid dt -filePath- Series -dt dt ...
alloc: invalid block: 0101C708: a8 1
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
job aborted:
rank:node:exit code[:error message]
0: Giannis_Str_Lab :3 :process 0 exited without calling finalize
1: Giannis_Str_Lab : 123
2: Giannis_Str_Lab : 123
3: Giannis_Str_Lab : 123
4: Giannis_Str_Lab : 123
5: Giannis_Str_Lab : 123
6: Giannis_Str_Lab : 123
7: Giannis_Str_Lab : 123
child process exited abnormally"
Here is how I call the dynamic analysis in parallel mode:
set tStart [clock seconds]
set np [getNP]
set pid [getPID]
set count 0
set recordsFile [open GMlist.txt r]
foreach line [split [read $recordsFile] \n] {
if {[expr $count % $np] ==$pid} {
# source BuildnoJoints.tcl
doModel
puts "Model Built_ $count __________________________________________________"
# Uniform Earthquake ground motion (uniform acceleration input at all support nodes)
set GMdirection 1; # ground-motion direction
# set GMfile "EQexample" ; # ground-motion filenames
set GMfact [expr 1]; # ground-motion scaling factor
# set up ground-motion-analysis parameters
set DtAnalysis [expr 0.01 * $sec]; # time-step Dt for lateral analysis
# ----------- set up analysis parameters
source LibAnalysisDynamicParameters.tcl; # constraintsHandler,DOFnumberer,system-ofequations,convergenceTest,solutionAlgorithm,integrator
# ------------ define & apply damping
# RAYLEIGH damping parameters, Where to put M/K-prop damping, switches (http://opensees.berkeley.edu/OpenSees/m ... l/1099.htm)
# D=$alphaM*M + $betaKcurr*Kcurrent + $betaKcomm*KlastCommit + $beatKinit*$Kinitial
set xDamp 0.05; # damping ratio
set MpropSwitch 1.0;
set KcurrSwitch 0.0;
set KcommSwitch 0.0;
set KinitSwitch 1.0;
set nEigenI 1; # mode 1
set nEigenJ 3; # mode 3
set lambdaN [eigen [expr $nEigenJ]]; # eigenvalue analysis for nEigenJ modes
set lambdaI [lindex $lambdaN [expr $nEigenI-1]]; # eigenvalue mode i
set lambdaJ [lindex $lambdaN [expr $nEigenJ-1]]; # eigenvalue mode j
set omegaI [expr pow($lambdaI,0.5)];
set omegaJ [expr pow($lambdaJ,0.5)];
set alphaM [expr $MpropSwitch*$xDamp*(2*$omegaI*$omegaJ)/($omegaI+$omegaJ)]; # M-prop. damping; D = alphaM*M
set betaKcurr [expr $KcurrSwitch*2.*$xDamp/($omegaI+$omegaJ)]; # current-K; +beatKcurr*KCurrent
set betaKcomm [expr $KcommSwitch*2.*$xDamp/($omegaI+$omegaJ)]; # last-committed K; +betaKcomm*KlastCommitt
set betaKinit [expr $KinitSwitch*2.*$xDamp/($omegaI+$omegaJ)]; # initial-K; +beatKinit*Kini
# define damping
rayleigh $alphaM $betaKcurr $betaKinit $betaKcomm; # RAYLEIGH damping
# --------------------------------- perform Dynamic Ground-Motion Analysis
set IDloadTag 400; # for uniformSupport excitation
set record [lindex $line 0]
set tmax [lindex $line 1]
set TmaxAnalysis [expr ($tmax+10)*$sec]
set dt [lindex $line 2]
# set dt 0.01
set GMfatt [expr $g*$GMfact]; # data in input file is in g Unifts -- ACCELERATION TH
set AccelSeries "Path -filePath ../Dataccel/$record.g3 -dt $dt -factor $GMfatt"; # time series information
pattern UniformExcitation $IDloadTag $GMdirection -accel $AccelSeries ; # create Unifform excitation
set dataAnDir $dataDir/Data.$record;
file mkdir $dataAnDir;
recorder Node -file $dataAnDir/AccFree.out -node 21 31 41 -dof 1 accel; # Acceleration of free node
recorder Drift -file $dataAnDir/DriftFiberInelastic.out -iNode 21 31 41 -jNode 11 21 31 -dof 1 -perpDirn 2; # Drift ratio between floors
set Nsteps [expr int($TmaxAnalysis/$DtAnalysis)];
set ok [analyze $Nsteps $DtAnalysis]; # actually perform analysis; returns ok=0 if analysis was successful
set Tol 1.0e-8; # convergence tolerance for test
if {$ok != 0} { ; # analysis was not successful.
# --------------------------------------------------------------------------------------------------
# change some analysis parameters to achieve convergence
# performance is slower inside this loop
# Time-controlled analysis
set ok 0;
set controlTime [getTime];
while {$controlTime < $TmaxAnalysis && $ok == 0} {
set controlTime [getTime]
set ok [analyze 1 $DtAnalysis]
if {$ok != 0} {
puts "Trying Newton with Initial Tangent .."
test NormDispIncr $Tol 1000 0
algorithm Newton -initial
set ok [analyze 1 $DtAnalysis]
test $testTypeDynamic $TolDynamic $maxNumIterDynamic 0
algorithm $algorithmTypeDynamic
}
if {$ok != 0} {
puts "Trying Broyden .."
algorithm Broyden 8
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
if {$ok != 0} {
puts "Trying NewtonWithLineSearch .."
algorithm NewtonLineSearch .8
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
}
}; # end if ok !0
wipe
}
incr count 1
}
# puts "Ground Motion Done. End Time: [getTime]"
set tFinish [clock seconds]
puts "Duration process [expr $tFinish-$tStart] $record"
wipe
The GMlist.txt file that contains information about the ground motion is the following:
la1 53 0.02
la2 53 0.02
la3 39 0.01
la4 39 0.01
la5 39 0.01
la6 39 0.01
la7 80 0.02
la8 80 0.02
I guess the problem is that I am not using a constant time step dt for the ground motions, because when if I set dt to be constant and equal to 0.01, I don't have any problem running my analyses!!
Does anyone know how to solve this problem???
Any help or advice would be greatly appreciated.
Thank you very much in advance!!!
"WARNING invalid dt -filePath- Series -dt dt ...
alloc: invalid block: 0101C708: a8 1
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
job aborted:
rank:node:exit code[:error message]
0: Giannis_Str_Lab :3 :process 0 exited without calling finalize
1: Giannis_Str_Lab : 123
2: Giannis_Str_Lab : 123
3: Giannis_Str_Lab : 123
4: Giannis_Str_Lab : 123
5: Giannis_Str_Lab : 123
6: Giannis_Str_Lab : 123
7: Giannis_Str_Lab : 123
child process exited abnormally"
Here is how I call the dynamic analysis in parallel mode:
set tStart [clock seconds]
set np [getNP]
set pid [getPID]
set count 0
set recordsFile [open GMlist.txt r]
foreach line [split [read $recordsFile] \n] {
if {[expr $count % $np] ==$pid} {
# source BuildnoJoints.tcl
doModel
puts "Model Built_ $count __________________________________________________"
# Uniform Earthquake ground motion (uniform acceleration input at all support nodes)
set GMdirection 1; # ground-motion direction
# set GMfile "EQexample" ; # ground-motion filenames
set GMfact [expr 1]; # ground-motion scaling factor
# set up ground-motion-analysis parameters
set DtAnalysis [expr 0.01 * $sec]; # time-step Dt for lateral analysis
# ----------- set up analysis parameters
source LibAnalysisDynamicParameters.tcl; # constraintsHandler,DOFnumberer,system-ofequations,convergenceTest,solutionAlgorithm,integrator
# ------------ define & apply damping
# RAYLEIGH damping parameters, Where to put M/K-prop damping, switches (http://opensees.berkeley.edu/OpenSees/m ... l/1099.htm)
# D=$alphaM*M + $betaKcurr*Kcurrent + $betaKcomm*KlastCommit + $beatKinit*$Kinitial
set xDamp 0.05; # damping ratio
set MpropSwitch 1.0;
set KcurrSwitch 0.0;
set KcommSwitch 0.0;
set KinitSwitch 1.0;
set nEigenI 1; # mode 1
set nEigenJ 3; # mode 3
set lambdaN [eigen [expr $nEigenJ]]; # eigenvalue analysis for nEigenJ modes
set lambdaI [lindex $lambdaN [expr $nEigenI-1]]; # eigenvalue mode i
set lambdaJ [lindex $lambdaN [expr $nEigenJ-1]]; # eigenvalue mode j
set omegaI [expr pow($lambdaI,0.5)];
set omegaJ [expr pow($lambdaJ,0.5)];
set alphaM [expr $MpropSwitch*$xDamp*(2*$omegaI*$omegaJ)/($omegaI+$omegaJ)]; # M-prop. damping; D = alphaM*M
set betaKcurr [expr $KcurrSwitch*2.*$xDamp/($omegaI+$omegaJ)]; # current-K; +beatKcurr*KCurrent
set betaKcomm [expr $KcommSwitch*2.*$xDamp/($omegaI+$omegaJ)]; # last-committed K; +betaKcomm*KlastCommitt
set betaKinit [expr $KinitSwitch*2.*$xDamp/($omegaI+$omegaJ)]; # initial-K; +beatKinit*Kini
# define damping
rayleigh $alphaM $betaKcurr $betaKinit $betaKcomm; # RAYLEIGH damping
# --------------------------------- perform Dynamic Ground-Motion Analysis
set IDloadTag 400; # for uniformSupport excitation
set record [lindex $line 0]
set tmax [lindex $line 1]
set TmaxAnalysis [expr ($tmax+10)*$sec]
set dt [lindex $line 2]
# set dt 0.01
set GMfatt [expr $g*$GMfact]; # data in input file is in g Unifts -- ACCELERATION TH
set AccelSeries "Path -filePath ../Dataccel/$record.g3 -dt $dt -factor $GMfatt"; # time series information
pattern UniformExcitation $IDloadTag $GMdirection -accel $AccelSeries ; # create Unifform excitation
set dataAnDir $dataDir/Data.$record;
file mkdir $dataAnDir;
recorder Node -file $dataAnDir/AccFree.out -node 21 31 41 -dof 1 accel; # Acceleration of free node
recorder Drift -file $dataAnDir/DriftFiberInelastic.out -iNode 21 31 41 -jNode 11 21 31 -dof 1 -perpDirn 2; # Drift ratio between floors
set Nsteps [expr int($TmaxAnalysis/$DtAnalysis)];
set ok [analyze $Nsteps $DtAnalysis]; # actually perform analysis; returns ok=0 if analysis was successful
set Tol 1.0e-8; # convergence tolerance for test
if {$ok != 0} { ; # analysis was not successful.
# --------------------------------------------------------------------------------------------------
# change some analysis parameters to achieve convergence
# performance is slower inside this loop
# Time-controlled analysis
set ok 0;
set controlTime [getTime];
while {$controlTime < $TmaxAnalysis && $ok == 0} {
set controlTime [getTime]
set ok [analyze 1 $DtAnalysis]
if {$ok != 0} {
puts "Trying Newton with Initial Tangent .."
test NormDispIncr $Tol 1000 0
algorithm Newton -initial
set ok [analyze 1 $DtAnalysis]
test $testTypeDynamic $TolDynamic $maxNumIterDynamic 0
algorithm $algorithmTypeDynamic
}
if {$ok != 0} {
puts "Trying Broyden .."
algorithm Broyden 8
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
if {$ok != 0} {
puts "Trying NewtonWithLineSearch .."
algorithm NewtonLineSearch .8
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
}
}; # end if ok !0
wipe
}
incr count 1
}
# puts "Ground Motion Done. End Time: [getTime]"
set tFinish [clock seconds]
puts "Duration process [expr $tFinish-$tStart] $record"
wipe
The GMlist.txt file that contains information about the ground motion is the following:
la1 53 0.02
la2 53 0.02
la3 39 0.01
la4 39 0.01
la5 39 0.01
la6 39 0.01
la7 80 0.02
la8 80 0.02
I guess the problem is that I am not using a constant time step dt for the ground motions, because when if I set dt to be constant and equal to 0.01, I don't have any problem running my analyses!!
Does anyone know how to solve this problem???
Any help or advice would be greatly appreciated.
Thank you very much in advance!!!