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.
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’) |
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. |
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) |
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 |
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 |
Scheme |
Kinematics |
Remarks |
‘DEFAULT’ |
all |
Use a default time integrator regardless of underlying kinematics |
‘RIG_POS’ |
rigid |
NEW1 in 1: explicit, positive energy drift, no momentum conservation |
‘RIG_NEG’ |
rigid |
NEW2 in 1: explicit, negative energy drift, exact momentum conservation; default for rigid kinematics |
‘RIG_IMP’ |
rigid |
NEW3 in 1: semi-explicit, no energy drift and exact momentum conservation |
‘DEF_EXP’ |
pseudo–rigid, finite element |
Explicit scheme described in Chapter 5 of 2; default for deformable kinematics, energy and momentum conserving, conditionally stable |
‘DEF_LIM’ |
pseudo–rigid, finite element |
Linearly implicit scheme similar to 3; energy and momentum conserving, stable for moderate to large steps; See TR1 for technical details |
References: