30 x 30, 40 x 40, 50 x 50 and 60 x 60 meshes ("quad"command) respectively. Time History results show that except for the 20 x 20 mesh, the curves coincide. I could not give a meaning to this situation.
How can a 10 x 10 mesh be better than 20 x 20 mesh? Is it possible to be related with convergence error or any numerical problems, although all analyses are completed succesfully?
I attach the files to the message.
Best Regards,
Beyhan BAYHAN
GRAVITY ANALYSIS
Code: Select all
#CANTILEVER - FIBER MODEL - GRAVITY ANALYSIS
#units are N, mm
model basic -ndm 2 -ndf 3
set height 3000
#Create Nodes
node 1 0.0 0.0
node 2 0.0 $height
#Fix supports at base of columns
fix 1 1 1 1
#Define materials for nonlinear columns
# ------------------------------------------
# CONCRETE tag f'c ec0 f'cu ecu
# Core concrete (confined)
uniaxialMaterial Concrete01 1 -30.0 -0.002 -25.5 -0.012
# STEEL
# Reinforcing steel
set fy 420
set E 200000
# tag fy E0 b
uniaxialMaterial Steel01 3 $fy $E 0.004
#Define cross-section for nonlinear columns
set colwidth 600
set coldepth 600
set cover 25
set As 452.39
set y1 [ expr $coldepth/2.0]
set z1 [ expr $colwidth/2.0]
section Fiber 1 {
#Cretae the concrete core fibers
patch quad 1 $intpointno $intpointno [expr $y1] [expr $z1] [expr -$y1] [expr $z1] [expr -$y1] [expr -$z1] [expr $y1] [expr -$z1]
# Create the reinforcing fibers (left, middle, right)
layer straight 3 3 $As [expr $y1-$cover] [expr $z1-$cover] [expr $y1-$cover] [expr $cover-$z1]
layer straight 3 2 $As 0.0 [expr $z1-$cover] 0.0 [expr $cover-$z1]
layer straight 3 3 $As [expr $cover-$y1] [expr $z1-$cover] [expr $cover-$y1] [expr $cover-$z1]
}
#Define column elements
#Geometry of column elements
geomTransf Linear 1
#Number of integration points along length of element
#set np [expr $intpointno]
set np 5
#Create the columns using Beam-column elements
element nonlinearBeamColumn 1 1 2 $np 1 1 -iter 200 1.0e-6
#Define gravity Loads
set P 1000
#Create a Plain load Pattern with a linear time series
pattern Plain 1 Linear {
load 2 0.0 [expr -$P] 0.0
}
#End of Model Generation
#Start of analysis generation
system BandGeneral
constraints Transformation
numberer RCM
test NormDispIncr 1.0e-12 10 3
algorithm Newton
integrator LoadControl 0.1 1 0.1 0.1
analysis Static
initialize
analyze 10
print 2
DYNAMIC ANALYSIS
Code: Select all
#CANTILEVER - DYNAMIC ANALYSIS
# Units: N, mm, sec
# ----------------------------------------------------
# Start of Model Generation & Initial Gravity Analysis
# ----------------------------------------------------
set intpointno_list "5 10 20 30 40 50 60"
foreach intpointno $intpointno_list {
set prefilename $intpointno
puts "$intpointno"
# Do operations of Example3.1 by sourcing in the tcl file
source GRAVITYANALYSIS.tcl
puts "Gravity load analysis completed"
# Set the gravity loads to be constant & reset the time in the domain
loadConst -time 0.0
# ----------------------------------------------------
# End of Model Generation & Initial Gravity Analysis
# ----------------------------------------------------
# ----------------------------------------------------
# Start of additional modelling for dynamic loads
# ----------------------------------------------------
# Define nodal mass in terms of axial load on columns
set g 9814
set m 203.8; # expr command to evaluate an expression
# tag MX MY RZ
mass 2 $m $m 0
# Define dynamic loads.
# --------------------
# Set some parameters
set outFile ARL360.g3
# Source in TCL proc to read PEER SMD record
source ReadSMDFile.tcl
# Permform the conversion from SMD record to OpenSees record
# inFile outFile dt
ReadSMDFile ARL360.at2 $outFile dt
# Set time series to be passed to uniform excitation
set accelSeries "Path -filePath $outFile -dt $dt -factor $g"
# Create UniformExcitation load pattern
# tag dir
pattern UniformExcitation 2 1 -accel $accelSeries
# set the rayleigh damping factors for nodes & elements
rayleigh 0.0 0.0 0.0 0.0
# ----------------------------------------------------
# End of additional modelling for dynamic loads
# ----------------------------------------------------
# ---------------------------------------------------------
# Start of modifications to analysis for transient analysis
# ---------------------------------------------------------
# Delete the old analysis and all it's component objects
wipeAnalysis
# Create the system of equation, a banded general storage scheme
system BandGeneral
# Create the constraint handler, a plain handler as homogeneous boundary
constraints Plain
# Create the convergence test, the norm of the residual with a tolerance of
# 1e-12 and a max number of iterations of 10
test NormDispIncr 1.0e-6 1000
# Create the solution algorithm, a Newton-Raphson algorithm
algorithm Newton
# Create the DOF numberer, the reverse Cuthill-McKee algorithm
numberer RCM
# Create the integration scheme, the Newmark with alpha =0.5 and beta =.25
integrator Newmark 0.5 0.25
# Create the analysis object
analysis Transient
# ---------------------------------------------------------
# End of modifications to analysis for transient analysis
# ---------------------------------------------------------
# ------------------------------
# Start of recorder generation
# ------------------------------
# Create a recorder to monitor nodal displacements
recorder Node -time -file $prefilename.node2ARL360.out -node 2 -dof 1 disp
# --------------------------------
# End of recorder generation
# ---------------------------------
# ------------------------------
# Finally perform the analysis
# ------------------------------
# Perform an eigenvalue analysis
puts "eigen values at start of transient: [eigen 1]"
# set some variables
set tFinal [expr 2000 * 0.02]
set tCurrent [getTime]
set ok 0
# Perform the transient analysis
while {$ok == 0 && $tCurrent < $tFinal} {
set ok [analyze 1 .02]
# if the analysis fails try initial tangent iteration
if {$ok != 0} {
puts "regular newton failed .. lets try an initail stiffness for this step"
test NormDispIncr 1.0e-6 1000 0
algorithm ModifiedNewton -initial
set ok [analyze 1 .01]
if {$ok == 0} {puts "that worked .. back to regular newton"}
test NormDispIncr 1.0e-6 2000
algorithm Newton
}
set tCurrent [getTime]
}
# Print a message to indicate if analysis succesfull or not
if {$ok == 0} {
puts "Transient analysis completed SUCCESSFULLY";
} else {
puts "Transient analysis completed FAILED";
}
# Perform an eigenvalue analysis
puts "eigen values at start of transient: [eigen 1]"
# Print state of node 3
print node 2
wipe
}