Debug Error! in MultiSupport pattern...

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

Moderators: silvia, selimgunay, Moderators

Post Reply
JoseLeo

Debug Error! in MultiSupport pattern...

Post by JoseLeo »

hi.. i am running a transient analysis on a building frame supported on piles.

-the piles are modeled with nonlinear P-y Method using beam-column elements and PySimple1 Materials for soil springs.

-excitation is applied as a multi-support excitation on the pile nodes.

A Debug Error! is always generated when running the analysis. I have tried working with a very simple SDOF model but still the same error persist.

has anyone tried using multisupport excitation pattern in OpenSees?

thanks.
silvia
Posts: 3909
Joined: Tue Jan 11, 2005 7:44 am
Location: Degenkolb Engineers
Contact:

i have posted a reply under documentation

Post by silvia »

Here is an example file that works, you might want to check, but I am not using p-y springs materials

# ------------------------------------------------------------------------------------------- run STUDY
# UNIFORM VS. MULTIPLE-SUPPORT EXCITATION
# written by: Silvia Mazzoni, March 2003

# Run a time-history analysis on an elastic frame with soil springs. Two types of ground-motion inputs will be studied:
# 1. Uniform excitation. the same excitation is imposed at the supports (acceleration time history input)
# 2. Multiple-support excitation. different excitations are imposed at the supports (displacement time history)

# STUDY PARAMETERS -----------------------------------------------------------------------
set iINtype {"Unif" "Mult"}; # ground-motion input type
set iGroundFile {"H-e12140" "H-e01140" }; # ground-motion filenames

foreach INtype $iINtype {
foreach GroundFile $iGroundFile {

wipe
model basic -ndm 2 -ndf 3; # basic: modelbuilder type, number of dimensions, #dof/node
#-----------------------------------------------------------------------------------------------------------------------define PARAMETERS
# define UNITS
set cm 1.; # basic length unit
set kN 1.; # basic force unit
set sec 1.; # basic time unit
#set mm [expr $cm/10.];
set meter [expr $cm*100.];
#set Newt [expr $kN/1000.];
#set Pascal [expr $Newt/$meter/$meter];
set MPa [expr pow(10,6)*($kN/1000.)/$meter/$meter];
set g [expr 9.807*$meter/pow($sec,2)]; # gravitational constant
set PI 3.141592654
#set U 1.e10; # a really large number
#set u $U;
# ------ define GEOMETRY & MATERIAL parameters
set Nbay 3; # number of bays in frame
set Hstory [expr 20.*$meter/6.]; # story height
set Lbay [expr 20.*$meter/3.]; # bay length
set Ecol 1.; # column flexural stiffness is reflected in Icol
set Ebeam 1.; # beam flexural stiffness is reflected in Ibeam
set EAcol [expr 1.441e8*pow($cm,2)]; # column cross-sectional area -- 30"x30"col
set EAbeam [expr 1.153e8*pow($cm,2)]; # beam cross-sectional area -- 24"x30" beam
set EIcol [expr 2.86e10*$MPa*pow($cm,4)]; # column flexural stiffness EI, as E has been set to 1.
set EIbeam [expr 2.14e10*$MPa*pow($cm,4)]; # beam flexural stiffness EI, as E has been set to 1
set Ksoil 100000000; # soil-spring stiffness
set WeightNode [expr 175*$kN]
set IDtl 1; # tag for linear transformation
set matTagSoilSpring 1; # tag for soil material
# ------ define DYNAMICS parameters
set xDamp 0.05; # modal damping ratio
set GMfact 1.; # ground-motion scaling factor
set MassNode [expr $WeightNode/$g]; # nodal mass
# ------ set ANALYSIS parameters
set DtAnalysis [expr 0.005*$sec]; # time-step Dt for lateral analysis
set DtGround [expr 0.02*$sec]; # time-step Dt for input grond motion
set TmaxGround [expr 50 *$sec]; # maximum duration of ground-motion analysis
set gamma 0.5; # gamma value for newmark integration
set beta 0.25; # beta value for newmark integration
#-----------------------------------------------------------------------------------------------------------------------end of PARAMETERS
#----------------------------------------------------------------------------------------------------------------------- set up NODAL MESH
# Define nodes ------ frame is in X-Y plane (X-horizontal, Y-vertical)
for {set iNode 0} {$iNode <=$Nbay } {incr iNode 1} {
node [expr 901+$iNode] [expr $iNode*$Lbay] 0.0; # soil
node [expr 101+$iNode] [expr $iNode*$Lbay] 0.0; # foundation
node [expr 201+$iNode] [expr $iNode*$Lbay] $Hstory -mass $MassNode 0.0 0.0; # first story
node [expr 301+$iNode] [expr $iNode*$Lbay] [expr 2.*$Hstory] -mass $MassNode 0.0 0.0; # second story
node [expr 401+$iNode] [expr $iNode*$Lbay] [expr 3.*$Hstory] -mass $MassNode 0.0 0.0; # top story
}
# Boundary conditions -- 1=restrained, 0=released
for {set iNode 0} {$iNode <=$Nbay } {incr iNode 1} {
if {$INtype=="Unif"} {
fix [expr 901+$iNode] 1 1 1;
}
if {$INtype=="Mult"} {; # each node has a Multferent input ground motion
fix [expr 901+$iNode] 0 1 1;
}
fix [expr 101+$iNode] 0 1 0;
fix [expr 201+$iNode] 0 0 0;
fix [expr 301+$iNode] 0 0 0;
fix [expr 401+$iNode] 0 0 0;
}
# -------------------------------------------------------------------------------------------------------------------------------- end of NODAL MESH
#-------------------------------------------------------------------------------------------------------- definition of MATERIALS
# define SOIL-SPRING MATERIAL
uniaxialMaterial Elastic $matTagSoilSpring $Ksoil
# ------------------------------------------------------------------------------------------------------------------------------------- end of MATERIALS
# ----------------------------------------------------------------------------------------------------------------- set up ELEMENTS
geomTransf Linear $IDtl; # Linear: no second-order effects
# Define COLUMNS
for {set iNode 0} {$iNode <=$Nbay } {incr iNode 1} {
element elasticBeamColumn [expr 101+$iNode] [expr 101+$iNode] [expr 201+$iNode] $EAcol $Ecol $EIcol $IDtl
element elasticBeamColumn [expr 201+$iNode] [expr 201+$iNode] [expr 301+$iNode] $EAcol $Ecol $EIcol $IDtl
element elasticBeamColumn [expr 301+$iNode] [expr 301+$iNode] [expr 401+$iNode] $EAcol $Ecol $EIcol $IDtl
}
# Define BEAMS
for {set iNode 0} {$iNode <=[expr $Nbay-1] } {incr iNode 1} {
element elasticBeamColumn [expr 601+$iNode] [expr 201+$iNode] [expr 201+1+$iNode] $EAbeam $Ebeam $EIbeam $IDtl
element elasticBeamColumn [expr 701+$iNode] [expr 301+$iNode] [expr 301+1+$iNode] $EAbeam $Ebeam $EIbeam $IDtl
element elasticBeamColumn [expr 801+$iNode] [expr 401+$iNode] [expr 401+1+$iNode] $EAbeam $Ebeam $EIbeam $IDtl
}
# Define SOIL SPRINGS
for {set iNode 0} {$iNode <=[expr $Nbay] } {incr iNode 1} {
element zeroLength [expr 901+$iNode] [expr 901+$iNode] [expr 101+$iNode] -mat $matTagSoilSpring -dir 1
}
# -----------------------------------------------------------------------------------------------------------------------------------end of ELEMENTS
# ------------------------------------------------------------------------------------------------------------------- set up OUTPUT
set Dir "data/"
file mkdir $Dir
set File5 _in$INtype
set File6 _gm$GroundFile
set File56 $File5$File6
# Record nodal displacements -NODAL DISPLACEMENTS
set File1 DLevels
set fileName $Dir$File1$File56
set Levels 1
region $Levels -node 901 101 201 301 401
recorder Node -file $fileName.out -time -region $Levels -dof 1 disp
# -------------------------------------------------------------------------------------------------------------------------------------------end of OUTPUT
#--------------------------------------------------------------------------- set up LATERAL-LOAD ANALYSIS
# the following commands set up a linear-elast analysis -- see manual for reference
wipeAnalysis
system ProfileSPD
constraints Plain
algorithm Linear
numberer RCM
set dirn 1; # ground-motion direction
# read a PEER strong motion database file, extracts dt from the header and converts the file
# to the format G3 expects for Unifform ground motions
source ReadSMDFile.tcl; # read in procedure Multinition
set dir "GMfiles/"
set outFile $dir$GroundFile.g3; # set variable holding new filename (PEER files have .at2 extension)
if {$INtype=="Unif"} {; # UnifFORM EXCITATION
set inFile $dir$GroundFile.at2
ReadSMDFile $inFile $outFile dt; # call procedure to convert the ground-motion file
set GMfatt [expr $g*$GMfact]; # data in input file is in g Unifts -- ACCELERATION TH
set GMseries "Series -dt $dt -filePath $outFile -factor $GMfatt"; # time series information
pattern UniformExcitation 1 $dirn -accel $GMseries ; # create Unifform excitation
}
if {$INtype=="Mult"} {; # MultPLE-SUPPORT EXCITATION each node has a Multferent input ground motion
set node0 901
for {set iNode $node0} {$iNode <=[expr $node0+$Nbay] } {incr iNode 1} {
set NodeName Node$iNode
set inFile $dir$GroundFile$NodeName.dt2
ReadSMDFile $inFile $outFile dt; # call procedure to convert the ground-motion file
set GMfatt [expr $cm*$GMfact]; # data in input file is in cm Unifts -- DISPLACEMENT TH
set GMseries "Series -dt $dt -filePath $outFile -factor $GMfatt"; # time series information
set patternTag $iNode
pattern MultipleSupport $patternTag {
set GMtag $iNode
groundMotion $GMtag Plain -disp $GMseries
imposedSupportMotion $iNode $dirn $GMtag
}; # end pattern
}; # end iNode
}
# determine DAMPING parameters from $xDamp and eigenvalues --SDOF system
set Lambda [eigen 1]; # eigenvalue analysis
set lambda [lindex $Lambda 0]; # for Mdof
set omega [expr pow($lambda,0.5)]
set Tperiod [expr 2*$PI/$omega]; # period (sec.) # checked with my Mcad
set alphaM 0; # stiffness-prop. RAYLEIGH damping parameter; D = alphaM*M
set betaK 0; # stiffness proportional damping; +beatK*KCurrent
set betaKinit 0; # initial-stiffness proportional damping +beatKinit*Kini
set betaKcomm [expr 2*$xDamp/$omega]; # mass-prop. RAYLEIGH damping parameter; +betaKcomm*KlastCommitt
rayleigh $alphaM $betaK $betaKinit $betaKcomm ; # M & K prop damping
integrator Newmark $gamma $beta
analysis Transient
set Nsteps [expr int($TmaxGround/$DtAnalysis)];
analyze $Nsteps $DtAnalysis
# ------------------------------------------------------------------------------------------------------------------------ end of LATERAL-LOAD ANALYSIS

}; # end GroundFile loop
}; # end INtype loop
wipe; # release all output files
# --------------------------------------------------------------------------------------------------------------------end of STUDY
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Post by fmk »

why not post your real simple model so i can look at it?
Guest

Post by Guest »

thanks for the reply. my tcl file input is quite long and mind not just posting it.

fortunately i was able to get rid of the Debug Error! message, with the error now being reduced to a convergence failure warning where the algorithm failed at some time in the analysis.

i have seen that the Debug Error! message appears when there is an element recorder present where the analysis actually failed to converge, which i just know when i tried to remove the element recorder. Node recorders do reported partial results up the time the algorithm failed.

thanks too for the example file..
rmchndrn
Posts: 3
Joined: Thu Apr 28, 2005 3:25 pm

Post by rmchndrn »

To Silvia,

Correct me if you are wrong but are you using the Plain constraints handler for both the Uniform and the multi-support excitation. I was under the impression that the Plain constraints handler works only for homogeneous SP constraints.

Thanks
Jayram
silvia
Posts: 3909
Joined: Tue Jan 11, 2005 7:44 am
Location: Degenkolb Engineers
Contact:

Post by silvia »

true, that was an old file, when I didn't know any better -- it still worked, though. Nowadays I use the transformation constraint.
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
rmchndrn
Posts: 3
Joined: Thu Apr 28, 2005 3:25 pm

Post by rmchndrn »

Hi,

I'm trying to figure out how exactly Multisupport excitation compares with Uniform excitation. I observe the following differences:

Uniform excitation uses -accel record
Multisupport excitation uses -disp record

Uniform excitation uses Plain constraint handler
Multisupport excitation uses any other constraint handler

We fix all base dof for Uniform excitation
We free the dof in the direction that Multisupport excitation is applied

Uniform excitation outputs relative displacements
Multisupport excitation outputs total displacements


I tried comparing the two for a SDOF system under harmonic loading. The uniform excitation matches the theoretical response, however Multisupport excitation is totally off. Is there anything I'm missing in the modeling?

Thanks
Jayram
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Post by fmk »

for the sine wave don't forget to impose the correct initial condition on the velocity when using uniform excitation.
silvia
Posts: 3909
Joined: Tue Jan 11, 2005 7:44 am
Location: Degenkolb Engineers
Contact:

Post by silvia »

I am working on the example, but here is the script for the lateral-loading part:

set GMampl [expr 2*$in]; # sine ground-motion acceleration amplitude
set omegaSine [expr 0.5*$omega];
set TperiodSine [expr 2*$Tperiod];
set vel0 [expr -$omegaSine*$GMampl];


if {$ModelType == "CantiMSsine"} {
set GMscale [expr $GMampl]
set dispSeries "Sine 0. $TmaxGround $TperiodSine -factor $GMscale "
pattern MultipleSupport $IDloadTagA {
set IDgm 1
groundMotion $IDgm Series -disp $dispSeries
imposedMotion $basenode $dirn $IDgm
}
} elseif {$ModelType == "CantiUSsine"} {
set GMscale [expr $GMampl*(-1.)*$omegaSine*$omegaSine ]; # acceleration corresponding to displacement hist.
set accelSeries "Sine 0. $TmaxGround $TperiodSine -factor $GMscale"
pattern UniformExcitation $IDloadTagA 1 -accel $accelSeries -vel0 $vel0
I have checked the above script and it works, giving the same relative displacement at the top of a cantilever.
I hope this helps.
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
Post Reply