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.
Begin and end an instance of an object, generic object functions
vfx_GenLCaseBegin()
- create an instance of a GenLCase objectvfx_GenLCaseEnd()
- destroy an instance of a GenLCase objectvfx_GenLCaseError()
- return GenLCase object error flag
Operations
vfx_GenLCaseAttach()
- compute attachment point load distributionvfx_GenLCaseSetAttach()
- specify attachment point locationvfx_GenLCaseSetObject()
- set attribute objects
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
-
Vint vfx_GenLCaseError(vfx_GenLCase *p)
return the current value of a GenLCase object error flag
-
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.
-
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.
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.
Begin and end an instance of an object, generic object functions
vfx_GenMCaseBegin()
- create an instance of a GenMCase objectvfx_GenMCaseEnd()
- destroy an instance of a GenMCase objectvfx_GenMCaseError()
- return GenMCase object error flag
Operations
vfx_GenMCaseIRelief()
- generate statically determinant constraintsvfx_GenMCaseSetObject()
- set attribute objects
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
-
Vint vfx_GenMCaseError(vfx_GenMCase *p)
return the current value of a GenMCase object error flag
-
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.