Introduction To Modeling of Structures Using Opensees: Maha Kenawy, PH.D

Download as pdf or txt
Download as pdf or txt
You are on page 1of 53

Introduction to Modeling of Structures using

OpenSees

Maha Kenawy, Ph.D.


Postdoctoral Scholar
Department of Civil and Environmental Engineering
University of Nevada, Reno
February 23, 2021

1
Topics
Getting Started
• What is OpenSees?
• How to use OpenSees?
• Resources for learning OpenSees
The Details
• OpenSees architecture
• OpenSees model components and commands
• Basic example problem

2
Basics of structural modeling
• Computers do not deal with
continua (real structure), but
rather discrete idealizations. joint
beam

• Always run a simple (linear)


analysis first before a column
sophisticated (nonlinear)
analysis.

• Always use engineering


judgement to interpret the
Example of a structural model
model output.
3
Components of a structural simulation
model
Build model Perform
Apply loads
analysis

Frame Material
Structure Cross section
element model

𝜎𝜎

𝜀𝜀

4
What is OpenSees?
What is OpenSees?
• An open-source modular software framework for
structural simulations using finite element methods Elements
(developed at UC Berkeley)
Materials
• Platform for sharing research advances in nonlinear
models (you can add your new analysis models into
Opensees! You don’t have to understand all of Load
OpenSees to contribute new elements) Pattern

• Efficient in solving large nonlinear analysis problems Solution


Algorithm
• OpenSees is mainly written in C++; OpenSees
interpreter is in Tcl (or Python) - Tcl is a general-
purpose programming language.
5
OpenSees resources
• Getting Started Manual:
http://opensees.berkeley.edu/wiki/index.php/Getting_Started

• Command Manual:
http://opensees.berkeley.edu/wiki/index.php/Command_Manual

• Examples Manuals:
http://opensees.berkeley.edu/wiki/index.php/Examples

• Descovering OpenSees web-based learning series:


http://opensees.berkeley.edu/wiki/index.php/Discovering_OpenSees

6
OpenSees resources
• Tcl language tutorial
http://www.tcl.tk/man/tcl8.5/tutorial/tcltutorial.html

• OpenSeesPy (a Python 3 interpreter of OpenSees – by Michael


Scott and students)
https://openseespydoc.readthedocs.io/en/latest/

• Silvia’s Brainery on YouTube (by Silvia Mazzoni)


https://www.youtube.com/c/SilviasBrainery
7
OpenSees architecture: Object-oriented
design
OpenSees is written using Object-Oriented Programming Concepts:
OpenSees is not a program that executes procedures – instead it is
divided into building blocks called “Objects” that do everything.
Truss
Nodal load Analysis
element Output
Node
Steel recorder Solution
Fix support
material algorithm
To do a specific task, you have to create an instance of an object using a
command (a set of instructions). For example:
Node {node properties}
Element truss {element properties}
8
How to use OpenSees?
• No intrinsic graphical user interface.

• The files you submit to OpenSees are programs (a set of


instructions to be executed by OpenSees).

• The OpenSees Tcl interpreter includes finite element


analysis commands (modeling, analysis, recording output)

9
Example OpenSees Program
Build # define loads
myexample.tcl model pattern Plain 1 Linear {
# create model builder Create output
space load 2 100.0 -50.0}
BasicBuilder -ndm 2 -ndf 2 recorders
# define output recorders
# create nodes
node 1 0.0 0.0 recorder Node -file disp.out -time -node 2 -dof 1 2 disp
node 2 144.0 0.0 # define analysis parameters
… system BandSPD
# fix supports Create domain numberer Plain
fix 1 1 1 components Define analysis
constraints Plain parameters
fix 2 0 1
# create materials integrator LoadControl 1.0
uniaxialMaterial Elastic 1 3000.0 algorithm Linear
# create elements analysis static
element Truss 1 1 2 10.0 1 # perform the analysis

analyze 1 10
How to use Opensees?
• Download the Opensees interpreter at:
https://opensees.berkeley.edu/OpenSees/user/index.php

• Small difference between Windows and Mac instructions

• Keep OpenSees.exe in the same folder where your model scripts are (or
add the Opensees.exe location to your Windows environment
variables)

• Call Tcl scripts that represent your structural model


> source myexample.tcl

11
What does the OpenSees interpreter do
again?
OpenSees interpreter enables the language ‘Tcl’ to understand finite
element analysis (it adds structural analysis vocabulary to Tcl):

• Modeling commands: create nodes, elements, loads and constraints

• Analysis commands: specify the analysis procedure and parameters

• Output recorder commands: specify parameters you want to


monitor during the analysis (displacements, forces, etc)

12
OpenSees architecture: main “abstractions”

Holds the state of the model at


the current time step

ModelBuilder Domain Analysis


Constructs the objects in Moves the model
the models and adds forward in time
them to the domain (you can specify
analysis parameters)

Recorder
Monitors user-defined
parameters during the analysis
Source: Frank McKenna, UC Berkeley
Introduction to Opensees 13
Some OpenSees domain components
Domain
Truss
Element Node

Truss Material
elasticBeamColumn
dispBeamColumn
nonlinearBeamColumn Uniaxial 𝜎𝜎 Section
BeamColumn Shell element
Joint element Elastic Elastic
zeroLength Steel01 Fiber
Steel02 𝜎𝜎 RC
…. 𝜀𝜀 ….
Concrete01
Concrete02
….
14
𝜀𝜀
Some OpenSees domain components
Domain

Generic
“abstract” Element Node LoadPattern Constraint
type Element load Boundary
Nodal load conditions
Truss Material Element load
Time series
elasticBeamColumn
Specific dispBeamColumn
types nonlinearBeamColumn Uniaxial Section Nodal
Shell element
Elastic load
Joint element Elastic
Steel01 Fiber
zeroLength
Steel02 RC
….
Concrete01 ….
Concrete02
…. Fixed
support 15
Why do we need to understand OpenSees
architecture?
Many OpenSees commands take element truss 1 …
the following format:
Truss

(1)
Command className $uniqueTag …

Command: abstract type uniaxialMaterial Elastic 5 …


className: specific type 𝜎𝜎
uniqueTag: unique identifier (5)

𝜀𝜀
16
Truss example problem
Basic truss example:
https://opensees.berkeley.edu/wiki/index.php/Basic_Truss_E
xample
50 kip
4 100 kip 𝐸𝐸 = 3000 𝑘𝑘𝑘𝑘𝑘𝑘
𝐴𝐴1 = 10 𝑖𝑖𝑛𝑛2
(1) (3) 𝐴𝐴2,3 = 5 𝑖𝑖𝑛𝑛2
8’
(2)
1
2 3

6’ 6’ 2’ 17
Basic truss example: model builder
# Build model: The Model command
# units: kip, in
• Define spatial dimension of model
and number of degrees-of-freedom
# Remove existing model at nodes.
wipe
• Add additional commands to the
# Create ModelBuilder (with two- interpreter such as:
dimensions and 2 DOF/node) Node, mass, element, equalDOF, fix,
model BasicBuilder -ndm 2 -ndf 2 pattern, timeSeries, load, eleLoad,
uniaxial material, section, geoTransf,
etc…
18
Basic truss example: create nodes
# Create nodes and add to Domain:
# node $nodeId $xCrd $yCrd
node 1 0.0 0.0
4
node 2 144.0 0.0
node 3 168.0 0.0 8’
node 4 72.0 96.0 1
2 3

6’ 6’ 2’
19
Basic truss example: boundary conditions
# Set the boundary conditions:
# fix $nodeID $xResraint? $yRestraint?
fix 1 1 1 4

fix 2 1 1
fix 3 1 1 8’

1
2 3
1 = fixed DOF
0 = free DOF 6’ 6’ 2’
20
Basic truss example: create material
# Create Elastic material:
# uniaxialMaterial Elastic $matID $E
𝜎𝜎
uniaxialMaterial Elastic 7 3000.0
𝐸𝐸 = 3000 𝑘𝑘𝑘𝑘𝑘𝑘

𝜀𝜀

21
Basic truss example: create elements
# Create truss elements:
# element Truss $trussID $node1 $node2 $A $matID
element Truss 1 1 4 10.0 7
element Truss 2 2 4 5.0 7 4

element Truss 3 3 4 5.0 7 (1) (3)


8’
(2)
1
2 3

6’ 6’ 2’
22
How to apply loads?
LoadPattern: defines nodal loads, element loads and
constraints – each load pattern is associated with a Element load
TimeSeries

Plain pattern Nodal load


pattern Plain $patternTag $TimeSeriesTag {
load... # nodal load
eleLoad... #element load
...
}

UniformExcitation pattern
Earthquake acceleration record
uniform excitation to the model in a certain direction
(will use that for earthquake loading)

23
How to apply loads?
TimeSeries: relationship between time (or pseudo time) and
factor applied to the load in a load pattern

Load Load Load


factor factor
factor

time time time

Constant timeSeries Path timeSeries


Linear timeSeries
24
Basic truss example: apply loads
# Define loads
# create a Linear TimeSeries with a tag of 1
timeSeries Linear 1
# Create a Plain load pattern associated with the TimeSeries,
50 kip
pattern Plain 1 1 {
# Create the nodal load - command: load $nodeID $xForce $yForce
4 100 kip
load 4 100.0 -50.0
}
(1) (3)
8’
(2)
Alternatively, 1 2 3
pattern Plain 1 Linear {
# Create the nodal load - command: load nodeID xForce yForce 6’ 6’ 2’
load 4 100.0 -50.0
} 25
OpenSees output
• OpenSees will not give you any output unless you request to record it.

• We will use the recorder command to track parameters of interest and write them to
output files.

• Issue the recorder command before you start the analysis.

• Can also write anything to file or the screen using ‘puts’.


> puts $string # write $string to the screen (useful for debugging your model)

> set FileID [open file.out w]


> puts $FileID $string # write $string to a file
> close $FileID

26
Output recorder types

• Some recorder types: Element forces


Node Recorder, 𝜎𝜎
Element Recorder, Drift
Recorder
𝜀𝜀
Stress-strain
response at
• What can you record for a fiber
each element type? It
depends on the element… Nodal displacements

27
Basic truss example: record nodal
displacements
Recorder example
# create a Recorder object for the nodal displacements at node 4
recorder Node -file example.out -time -node 4 -dof 1 2 disp
Always use engineering
Output File judgement: does this 4 ∆𝑥𝑥

example.out deformation make sense? ∆𝑦𝑦

(1) (3)
1 0.530093 -0.177894 (2)
1 2 3
time Disp in Disp in
DOF 1 DOF 2 6’ 6’ 2’ 28
Basic truss example: record global forces
Recorder example
CHECK

# create a Recorder for element forces, one for global system and the other for local system
𝐹𝐹𝐹𝐹 -ele
= 26.36 + 34.52 + 39.11 = 100
𝐹𝐹𝑦𝑦 = 35.15 − 46.04 − 39.11 = −50 ✓
recorder Element -file eleGlobal.out -time 1 2 3 forces
Output File:
eleGlobal.out
1 -26.3611 -35.1482 26.3611 35.1482 -34.5278 46.0371 34.5278 -46.0371 -39.1111 39.1111 39.1111 -39.1111

35.1482
-46.0371 -39.1111
4
26.3611 4 34.5278 4 39.1111
(1)
(3)
(2)
-26.3611 1 -39.1111
-34.5278 2 3
-35.1482
46.0371 39.1111
29
Basic truss example: record local forces
Recorder example
# create a Recorder for element forces, one for global system and the other for local system
recorder Element -file eleLocal.out -time -ele 1 2 3 localForce
Output Files:
eleLocal.out
1 43.9352 -57.5463 -55.3114

35.1482
4 8


𝜃𝜃 = arctan
26.3611 6


(1) 𝐹𝐹𝑥𝑥 = 43.9352 𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐 = 26.3611
43.9352
8 𝐹𝐹𝑦𝑦 = 43.9352 𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠 = 35.1482
-26.3611 1 𝜃𝜃
-35.1482 6
30
OpenSees architecture: main “abstractions”

Holds the state of the model at


the current time step

ModelBuilder Domain Analysis


Constructs the objects in Moves the model
the models and adds forward in time
them to the domain (you can specify
analysis parameters)

Recorder
Monitors user-defined
parameters during the analysis

31
Finite element analysis steps
Analysis Objects • Discretize the domain
DOF Numberer System • Formulate the system of equations
𝑡𝑡+∆𝑡𝑡
Integrator 𝑭𝑭𝑖𝑖𝑖𝑖𝑖𝑖 − 𝑭𝑭𝑡𝑡+∆𝑡𝑡
𝑒𝑒𝑒𝑒𝑒𝑒 = 𝟎𝟎
𝑲𝑲 𝒖𝒖 = 𝑭𝑭
Constraints Handler • Incorporate boundary conditions
SolnAlgorithm Convergence • Solve the system of equations
test
𝒖𝒖 = 𝑲𝑲−𝟏𝟏 𝑭𝑭
Selecting the appropriate
analysis parameters
become important in • Update the node and element response
nonlinear analysis 32
Basic truss example: analysis commands
Analysis commands example # Create a linear solution algorithm for solving the
How to solve the
# Create a system of equation suitable for postivive- equilibrium equations
How to create and system of equations?
definite stiffness matrices with banded profile algorithm Linear
arrange the system of
system BandSPD equilibrium equations?
# create the analysis object
Is the(static or transient)
analysis static
# Create a plain numberer to number the DOFs analysis Static or dynamic?
numberer Plain
#After defining the model, analysis and output objects,
How to enforce we now perform the analysis in 1 step
# Create a Plain constraint
boundaryhandler
conditions? analyze 1
constraints Plain

# Integrate the solution using load control and one Learn about OpenSees analysis
increment commands
integrator LoadControl 1.0 How to advance the https://opensees.berkeley.edu/wiki/index.php
solution in time? /System_Command
33
Now execute your program!
• All the commands are
written in Truss.tcl file

• Open the Opensees


executable (or call it in
the command line)
> source Truss.tcl

34
Things we need to know about Tcl
• Capable of setting variables and variable substitution
> set E 3000.0
3000.0

> puts “my elastic modulus = $E”


my elastic modulus = 3000.0

• Capable of evaluating expressions


> set myNum [expr 5 + 3*4]
17

• Can use basic control structures (if, while, for)


• Can call other files (you can create a large model in different pieces that call each other)
• Can do file manipulations (open, write, close)
35
Tcl pitfalls
• Units: Keep your model units consistent

• Math pitfall
Pay attention to your integers and floats
> set a [expr 1/2]
0 Computer scientists thought this
> set a [expr 1./2.] was a good idea…
0.5

• At the end of your model (or after execution), use ‘wipe’ to finish writing output
> wipe

• Debugging your model


If you are trying to find an error, ‘puts’ is your best friend.
36
Closing remarks
• You must understand the assumptions and limitations of
your structural model components.

• You can’t learn OpenSees by listening/watching – one must


practice writing OpenSees programs (use the online
examples manual).

• Always check your model and your output.


37
Homework
• Get the truss example problem 𝐸𝐸 = 3000 𝑘𝑘𝑘𝑘𝑘𝑘
𝐴𝐴1 = 10 𝑖𝑖𝑛𝑛2
𝐴𝐴2,3 = 5 𝑖𝑖𝑛𝑛2
• Increase the vertical load by a
factor of 1.5 50 kip
• Increase the cross sectional area 4 100 kip
of members 2 and 3 by a factor of
2.0 (1) (3)
8’
• Record the reactions at nodes 1, 2 (2)
and 3 1
2 3
What are the support reactions?
6’ 6’ 2’
38
Questions?

Maha Kenawy
mkenawy@unr.edu

39
References
• McKenna, F. (2012). Getting Started With OpenSees and OpenSees on
NEEShub Presentation, Pacific Earthquake Engineering Research Center

• OpenSees Command Manual:


http://opensees.berkeley.edu/wiki/index.php/Command_Manual

• OpenSees Examples Manuals:


http://opensees.berkeley.edu/wiki/index.php/Examples

• McKenna, F. (1997). Object oriented finite element analysis: frameworks for


analysis algorithms and parallel computing. University of California,
Berkeley.

40
Node recorder command
recorder Node <-file $fileName> <-precision $nSD> <-time> <-dT $deltaT> <-node $node1 $node2 ...> <-nodeRange
$startNode $endNode> <-region $regionTag> -dof ($dof1 $dof2 ...) $respType

$fileName name of file to which output is sent.


-time optional, place the domain time in first entry of each data line
$deltaT time interval for recording. will record when next step is $deltaT greater than last
recorder step. (optional, default: records at every time step)
$node1 $node2 .. tags of nodes whose response is being recorded (optional, default: omitted)
$startNode $endNode .. tag for start and end nodes whose response is being recorded (optional)
$regionTag a region tag; to specify all nodes in the previously defined region. (optional)
$dof1 dof2 ... the specified dof at the nodes whose response is requested.
$respType a string indicating response required. Some response types for nodes:
disp displacement
vel velocity
accel acceleration
incrDisp incremental displacement
reaction nodal reaction
… 41
Element recorder command
Element Recorder
recorder Element <-file $fileName> <-time> <-ele ($ele1 $ele2 ...)> <-eleRange $startEle $endEle> <-region
$regTag> <-ele all> ($arg1 $arg2 ...)

-file output recorder data to a file


$filename file where results are stored. (optional, default: screen output)
-time this argument will place the pseudo time of the as the first entry in the line. (optional,
default: omitted)
$ele1 $ele2 ... tags of elements whose response is being recorded -- selected elements in domain
(optional, default: omitted)
$startEle $endEle tag for start and end elements whose response is being recorded -- range of selected
elements in domain (optional, default: all)
$regTag previously-defined tag of region of elements whose response is being recorded -- region of
elements in domain (optional)
-all record response of all elements in domain (optional & default)
$arg1 $arg2 ... recorded response which depends on the element type 42
Recorder Commands
Truss element page in OpenSees Manual
element truss $eleTag $iNode $jNode $A $matTag <-rho $rho> <-cMass $cFlag> <-
doRayleigh $rFlag>

$eleTag unique element object tag


$iNode $jNode end nodes
$A cross-sectional area of element
$matTag tag associated with previously-defined UniaxialMaterial

NOTE:
1. The truss element DOES NOT include geometric nonlinearities, even when used
with beam-columns utilizing P-Delta or Corotational transformations.
2. When constructed with a UniaxialMaterial object, the truss element considers
strain-rate effects, and is thus suitable for use as a damping element.
3. The valid queries to a truss element when creating an ElementRecorder object are
'axialForce,' 'forces,' 'localForce', deformations,' 'material matArg1 matArg2...,' 'section
sectArg1 sectArg2...' There will be more queries after the interface for the methods
involved have been developed further. 43
Some Element Recorder Types
Common to all beam-column elements:
OUTPUT FORMAT
globalForce – element resisting force in global coordinates
The format of the output is typically dependent
localForce – element resisting force in local coordinates
on the element and/or section type. In general,
however, the output follows the order of the
Sections:
degrees of freedom.
section $secNum – request response quantities from a
specific section along the element length (such as force,
deformation and stiffness) globalForce 2D, 3dof: FX FY MZ
recorder Element -file ele1sec1F.out –time -ele 1 section 1 force
3D, 6dof: FX FY FZ MX MY MZ
localForce 2D, 3dof: Fx Fy Mz
3D, 6dof: Fx Fy Fz Mx My Mz
Section $secNum fiber $fibery $fiberz <$matID> – request
response at a particular fiber with local coordinates Section force Fx Mx
$fibery, $fiberz and material $matID Deformation axial-strain curvature
recorder Element -file ele1sec1StressStrain.out –time -ele 1 stressStrain stress strain
section 1 fiber $y $z <$matID> stressStrain
44
https://opensees.berkeley.edu/OpenSees/manuals/usermanual/259.htm
Model Command
The Model Command What does it do?

model BasicBuilder -ndm $ndm <-ndf


$ndf> • Define spatial dimension of model and
$ndm spatial dimension of problem number of degrees-of-freedom at nodes.
(1,2, or 3)
$ndf number of degrees of freedom at
node (optional) default value • Add additional commands to the
depends on value of ndm: interpreter such as:
ndm=1 -> ndf=1
ndm=2 -> ndf=3
ndm=3 -> ndf=6 Node, mass, element, equalDOF, fix,
pattern, timeSeries, load, eleLoad, uniaxial
Example material, section, geoTransf, etc…
model BasicBuilder -ndm 2 -ndf 3
45
How to apply uniform excitation pattern?
LoadPattern: defines nodal loads, element loads and
constraints – each load pattern is associated with a TimeSeries

# UniformExcitation pattern
uniform excitation to the model in a certain direction

pattern UniformExcitation $patternTag $dir -accel $tsTag <-vel0


$vel0> <-fact $cFactor>
$patternTag unique tag among load patterns
$dir direction in which ground motion acts
$tsTag tag of the TimeSeries series defining the
acceleration history.
$vel0 the initial velocity (optional, default=0.0) Earthquake acceleration record
$cFactor constant factor (optional, default=1.0)
46
Analysis Commands
Controlling the analysis parameters is what makes OpenSees special…
How do you solve your system of
equilibrium equations? Analysis

𝑭𝑭𝑡𝑡+∆𝑡𝑡 𝑡𝑡+∆𝑡𝑡
𝑖𝑖𝑖𝑖𝑖𝑖 − 𝑭𝑭𝑒𝑒𝑒𝑒𝑒𝑒 = 𝟎𝟎
Static analysis
𝑲𝑲 𝒖𝒖 = 𝑹𝑹 Transient analysis

Handler Numberer test SolnAlgorithm Integrator System


Determines how Determines Determines if Algorithm for Integration How the system
the boundary how the convergence solving the method for your of equations is
conditions and equations are has been equations system of arranged and
other constraints numbered achieved equations solved
are enforced

47
Analysis Commands: Constraints Handler
Enforce boundary conditions and constraints between DOFs (e.g.,
rigid diaphragms) A blogpost on Constraint
Handlers by Michael Scott (not
Michael Scott from the Office…):
• Plain handler https://portwooddigital.com/20
Enforce pin, roll, fixed single point constraints, and equal DOF constrains 20/06/05/handle-your-
constraints-with-care/
• Lagrange Multipliers
Constraint equations are added to the system of nodal equilibrium Can cause
equations with Lagrange multipliers as the additional unknowns
convergence issues
and may not work
• Penalty Method
with certain
Adds artificial springs of high stiffness to the nodal equilibrium equations
to enforce multi-point constraints convergence tests if
not used carefully…
• Transformation Method
Uses static condensation to enforce multi-point constraints
48
Analysis Commands: DOF Numberer
The DOF Numberer object determines how the equations are numbered.

• Plain Numberer
Does not do anything special – works for small problems

• Reverse Cuthill-McKee Numberer


• Alternative_Minimum_Degree Numberer
Optimize the order of equations to improve performance in large
problems
49
Analysis Commands: System
Determines how the system of equations is stored and
solved.

• BandGeneral How to invert your stiffness


matrix and solve for the
• BandSPD displacements
• ProfileSPD 𝒖𝒖 = 𝑲𝑲−1 𝑹𝑹
• UmfPack
• FullGeneral Your choice will depend on how
you expect your stiffness matrix
• SuperLU to look like…

50
Analysis Commands: Convergence test

How to test whether convergence has been achieved?


• Norm Unbalance Test
𝑲𝑲 𝒖𝒖 = 𝑹𝑹 𝑹𝑹𝑻𝑻 𝑹𝑹 < 𝒕𝒕𝒕𝒕𝒕𝒕
• Relative Norm Unbalance Test

• Norm Displacement Increment Test 𝑲𝑲 𝒖𝒖 = 𝑹𝑹 𝒖𝒖𝑻𝑻 𝒖𝒖 < 𝒕𝒕𝒕𝒕𝒕𝒕


• Relative Norm Displacement Increment Test
• Total Relative Norm Displacement Increment Test
𝟏𝟏 𝑻𝑻
𝒖𝒖 𝑹𝑹 < 𝒕𝒕𝒕𝒕𝒕𝒕
• Energy Increment Test 𝑲𝑲 𝒖𝒖 = 𝑹𝑹 𝟐𝟐
• Relative Energy Increment Test Some tests may never converge with
certain constraint handlers – even though
• Fixed Number of Iterations a solution is possible… 51
Analysis Commands: Algorithm
The steps taken to solve a nonlinear system of equations at each step.

• Linear Algorithm
• Newton Algorithm
• Newton with Line Search Algorithm
• Modified Newton Algorithm Make sure you
• Krylov-Newton Algorithm understand the
• Secant Newton Algorithm Nonlinear algorithm you are
• BFGS Algorithm using…
• Broyden Algorithm

52
Analysis Commands: Analysis & Integrator
Analysis Integrator
Static or dynamic analysis? How are you advancing the solution forward?
Load control
Static
Displacement control
Newmark Method To approximate a
nonlinear solution,
you have to divide
Transient Central Difference the solution process
into several steps…
… 53

You might also like