# EXAMPLE 8 - Cantilever Beam

In this example a simple problem in solid dynamics is considered. The structure is a cantilever beam modelled with three dimensional solid elements.

Files Required

Model

For three dimensional analysis, a typical solid element is defined as a volume in three dimensional space. Each node of the analysis has three displacement degrees of freedom. Thus the model is defined with $ndm := 3$ and $ndf := 3$.

For this model, a mesh is generated using the block3D'' command. The number of nodes in the local x-direction of the block is $nx$, the number of nodes in the local y-direction of the block is $ny$ and the number of nodes in the local z-direction of the block is $nz$. The block3D generation nodes \{1,2,3,4,5,6,7,8\} are prescribed to define the three dimensional domain of the beam, which is of size $2\times2\times10$.

Two possible brick elements can be used for the analysis. These may be created using the terms stdBrick'' or bbarBrick.'' An elastic isotropic material is used.

For initial gravity load analysis, a single load pattern with a linear time series and a single nodal loads is used.

Boundary conditions are applied using the fixZ command. In this case, all the nodes whose z-coordiate is $0.0$ have the boundary condition \{1,1,1\}, fully fixed.

Analysis

A solution algorithm of type Newton is used for the problem. The solution algorithm uses a ConvergenceTest which tests convergence on the norm of the energy increment vector. Five static load steps are performed.

Subsequent to the static analysis, the wipeAnalysis and remove loadPatern commands are used to remove the nodal loads and create a new analysis. The nodal displacements have not changed. However, with the external loads removed the structure is no longer in static equilibrium.

The integrator for the dynamic analysis if of type GeneralizedMidpoint with $\alpha := 0.5$. This choice is uconditionally stable and energy conserving for linear problems. Additionally, this integrator conserves linear and angular momentum for both linear and non-linear problems. The dynamic analysis is performed using $100$ time increments with a time step $\Delta t := 2.0$.

OpenSees Script

# OpenSees Example 8.1

# OpenSees Primer

#

# Units: kips, in, sec

# ----------------------------

# Start of model generation

# ----------------------------

# Create ModelBuilder with 3 dimensions and 6 DOF/node

model basic -ndm 3 -ndf 3

# create the material

nDMaterial ElasticIsotropic 1 100 0.25 1.27

# Define geometry

# ---------------

# define some parameters

set eleArgs "1"

set element stdBrick

#set element BbarBrick

set nz 6

set nx 2

set ny 2

set nn [expr ($nz+1)*($nx+1)*($ny+1) ] # mesh generation block3D$nx $ny$nz 1 1 $element$eleArgs {

1 -1 -1 0

2 1 -1 0

3 1 1 0

4 -1 1 0

5 -1 -1 10

6 1 -1 10

7 1 1 10

8 -1 1 10

}

# Constant point load

pattern Plain 1 Linear {

load $nn$load $load 0.0 } # boundary conditions fixZ 0.0 1 1 1 # -------------------------------------------------------------------- # Start of static analysis (creation of the analysis & analysis itself) # -------------------------------------------------------------------- # Load control with variable load steps # init Jd min max integrator LoadControl 1.0 1 1.0 10.0 # Convergence test # tolerance maxIter displayCode test NormUnbalance 1.0e-10 20 1 # Solution algorithm algorithm Newton # DOF numberer numberer RCM # Cosntraint handler constraints Plain # System of equations solver system ProfileSPD # Analysis for gravity load analysis Static # Perform the analysis analyze 5 # -------------------------- # End of static analysis # -------------------------- # ---------------------------- # Start of recorder generation # ---------------------------- recorder Node -file Node.out -time -node$nn -dof 1 disp

recorder plot Node.out CenterNodeDisp 625 10 625 450 -columns 1 2

recorder display ShakingBeam 0 0 300 300 -wipe

prp -100 100 120.5

vup 0 1 0

display 1 0 1

# --------------------------

# End of recorder generation

# --------------------------

# ---------------------------------------

# Create and Perform the dynamic analysis

# ---------------------------------------

# Remove the static analysis & reset the time to 0.0

wipeAnalysis

setTime 0.0

# Now remove the loads and let the beam vibrate

# add some mass proportional damping

rayleigh 0.01 0.0 0.0 0.0

# Create the transient analysis

test EnergyIncr 1.0e-10 20 1

algorithm Newton

numberer RCM

constraints Plain

integrator Newmark 0.5 0.25

analysis Transient

# Perform the transient analysis (20 sec)

# numSteps dt

analyze 100 2.0

Results

The results consist of the file cantilever.out, which contains a line for every time step. Each line contains the time and the horizontal displacement at the upper right corner the beam. The time history is as plotted on the screen.