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 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.