2. Automatic Case Generation - GenLCase, GenMCase

The modules GenLCase and GenMCase are provided automatically generate certain load and multipoint constraint cases.

2.1. Generate Load Cases - GenLCase

The GenLCase module is designed to automatically generate certain types of load cases. For example a feature is provided to compute the distribution of load on a set of element faces arising from a concentrated load and moment applied at a point in space. The methods associated with a GenLCase object are the following.

Instance a GenLCase object using vfx_GenLCaseBegin(). Use vfx_GenLCaseSetObject() to register the current Model object. This gives GenLCase access to the model element connectivity and node coordinate information.

GenLCase can be used to distribute forces and moments at a point, termed an attachment point, to a collection of nodes. The nodes can be represented either as a group of element faces or element edges or as a group of individual nodes. The representation of the nodes as a group of element faces or edges is highly recommended if it is intended that the load be distributed as a line load or surface traction.

The process requires two steps for each attachment point. The first step is to specify the attachment point location and group of nodes to which the attachment point forces and moments are to be distributed. This specification is done using vfx_GenLCaseSetAttach(). Each attachment point is given a user defined integer identifier. Any number of attachment points may be defined in this way. Once an attachment point is defined, load distributions may be calculated using vfx_GenLCaseAttach(). The computed load distributions are added to an input LCase object as concentrated forces.

Destroy an instance of a GenLCase object using vfx_GenLCaseEnd().

2.2. Function Descriptions

The currently available GenLCase functions are described in detail in this section.

vfx_GenLCase *vfx_GenLCaseBegin(void)

create an instance of a GenLCase object

Create an instance of a GenLCase object. Memory is allocated for the object private data and the pointer to the object is returned.

Destroy an instance of a GenLCase object using

void vfx_GenLCaseEnd (vfx_GenLCase *genlcase)

Return the current value of a GenLCase object error flag using

Vint vfx_GenLCaseError (vfx_GenLCase *genlcase)

Returns:

The function returns a pointer to the newly created GenLCase object. If the object creation fails, NULL is returned.

void vfx_GenLCaseEnd(vfx_GenLCase *p)

destroy an instance of a GenLCase object

See vfx_GenLCaseBegin()

Vint vfx_GenLCaseError(vfx_GenLCase *p)

return the current value of a GenLCase object error flag

See vfx_GenLCaseBegin()

void vfx_GenLCaseSetObject(vfx_GenLCase *p, Vint objecttype, Vobject *object)

set attribute objects

Set a pointer to an attribute object. The Model object must be registered.

Errors

SYS_ERROR_OBJECTTYPE is generated if an improper objecttype is specified.

Parameters:
  • p – Pointer to GenLCase object.

  • objecttype – The object type identifier

    x=VIS_MODEL              Model object
    

  • object – Pointer to the object to be set.

void vfx_GenLCaseSetAttach(vfx_GenLCase *p, Vint id, Vdouble x[3], vis_Group *group)

specify attachment point location

Specify the location, x, of an attachment point, id. The collection of nodes associated with the attachment point are specified in group which can be either an element face or edge group or a node group. If group is an element face group then the load is assumed to be distributed as a surface traction. If group is an element edge group then the load is assumed to be distributed as a line load. If group is a node group then the load is assumed to be distributed as a set of equally weighted individual concentrated force vectors.

Errors

SYS_ERROR_VALUE is generated if an improper id entry is specified.

Parameters:
  • p – Pointer to GenLCase object.

  • id – Attachment point identifier, 1 <= id

  • x – Attachment point location

  • group – Pointer to Group object.

void vfx_GenLCaseAttach(vfx_GenLCase *p, Vint id, Vdouble force[3], Vdouble moment[3], vis_LCase *lcase)

compute attachment point load distribution

Compute load distribution due to the specified force and moment applied to attachment pointa id. The resulting loads are added as concentrated loads to LCase. Use vfx_GenLCaseSetAttach() to define the attachment point location and corresponding collection of nodes to which load is to be distributed.

Errors

  • SYS_ERROR_NULLOBJECT is generated if a Model object has not been set.

  • SYS_ERROR_VALUE is generated if an improper id is specified.

  • SYS_ERROR_OPERATION is generated if the attachment point id has not been defined.

Parameters:
  • p – Pointer to GenLCase object.

  • id – Attachment point identifier, 1 <= id

  • force – Forces

  • moment – Moments

  • lcase – Pointer to LCase object to receive generated loads

2.3. Generate Multipoint Constraint Cases - GenMCase

The GenMCase module is designed to automatically generate certain types of multipoint constraint cases. For example a feature is provided to generate a set of statically determinant constraints for any singly connected body. The methods associated with a GenMCase object are the following.

Instance a GenMCase object using vfx_GenMCaseBegin(). Use vfx_GenMCaseSetObject() to register the current Model object. This gives GenMCase access to the model element connectivity and node coordinate information.

GenMCase can be used to generate a set of statically determinant constraints for an otherwise unconstrained singly connected body. This is a useful constraint set for applying inertia relief loads. Use vfx_GenMCaseIRelief() to generate the constraints. The computed constraints are entered into an input MCase object as multipoint constraints.

Destroy an instance of a GenMCase object using vfx_GenMCaseEnd().

2.4. Function Descriptions

The currently available GenMCase functions are described in detail in this section.

vfx_GenMCase *vfx_GenMCaseBegin(void)

create an instance of a GenMCase object

Returns:

The function returns a pointer to the newly created GenMCase object. If the object creation fails, NULL is returned.

void vfx_GenMCaseEnd(vfx_GenMCase *p)

destroy an instance of a GenMCase object

See vfx_GenMCaseBegin()

Vint vfx_GenMCaseError(vfx_GenMCase *p)

return the current value of a GenMCase object error flag

See vfx_GenMCaseBegin()

void vfx_GenMCaseSetObject(vfx_GenMCase *p, Vint objecttype, Vobject *object)

set attribute objects

Set a pointer to an attribute object. The Model object must be registered.

Errors

SYS_ERROR_OBJECTTYPE is generated if an improper objecttype is specified.

Parameters:
  • p – Pointer to GenMCase object.

  • objecttype – The object type identifier

    x=VIS_MODEL              Model object
    

  • object – Pointer to the object to be set.

void vfx_GenMCaseIRelief(vfx_GenMCase *p, vis_Group *group, vis_MCase *mcase)

generate statically determinant constraints

Compute statically determinant multipoint constraints. The resulting constraints are added to MCase. The parameter group can take either a valid Group object or the value NULL, if its value is equal to NULL, all the nodes will be used, otherwise the nodes defined in group are used.

Errors

SYS_ERROR_NULLOBJECT is generated if a Model object has not been set.

Parameters:
  • p – Pointer to GenMCase object.

  • group – Pointer to Group object.

  • mcase – Pointer to MCase object to receive generated constraints