Hello Everyone,
I had some problems running linear dynamic analyses for Opensees models that contain shell elements. I was wondering if someone else had similar problem, and whether this a bug or a mistake in my models.
Generally, If the model has shell elements with rho value defined and subjected to external excitation the error will happen and the model will either not run successfully, or run but its response diverge quickly.
If I use SparseSPD for the system of equations, the model will run but the response will diverge quickly and give #QNAN in the results.
If I use BandSPD instead, the model will stop and give this error:
WARNING BandSPDLinLapackSolver::solve() - the LAPACK routines returned 5
WARNING Linear::solveCurrentStep() -the LinearSOE failed in solve()
DirectIntegrationAnalysis::analyze() - the Algorithm failed at time 0.1
OpenSees > analyze failed, returned: -3 error flag
For example, I adapted the model from this link to have an earthquake excitation and a linear analysis algorithm:
http://opensees.berkeley.edu/OpenSees/m ... ML/876.htm
The resulting model is quoted at the bottom of this message.
It assumes El Centro earthquake record is in the file ElCentroEQ.thf (which i have not attached, but any record can be used to regenerate the problem).
Even a model with single or few shell elements will have the same problem.
#--------------------------------------------------------------------------------------
# ----------------------------
# Start of model generation
# ----------------------------
model basic -ndm 3 -ndf 6
# create the material
section ElasticMembranePlateSection 1 3.0e3 0.25 1.175 1.27
# set some parameters for node and element generation
set Plate ShellMITC4
set eleArgs "1"
#these should both be even
set nx 8
set ny 2
#loaded nodes
set mid [expr ( ($nx+1)*($ny+1)+1 ) / 2 ]
set side1 [expr ($nx + 2)/2 ]
set side2 [expr ($nx+1)*($ny+1) - $side1 + 1 ]
# generate the nodes and elements
block2D $nx $ny 1 1 $Plate $eleArgs {
1 -20 0 0
2 -20 0 40
3 20 0 40
4 20 0 0
5 -10 10 20
7 10 10 20
9 0 10 20
}
# TimeSeries "ElCentroEQ": tsTag dt filePath cFactor
timeSeries Path 1 -dt +2.000000E-002 -filePath ElCentroEQ.thf -factor +2.000000E+000
#EQ excitation
pattern UniformExcitation 1 2 -accel 1
# define the boundary conditions
# rotation free about x-axis (remember right-hand-rule)
fixZ 0.0 1 1 1 0 1 1
fixZ 40.0 1 1 1 0 1 1
# ----------------------------
# Start of recorder generation
# ----------------------------
recorder Node -file Node.out -time -node $mid -dof 2 disp
# ---------------------------------------
# Create and Perform the dynamic analysis
# ---------------------------------------
# Create the transient analysis
test EnergyIncr 1.0e-10 20 0
algorithm Linear
numberer Plain
constraints Plain
system SparseSPD
#integrator GeneralizedMidpoint 0.50
integrator Newmark 0.50 0.25
analysis Transient
# Perform the transient analysis (20 sec)
analyze 1000 0.02
wipe
Linear dynamic analysis diverges with ShellMITC4 elements
Moderators: silvia, selimgunay, Moderators