# 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 the MATERIAL (…) routine in Section [sec:util])
- 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:

[1] | (1, 2, 3) IJNME, 81(9):1073–1092, 2010. |

[2] | Koziara, PhD thesis, 2008. |

[3] | ANM, 25(2–3): 297–302, 1997. |