*SetNLFEBody() - Beam

Sets the properties for a Beam type NLFE body.

Syntax

*SetNLFEBody( varname, BEAM, type, 
start_dims, 
end_dims, 
rayleigh_damping, propmat, ngx, ngy, ngz)

where start_dims and end_dims are set of attributes based on the type of cross-section of the beam, describing the dimensions of cross-section at the start and end of the beam respectively.

Arguments

varname
The variable name of the NFLE body.
Data type: varname
BEAM
The type of element.
Data type: Keyword
type
The cross-section type. Valid values are: Bar, Box, Box1, Chan, Chan1, Chan2, Cross, H, Hat, I, I1, L, Rod, T, T1, T2, Tube, and Z. See Comments below.
Data type: keyword
start_dims
The set of dimensions of various edges of the cross-section at the start location of the beam. See Comments below.
Data type: real
end_dims
The set of dimensions of various edges of the cross-section at the end location of the beam. See Comments below.
Data type: real
rayleigh_damping
The material damping for the body.
Data type: real
propmat
The variable name of the material.
Data type: varname
ngx
The number of sub-elements in the X direction of the beam element.
Data type: integer
ngy
The number of sub-elements in the Y direction. For a ROD/TUBE section, sub-elements are in the radial direction.
Data type: integer
ngz
The number of sub-elements in the Z direction. For a ROD/TUBE section, sub-elements are in the tangential direction.
Data type: integer

Example

In the example below a NLFE beam of I cross section is defined. The start and the end dimensions of the beam are the same, as it can be observed that the end dimension attributes are parametrically defined using the start dimension attributes.
*BeginMDL( the_model, "Model" )
  *Point( p_0, "Point 0" )
  *Point( p_1, "Point 1" )
  *Point( p_2, "Point 2" )
  *Point( p_3, "Point 3" )
  *SetPoint( p_0, 0 )
  *SetPoint( p_1, 10 )
  *SetPoint( p_2, 100 )
  *SetPoint( p_3, 1000 )
  *NLFEBody( nfleb_0, "NLFEBody 0", POINTS, p_0, p_1, p_2, p_3 )
  *SetOrientation( nlfeb_0.orient_end,   TWOAXES, XZ, DXDYDZ, nlfeb_0.pt3.x - nfleb_0.pt2.x, nfleb_0.pt3.y - nfleb_0.pt2.y, nfleb_0.pt3.z - nfleb_0.pt2.z, VECTOR, nfleb_0.orient_start.zaxis )
  *SetOrientation( nfleb_0.orient_start, TWOAXES, XY, POINT, nlfeb_0.pt1, DXDYDZ, 0.0, 1.0, 0.0 )
  *SetNLFEBody( nlfeb_0, BEAM, I, 50, 50, 30, 13, 14, 15, nlfeb_0.dim1_start, nlfeb_0.dim2_start, nlfeb_0.dim3_start, nlfeb_0.dim4_start, nlfeb_0.dim5_start, nlfeb_0.dim6_start, 0.5, propmat_steel, 5, 4, 12 )
*EndMDL()

Context

*BeginMdl()

*DefineSystem()

*DefineAssembly()

*DefineAnalysis()

*BeginContext()

Comments

The *SetNLFEBody() statement is used to set the cross-section and material properties for a NLFE body. Using the keyword BEAM, sets the element type to beam.

A BEAM type NLFEBody can have eighteen different types of cross-sections: Bar, Box, Box1, Chan, Chan1, Chan2, Cross, H, Hat, I, I1, L, Rod, T, T1, T2, Tube, and Z. The table below describes the shape and dimensions of the beam cross section for each type. Dimensions of each cross-section on each side (start and end) is defined using common data members dim1, dim2, and so on.

The set of dimension attributes in start_dims and end_dims for each type of beam cross section is listed in table above.

For example, replacing the start_dims and end_dims in the above syntax for a beam of type BAR would look as follows:
*SetNLFEBody( varname, BEAM, type, 
dim1_start, 
dim1_end,
rayleigh_damping, propmat, ngx, ngy, ngz )
Similarly, the statement for beam of type I would be as follows:
*SetNLFEBody( varname, BEAM, type, 
dim1_start, dim2_start, dim3_start, dim4_start, dim5_start, dim6_start, 
dim1_end, dim2_end, dim3_end, dim4_end, dim5_end, dim6_end,
rayleigh_damping, propmat, ngx, ngy, ngz )

The beam cross-section is positioned such that the beam length profile defined through the set of points in the *NLFEBody() statement lies at the centroid of the beam cross-section.