*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.
- label
- The descriptive label for the body.
- POINTS
- Specifies that the profile of the NLFE body is defined using a set of points.
- pt0, pt1, pt2...
- A list of points which define the profile of the NLFE body.
Example
*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
Properties
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.