BODY object
An object of type BODY represents a solid body.
obj = BODY (solfec, kind, shape, material | label, form, mesh, base)
This routine creates a body.
- obj – created BODY object
- solfec – obj is created for this SOLFEC object
- kind – a string: ‘RIGID’, ‘PSEUDO_RIGID’, ‘FINITE_ELEMENT’ or
‘OBSTACLE’ describing the kinematic model. See Table 3
and the Kinematics manual page.
- shape (emptied) - this is can be a CONVEX/MESH/SPHERE/ELLIP object, or a list [obj1, obj2, …],
where each object is of type CONVEX/MESH/SPHERE/ELLIP. If the kind is ‘FINITE_ELEMENT’,
then two cases are possible:
- shape is a single MESH object: the mesh describes both
the shape and the discretisation of the motion of a body
- shape is solely composed of CONVEX objects: here a separate mesh must
be given to discretise motion of a body (see the mesh argument below)
- material – a BULK_MATERIAL object or a label of a bulk material;
specifies an initial body–wise material, see also APPLY_BULKMAT
- label – a label string (no label is assigned by default)
- form – valid when kind equals ‘FINITE_ELEMENT’, ignored otherwise (default: ‘TL’).
This argument specifies a formulation of the finite element method. See Table 4.
- mesh – optional when kind equals ‘FINITE_ELEMENT’, ignored otherwise. This variable must be a MESH object
describing a finite element mesh properly containing the shape composed solely of CONVEX objects. This way
the ‘FINITE_ELEMENT’ model allows to handle complicated shapes with less finite elements,
e.g. an arbitrary shape could be contained in just one hexahedron.
- base – optional reduced order or modal base definition, or a string label of a registered base;
when form = ‘BC–MODAL’, results of the MODAL_ANALYSIS command, or equivalent user data,
can be used; the same format is used for the ‘BC–RO’ formulation; This argument must be passed if form = ‘BC–MODAL’ or ‘BC–RO’,
see Table Table 4.
Some parameters can also be accessed as members of a BODY object, cf. Table 2.
Table 2 BODY object parameters.
Read only members: |
obj.kind, obj.label, obj.material |
obj.mass – referential mass of the body |
obj.volume – referential volume of the body |
obj.center – referential mass center of the body |
obj.tensor – referential Euler (pseudo-rigid, finite element kinematics)
or inertia tensor (rigid kinematics) of the body |
obj.constraints – list of constraints attached to the body
(cf. Constraints) |
obj.ncon – number of constraints attached to the body |
obj.id – unique identifier |
obj.display_points – list of tuples of display point labels and coordinates:
[(‘label’, (x, y, z)), (‘label’, (x, y, z)), …] |
obj.mesh – returns computational MESH associated with a ‘FINITE_ELEMENT’ body; for other body
kinds a MESH or a list of MESH objects is returned if such are present as components of the body shape |
Read/write members: |
obj.conf – tuple (q1, q2, …, qN) storing configuration of the body. See Table 5. |
obj.velo – tuple (u1, u2, …, uN) storing velocity of the body. See Table 6. |
obj.selfcontact – self-contact detection flag (default: ‘OFF”) taking values ‘ON’ or ‘OFF’ |
obj.scheme – time integration scheme (default: ‘DEFAULT’) used to integrate motion.
See Table 7 and the Time integration manual page. |
obj.damping – stiffness proportional damping coefficient (default: 0.0) for the dynamic case
(ignored for rigid bodies). |
obj.fracturecheck – check fracture criterion for FEM bodies (‘ON’, or default: ‘OFF’).
(Under development) |
obj.disable_rotation – for rigid bodies disable integration of rotation (‘ON’, or default: ‘OFF’) |
Table 3 Body kinds. See also the Kinematics manual page.
Body kind |
Remarks |
‘OBSTACLE’ |
A rigid body ignoring external loads and not contributing to contact constraints.
Motion of an obstacle can be controlled through single-body constraints.
An obstacle–to–obstacle contact is ignored. Moving obstacles will not correctly
work in the quasi–static case (use rigid bodies instead). Obstacle bodies do
generate contact constraints with other non-obstacle bodies. |
‘RIGID’ |
A rigid body |
‘PSEUDO_RIGID’ |
A body with global linear deformation state |
‘FINITE_ELEMENT’ |
A body discretised with finite elements.
Only first order elements are supported at present. |
Table 4 Finite element formulations.
Formulation |
Remarks |
‘TL’ |
Total Lagrangian (default) |
‘BC’ |
Body co–rotational (one co–rotated frame per body, suitable for stiff bodies);
See TR1 for technical details |
‘BC–MODAL’ |
Body co–rotational, modal approach; ‘DEF_LIM’ integration scheme is always used for
this formulation (there is no computational advantage in using ‘DEF_EXP’ since all
system matrices are diagonal); Note: the base argument must be passed;
See TR1 for technical details; (Experimental) |
‘BC–RO ‘ |
Body co–rotational, reduced order approach; ‘DEF_LIM’ integration scheme is always
used for this formulation (there is no computational advantage in using ‘DEF_EXP’
since all system matrices are dense); Note:* the base argument must be
passed; See TR1 for technical details; (Experimental) |
Table 5 Types of configurations.
Body kind |
Configuration description |
‘OBSTACLE’ |
Column–wise rotation matrix followed by the current mass center |
‘RIGID’ |
Column–wise rotation matrix followed by the current mass center |
‘PSEUDO_RIGID’ |
Column–wise deformation gradient followed by the current mass center |
‘FINITE_ELEMENT’ |
Current coordinates x, y, z of mesh nodes |
Table 6 Types of velocities.
Body kind |
Velocity description |
‘OBSTACLE’ |
Referential angular velocity followed by the spatial velocity of mass center |
‘RIGID’ |
Referential angular velocity followed by the spatial velocity of mass center |
‘PSEUDO_RIGID’ |
Deformation gradient velocity followed by the spatial velocity of mass center |
‘FINITE_ELEMENT’ |
Components x, y, z of spatial velocities of mesh nodes |
Table 7 Time integration schema. See also the Time integration manual page.
Scheme |
Kinematics |
Remarks |
‘DEFAULT’ |
all |
Use a default time integrator regardless of underlying kinematics |
‘RIG_POS’ |
rigid |
NEW1 in : explicit, positive energy drift, no momentum conservation |
‘RIG_NEG’ |
rigid |
NEW2 in : explicit, negative energy drift, exact momentum conservation;
default for rigid kinematics |
‘RIG_IMP’ |
rigid |
NEW3 in : semi-explicit, no energy drift and exact momentum
conservation |
‘DEF_EXP’ |
pseudo–rigid,
finite element |
Explicit scheme described in Chapter 5 of ; default for deformable
kinematics, energy and momentum conserving, conditionally stable |
‘DEF_LIM’ |
pseudo–rigid,
finite element |
Linearly implicit scheme similar to ; energy and momentum conserving,
stable for moderate to large steps; See TR1 for technical
details |
References: