*NLFEBody()

Creates a Nonlinear Finite Element (NLFE) beam or cable body. This is supported for the MotionSolve SolverMode only.

Syntax

*NLFEBody(varname,label,POINTS,pt0,pt1,pt2,....)

Arguments

var_name
The variable name of the NLFE body.
Data type: varname
label
The descriptive label for the body.
Data type: String
POINTS
Specifies that the profile of the NLFE body is defined using a set of points.
Data type: Keyword
pt0, pt1, pt2...
A list of points which define the profile of the NLFE body.
Data type: Points

Example

In the example below a NLFE beam of a rectangular cross-section is created with five points defining its profile:
*BeginMDL( the_model, "Model" )
 *Point( p_0, "Point 0" )
 *Point( p_1, "Point 1" )
 *Point( p_2, "Point 2" )
 *Point( p_3, "Point 3" )
 *Point( p_4, "Point 4" ) 
*NLFEBody( nlfeb_0, "NLFEBody 0", POINTS, p_0, p_1, p_2, p_3, p_4 )
 *SetPoint( p_1, 10 )
 *SetPoint( p_2, 20 )
 *SetPoint( p_3, 30 )
 *SetPoint( p_4, 40 )
 *SetOrientation( nlfeb_0.orient_end, TWOAXES, XY, DXDYDZ, nfleb_0.pt4.x - nlfeb_0.pt3.x, nlfeb_0.pt4.y - nlfeb_0.pt3.y, nfleb_0.pt4.z - nfleb_0.pt3.z, DXDYDZ, 0.0, 1.0, 0.0 )
 *SetOrientation( nfleb_0.orient_start, TWOAXES, XY, POINT, nlfeb_0.pt1, DXDYDZ, 0.0, 1.0, 0.0 )
 *SetNLFEBody( nfleb_0, BEAM, BAR, 2, 10, nfleb_0.dim1_start, nlfeb_0.dim2_start, 5, propmat_steel, 5, 4, 12 )
*EndMDL()

Context

*BeginMdl()

*DefineSystem()

*DefineAssembly()

Properties

Table 1.
Property Returns Data Type Description
label string The label of the body.
state boolean The state of the body.
orient_start Marker The start orientation marker of the body.
orient_end Marker The end orientation marker of the body.
mass real The mass of the body.
Ixx real The mass moment of inertia of the body about the X axis.
Iyy real The mass moment of inertia of the body about the Y axis.
Izz real The mass moment of inertia of the body about the Z axis.
Ixy real The product of inertia of the body about the X and Y axis of its center marker.
Iyz real The product of inertia of the body about the Y and Z axis of its center marker.
Ixz real The product of inertia of the body about the X and Z axis of its center marker.
x real The X coordinate of the body CG.
y real The Y coordinate of the body CG.
z real The Z coordinate of the body CG.
preload_positions array A list of positions of the POINTS in loaded configuration.
x_gradients array A list of gradient vectors in loaded position along the X direction of the NLFEBody.
y_gradients array A list of gradient vectors in loaded position along the Y direction of the NLFEBody.
z_gradients array A list of gradient vectors in loaded position along the Z direction of the NLFEBody.
pt0, pt1, pt2... Point The points used in defining the body profile.
id integer The solver ID associated with the body.
num integer The serial number of the entity type body used in assigning solver IDs.
idstring string The solver ID associated with the body converted to string type.
note string User entered note associated with the body.
isancf boolean Specifies if the body is of the type NLFE.
auto_color_index integer The index of the color automatically assigned by MotionView to the body.
input_type Keyword Specifies the type of entities that define the body profile. Valid value is POINTS.
type Keyword The type of element: BEAM or CABLE.
cross_section_type Keyword The type of cross-section. See Comments below.
offset real The offset value for the search tolerance to be used while adding connector elements. See Comments below.
dim1_start, dim1_end, dim2_start, dim2_end, dim3_start,... real The cross-section dimensions of the beam. The number of attributes will depend on the type of cross-section.
area real The cross-section are of the Cable element.
moi real The area moment of inertia of the Cable element.
rayleigh_damping real The damping for the body.
num_g_x integer The number of segments per element in the X direction.
num_g_y integer The number of segments per element in the Y direction (radial for circular cross-section).
num_g_z integer The number of segments per element in the Z direction (tangential for circular cross-section).
vx real The initial velocity along the X axis.
use_vx boolean Specifies if the initial condition applied along the X axis is to be used.
vy real The initial velocity along the Y axis.
use_vy boolean Specifies if the initial condition applied along the Y axis is to be used.
vz real The initial velocity along the Z axis.
use_vz boolean Specifies if the initial condition applied along the Z axis is to be used.
wx real The initial velocity about the X axis.
use_wx boolean Specifies if the initial condition applied about the X axis is to be used.
wy real The initial velocity about the Y axis.
use_wy boolean Specifies if the initial condition applied about the Y axis is to be used.
wz real The initial velocity about the Z axis.
use_wz boolean Specifies if the initial condition applied about the Z axis is to be used.
vm Marker Marker used as a reference for translational initial velocities.
use_vm boolean Flag set by the user to use the specified reference marker for translational velocities.
wm real Marker used as a reference for rotational initial velocities.
use_wm boolean Flag set by the user to use the specified reference marker for rotational velocities.

Comments

This statement is used to create a Nonlinear Finite Element body (NFLE) entity in MotionView. This type of body is supported for the MotionSolve SolverMode only. These bodies are types of flexible bodies which can be used to model nonlinear deformations.

Currently, NLFE modeling of element type Beam and Cable are supported by MotionView.

Use the *SetNLFEBody statement to set the Beam or Cable properties.

An NLFE body is represented by the <Body_Flexible statement in MotionSolve that refers to a separate XML file using the ancf_file attribute which describes the finite element body.

Based on the set of points and the properties of the NLFE beam or cable; MotionView writes out the above mentioned NLFE XML file.

The points pt_0, pt_1, etc. are written out as GRID statement in the NLFE XML file. A GRID is an entity similar to node in general FE codes, except that the NLFE GRID has three additional vectors (rx, ry, and rz) or gradients in addition to positions.

For beam and cable elements, the rx vector should be oriented along the length profile of the elements. The plane formed by ry and rz represents the plane of cross section of the beam or cable element. Use the *SetOrientation statement on orient_start and orient_end attribute of the body to orient the cross section plane at the starting end and finishing end, respectively. MotionView will interpolate the GRID orientation at intermediate points using the start and the end orientation.

An NLFE body can be referred to by any other entity, such as a Joint or Force.

As in case of a flexible body, the marker belonging to the NLFE body associated with the entity needs a GRID at the marker location. If the location of the connecting entity has an offset with respect to the profile points defined by the *NLFEBody() statement, MotionView will introduce a rigid connector element between the marker location and the nearest profile point of the NLFE body.