Frame elements in OpenSees are formulated in a basic, or natural, system that removes rigid body displacement modes from the element displacement field, leaving only the deformational modes. The basic forces that correspond to the deformational modes depend on the element force-deformation relationship while the remaining local forces are found from rigid body equilibrium.

The use of a basic system may seem unnecessary if your matrix methods course went no further than direct assembly of global element end forces. There’s nothing wrong with what you learned in that course–in the end, you get the same answer for linear-elastic frame models. But the basic system is essential for many nonlinear frame element formulations, so it is good to learn the basic system early, in preparation for nonlinear analysis.

The use of a basic system allows us to treat the sources of material and geometric nonlinearity separately for a frame element.

Material nonlinearity resides *inside* the basic system, along with geometric nonlinearity due to large deformations, i.e., P-“little delta”. The formulation within the basic system is sometimes referred to as the “kernel”. Many kernels are available in OpenSees: `elasticBeamColumn`

, `dispBeamColumn`

, and `forceBeamColumn`

are the most widely used element formulations for small deformation material nonlinearity. The `forceBeamColumnCBDI`

element formulation combines material and geometric nonlinearity inside the basic system.

Geometric nonlinearity due to large displacements, i.e., P-“Big Delta”, resides *outside* the basic system. The `geomTransf`

objects in OpenSees (`Linear`

, `PDelta`

, and `Corotational`

) handle the transformation of displacements and forces between the basic and global coordinate systems. Because the basic-to-global transformations happen outside the basic system, you often hear that a frame element deforms within a corotating frame of reference.

The `geomTransf`

implementations in OpenSees assume a simply-supported basic system where the degrees of freedom in the basic system correspond to the forces and deformations of a simply-supported beam.

The local *x* axis points from element end *I* to end *J* while the local *y* and *z* axes are established by defining a vector in the local *x*–*z* plane.

The complete set of local forces is found by “reactions” of the basic forces (and member loads) on the “supports” of the basic system. But these supports are mnemonic devices that have nothing to do with the actual boundary conditions of the model.

The other common choice is the cantilever basic system where the DOFs correspond to–you guessed it–the forces and deformations of a cantilever. Beyond the simply-supported and cantilever basic systems, we could get sporty and define a basic system with DOFs that correspond to internal forces somewhere along a fixed-fixed beam. But we don’t need to go there.

This video explains how the global, local, and basic systems for frame elements fit within the hierarchy of nonlinear structural analysis.

Dear Prof. Scott,

I have some questions

(1) Do Frame elements refer to beam-column elements?

(2) Is the basic system the same as the natural system?

(3) Is there a basic system only for beam-column elements?

Thank you very much!

LikeLike

Dear Prof. Scott,

I hope you are well.

I know well the simple support beam basic reference system, but what do you mean when you mentioned that there is another basic reference system using a cantilever beam?

Sincerely,

LikeLike

The basic forces are axial, transverse loads and moment at the cantilever free end and the deformation are the corresponding deflections (mas o menos)

LikeLike

Dear Prof. Scott,

I hope you are well.

I was trying to get the expressions with this reference system. I got these, are they correct?

kbsc = [[A*E/L, 0 , 0 ],

[0 , 12*E*I/(L**3), -6*E*I/(L**2)],

[0 , -6*E*I/(L**2), 4*E*I/(L) ]]

ubsc = [[Uloc4 – Uloc1],

[Uloc5-Uloc2-Uloc3*L],

[Uloc6 – Uloc3]]

IncEquilibriumMatrix =EM= ([[-1 , 0 , 0 ],

[ 0 , -1 , 0 ],

[ 0 , -L , -1],

[ 1 , 0 , 0 ],

[0 , 1 , 0 ],

[ 0 , 0 , 1 ]])

ComEquilibriumMatrix =CM= [[-1, 0, 0, 1, 0, 0],

[0, -1, -L, 0, 1, 0]

[0, 0, -1, 0, 0, 1]]

when I calculate EM * kbsc * CM I got the stiffness matrix at the local level

Kind regards

LikeLike

IncCompatibilityMatrix = CM***

LikeLike