about recorder elements

For posts concerning the documentation, errors, ommissions, general comments, etc.

Moderators: silvia, selimgunay, Moderators

Post Reply
Zeynep
Posts: 14
Joined: Thu Oct 27, 2005 7:37 am

about recorder elements

Post by Zeynep » Thu Oct 27, 2005 8:10 am

I have a problem with using recorder elements:

I did run successfully, but, failed to run and gave error message.

I'm attaching the file used. Could you please check and run the files?

Thank you so much for your help.
And, I'm looking forward to your answer.
-------

set in 1.; # define basic unit -- length
set sec 1.; # define basic unit -- time
set kip 1.; # define basic unit -- weight (or define force, but not both)
set ksi [expr $kip/pow($in,2)]; # define engineering units
set psi [expr $ksi/1000.];
set ft [expr 12.*$in];
set g [expr 32.2*$ft/pow($sec,2)];
set PI [expr 2*asin(1.0)]; # define constants
set U 1.e10; # a really large number
set u [expr 1/$U]; # a really small number
puts "Units have been defined"

puts "Begin material definition"
set fc -5;
set fy 60;
set fc [expr -$fc*$ksi]; # CONCRETE Compressive Strength, ksi (+Tension, -Compression)

set Ec [expr 57*sqrt($fc*1000)];# Concrete Elastic Modulus
set Fy [expr $fy*$ksi]; # STEEL yield stress
set Es [expr 29000.*$ksi]; # modulus of steel
set epsY [expr $Fy/$Es]; # steel yield strain
set Iz [expr pow(15,4)/12];
set Izb [expr (36*pow(18,3))/12];

model basic -ndm 2 -ndf 3;
puts "the Model has been built"

# Set parameters for overall model geometry
set width 75
set height 100.5

# Create nodes
# tag X Y
node 1 0.0 0.0
node 2 $width 0.0
node 3 0.0 $height
node 4 $width $height
puts ok
# Fix supports at base of columns
# tag DX DY RZ
fix 1 1 1 1
fix 2 1 1 1
puts "Nodal Coordinates and Boundary Conditions have been defined"
# CONCRETE tag f'c ec0 f'cu ecu
# Core concrete (confined)
uniaxialMaterial Concrete01 1 -5.0 -0.0022 -4.25 -0.004
# Cover concrete (unconfined)
uniaxialMaterial Concrete01 2 -5.0 -0.0022 -4.25 -0.004
# STEEL
# Reinforcing steel
set fy 60.0; # Yield stress
set E 29000.0; # Young's modulus
# tag fy E0 b
uniaxialMaterial Steel01 3 $fy $E 0.0



# set up parameters for column section and element definition
set IDcore 1; # ID tag for core concrete
set IDcover 2; # ID tag for cover concrete
set IDsteel 3; # ID tag for steel
puts "All material variables have been defined"

# define GEOMETRY variables
set IDcolFlex 2; # ID tag for column section in flexure, before aggregating torsion
set Radius 6;
set Diameter [expr $Radius*2];
set Lcol 91.5; # column length
set cover 0.88; # column cover width
set GrhoCol 0.01556; # column longitudinal-steel ratio
set Weight 18.18; # superstructure weight

set G $U; # Torsional stiffness Modulus
set J 1.; # Torsional stiffness of section
set GJ [expr $G*$J]; # Torsional stiffness


set riCol 0.0; # inner radius of column section
set roCol $Radius; # outer radius of column section
set nfCoreR 8; # number of radial fibers in core (number of "rings")
set nfCoreT 16; # number of tangential fibers in core (number of "wedges")
set nfCoverR 2; # number of radial fibers in cover
set nfCoverT 16; # number of tangential fibers in cover

# define COLUMN REINFORCEMENT variables
set NbCol 16; # number of column longitudinal-reinforcement bars
set Acol [expr $PI*pow($Radius,2)]; # column cross-sectional area
set AsCol [expr $GrhoCol*$Acol]; # total steel area in column section
set AbCol [expr $AsCol/$NbCol]; # bar area of column longitudinal reinforcement


section fiberSec $IDcolFlex {
set rc [expr $roCol-$cover]; # Core radius
patch circ $IDcore $nfCoreT $nfCoreR 0 0 $riCol $rc 0 360; # Define the core patch
patch circ $IDcover $nfCoverT $nfCoverR 0 0 $rc $roCol 0 360; # Define the cover patch
set theta [expr 360.0/$NbCol]; # Determine angle increment between bars
layer circ $IDsteel $NbCol $AbCol 0 0 $rc $theta 360; # Define the reinforcing layer
}

#define beam section
# set some paramaters
set beamWidth 15;
set beamDepth 15;
set cover 1.37;
set As1 0.44; # area of no. 6 bars
set As2 0.11; # area of no. 3 bars
# some variables derived from the parameters
set y1 [expr $beamDepth/2.0]
set z1 [expr $beamWidth/2.0]
section Fiber 1 {
# Create the concrete core fibers
patch rect 1 10 1 [expr $cover-$y1] [expr $cover-$z1] [expr $y1-$cover] [expr $z1-$cover]
# Create the concrete cover fibers (top, bottom, left, right)
patch rect 2 10 1 [expr -$y1] [expr $z1-$cover] $y1 $z1
patch rect 2 10 1 [expr -$y1] [expr -$z1] $y1 [expr $cover-$z1]
patch rect 2 2 1 [expr -$y1] [expr $cover-$z1] [expr $cover-$y1] [expr $z1-$cover]
patch rect 2 2 1 [expr $y1-$cover] [expr $cover-$z1] $y1 [expr $z1-$cover]
# Create the reinforcing fibers (left, middle, right)
layer straight 3 2 $As1 6.12 6.12 -6.12 6.12
layer straight 3 2 [expr 2*$As1] 2.043 6.12 -2.043 6.12
layer straight 3 2 $As1 6.12 -6.12 -6.12 -6.12
layer straight 3 3 $As2 6.12 -3 6.12 3
layer straight 3 3 $As2 -6.12 -3 -6.12 3
}
#define base section
# set some paramaters
set baseWidth 36;
set baseDepth 18;
set cover2 1.5;
set As3 0.79; # area of no. 8 bars
# some variables derived from the parameters
set y2 [expr $baseDepth/2.0]
set z2 [expr $baseWidth/2.0]
section Fiber 3 {
# Create the concrete core fibers
patch rect 1 10 1 [expr $cover2-$y2] [expr $cover2-$z2] [expr $y2-$cover2] [expr $z2-$cover2]
# Create the concrete cover fibers (top, bottom, left, right)
patch rect 2 10 1 [expr -$y2] [expr $z2-$cover2] $y2 $z2
patch rect 2 10 1 [expr -$y2] [expr -$z2] $y2 [expr $cover2-$z2]
patch rect 2 2 1 [expr -$y2] [expr $cover2-$z2] [expr $cover2-$y2] [expr $z2-$cover2]
patch rect 2 2 1 [expr $y2-$cover2] [expr $cover2-$z2] $y2 [expr $z2-$cover2]
# Create the reinforcing fibers (top, middle, bottom)
layer straight 3 3 $As3 6 7.5 14 7.5
layer straight 3 3 $As3 -6 7.5 -14 7.5
layer straight 3 3 $As3 -6 -7.5 -14 -7.5
layer straight 3 3 $As3 6 -7.5 14 -7.5
layer straight 3 2 $As3 14 0 -14 0
}

puts "All element-cross-section variables have been defined"

# Define column elements
# ----------------------
# Geometry of column elements
# tag
geomTransf Linear 1
# Number of integration points along length of element
set np 10
# Create the coulumns using Beam-column elements
# tag ndI ndJ nsecs secID transfTag
element nonlinearBeamColumn 1 1 3 $np $IDcolFlex 1
element nonlinearBeamColumn 2 2 4 $np $IDcolFlex 1
# Define beam elment
# -----------------------------
# Geometry of beam elements
# tag
geomTransf Linear 2
# Create the beam element
# tag ndI ndJ secA secE secIz transfTag
element elasticBeamColumn 3 3 4 $np $Ec $Iz 2


# Geometry of base elements
# tag
geomTransf Linear 3
# Create the base element
# tag ndI ndJ secA secE secIz transfTag
element elasticBeamColumn 4 1 2 $np $Ec $Izb 2
puts "All has been aggregated"

# apply constant gravity load (and other constant loads)
set Pdl [expr $Weight]; # gravity axial load per column
pattern Plain 1 Linear {
load 3 0.0 -$Pdl 0.0
load 4 0.0 -$Pdl 0.0
}

# ------------------------------
# End of model generation
# ------------------------------
# Start of analysis generation
# ------------------------------
# Create the system of equation, a sparse solver with partial pivoting
system BandGeneral
# Create the constraint handler, the transformation method
constraints Transformation
# Create the DOF numberer, the reverse Cuthill-McKee algorithm
numberer RCM
# 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-12 10 3
# Create the solution algorithm, a Newton-Raphson algorithm
algorithm Newton
# Create the integration scheme, the LoadControl scheme using steps of 0.1
integrator LoadControl 0.1
# Create the analysis object
analysis Static
# initialize in case we need to do an initial stiffness iteration
initialize
# ------------------------------
# End of analysis generation
# ------------------------------
# Create a recorder to monitor nodal displacements
recorder Node -file nodeGravity.out -time -node 3 4 -dof 1 2 3 disp
# perform the gravity load analysis, requires 10 steps to reach the load level
analyze 10
# Print out the state of nodes 3 and 4
print node 3 4
# Print out the state of element 1
print ele 1 2

# Set the gravity loads to be constant & reset the time in the domain
loadConst -time 0.0

# Set some parameters

set H 10.0; # Reference lateral load

# Set lateral load pattern with a Linear TimeSeries

pattern Plain 2 "Linear" {

# nd FX FY MZ

load 3 $H 0.0 0.0

}

# ----------------------------------------------------
# Start of modifications to analysis for push over
# ----------------------------------------------------
# Set some parameters
set dU 0.05; # Displacement increment
set maxU 4.0; # Max displacement
set numSteps [expr int($maxU/$dU)];

# Change the integration scheme to be displacement control
# node dof init Jd min max
integrator DisplacementControl 3 1 $dU 1 $dU $dU
# ----------------------------------------------------
# End of modifications to analysis for push over
# ----------------------------------------------------
# ------------------------------
# Start of recorder generation
# ------------------------------
puts ee
# Create a recorder to monitor nodal displacements
recorder Node -file node32.out -time -node 3 4 -dof 1 2 3 disp
# Create a recorder to monitor element forces in columns
recorder Element -file ele32.out -time -ele 1 2 localForce
recorder Element -file Element1.out -time -ele 1 section fiber 3 3 stressStrain
# --------------------------------
# End of recorder generation
# ---------------------------------
# ------------------------------
# Finally perform the analysis

# Perform the analysis
analyze $numSteps
puts "Pushover analysis completed"
# Print the state at node 3
print node 3

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

Post by silvia » Fri Oct 28, 2005 12:32 pm

Zeynep,
your steel01 model has zero post-yield stiffness. what happens is that your element has now zero stiffness and fails to converge.
please give a values greater than zero for your steel post-yield stiffness ratio. even 0.01
this will make your analysis work.
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104

Post Reply