MESH SIZE

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

Moderators: silvia, selimgunay, Moderators

Post Reply
Beyhan BAYHAN
Posts: 4
Joined: Thu Oct 12, 2006 11:12 am
Location: Mersin University

MESH SIZE

Post by Beyhan BAYHAN »

I try to get the accurate results by modifying the mesh size in a cantilever beam (nonlinear beam column element). The section dimension is 600mm x 600mm. I do dynamic analyses (lumped mass at the top) by defining 10 x 10, 20 x 20,
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

}

Post Reply