Getting Started with OpenSees -- Gravity Loads
Gravity loads are independent of the type of lateral loading and here they are considered part of the structural model.
Nodal Forces & Moments Calculations
Because the beam is an elastic element, the vertical load distributed along the horizontal member can be represented by nodal forces and moments. The nodal forces are distributed equally to the two end nodes. The nodal bending moments are equal and opposite:
The nodal force is equal to one half of the superstructure weight:
the distributed load is calculated by dividing the total load by the beam length:
The bending moment is then calculated from the distributed load:
Load-Pattern Definition
Like all loads in OpenSees, gravity loads require two steps. The first step defines the load into a load pattern, the second applies the load pattern and the associated gravity load. The plain pattern Command with a linear time series is used in the load definition:
pattern Plain $patternTag (TimeSeriesType arguments) {
- load $nodeTag (ndf $LoadValues)
}
pattern Plain 1 Linear {
load 3 0.0 -2000 -168074
load 4 0.0 -2000 168074
}
Analysis Creation
The constraints Command is used to construct the ConstraintHandler object. Constraints enforce a relationship between degrees-of-freedom. The ConstraintHandler object determines how the constraint equations are enforced in the analysis. The Transformation ContraintHadler is recommended for transient analysis, but can be used in most analyses.
constraints Transformation
The numberer Command is used to construct the DOF_Numberer object. The DOF_Numberer object determines the mapping between equation numbers and degrees-of-freedom -- how degrees-of-freedom are numbered. With the RCM numberer nodes are assigned degrees-of-freedom using the Reverse Cuthill-McKee algorithm, which makes the analysis more efficient for large models.
numberer RCM
The system Command is used to construct the LinearSOE and LinearSolver objects to store and solve the system of equations in the analysis. The BandGeneral Command is used to construct an un-symmetric banded system of equations object which will be factored and solved during the analysis using the Lapack band general solver
system BandGeneral
The test Command is used to construct a ConvergenceTest object. Certain SolutionAlgorithm objects require a ConvergenceTest object to determine if convergence has been achieved at the end of an iteration step. The convergence test is applied to the following equation:
The NormDispIncr test performs the following check:
and takes the followin input format:
test NormDispIncr $tol $maxNumIter <$printFlag>
test NormDispIncr 1.0e-6 6
The algorithm Command is used to construct a SolutionAlgorithm object, which determines the sequence of steps taken to solve the non-linear equation.
algorithm Newton
The integrator Command is used to construct the Integrator object. The Integrator object determines the meaning of the terms in the system of equation object. The Integrator object is used for the following:
- determine the predictive step for time t+dt
- specify the tangent matrix and residual vector at any iteration
- determine the corrective step based on the displacement increment dU
The type of integrator specified using the integrator Command is dependent on whether it is a static analysis or transient analysis:
The gravity load is analyzed using the load-control integrator which takes the following form: integrator LoadControl $dLambda1 <$Jd $minLambda $maxLambda>
A load increment of 1/10 will be applied at each analysis step
integrator LoadControl 0.1
The analysis Command is used to construct the Analysis object. This analysis object is constructed with the component objects previously created by the analyst. All currently-available analysis objects employ incremental solution strategies.
analysis Static
Analysis Execution
The analyze Command is used to apply the full gravity load in 10 steps with the load increment defined above of 1/10. The loadConst Command maintains the gravity load constant for the remainder of the the analyses and resets the current time to zero. The commands take the following formats:
analyze $numIncr <$dt> <$dtMin $dtMax $Jd>
loadConst <-time $pseudoTime>
analyze 10
loadConst -time 0.0
Return to Getting Started with OpenSees