Creating Models
Models are created in hmmodlib by using the functions HMMOD_nodeadd(), HMMOD_elementadd(), and HMMOD_elementaddnode(). HMMOD_nodeadd() is called once for each node in the model, HMMOD_elementadd() is called once for each element, and HMMOD_elementaddnode() is called once for every node on every element.
Each node created in hmmodlib has a data structure associated with it.
The following is a description of the node's data structure:
- id
- ID of the node.
- x, y, z
- x, y, and z location.
- value
- The value is used as a temporary storage area for one result. Often, the value is set by an averaging routine, and once set, can be transferred to hmreslib or compared with the maximum result.
- maximum
- The maximum is used as a temporary storage area for one result. It is used to store the maximum value at a node, and once set, can be transferred to hmreslib.
- displacement
- Storage for one displacement (x, y, z).
- results
- An array of user-defined size that stores results at the node. This component of the node structure exists at every layer defined in the model.
- counter
- A counter used during averaging.
- active
- An activity flag used to determine if the results at a node should be averaged or transferred to hmreslib. If the active flag is set to a nonzero value, then the averaging routines use the node when averaging is performed, and the results at the node are transferred to hmreslib when requested. If the activity flag is set to zero, the node is ignored in both the aforementioned cases.
- uservalue
- Storage for a user-defined value.
Each element created in hmmodlib has a data structure associated with
it. The following is a description of the element's data structure:
- id
- ID of the element.
- config
- The configuration of the element.
- type
- The type of the element. This is used only if the model is written.
- nodes
- The nodes associated with an element.
- numberofnodes
- The number of nodes associated with an element.
- value
- The value is used as a temporary storage area for one result. Often, the value is set by an averaging routine, and once set, can be transferred to hmreslib or compared with the maximum.
- maximum
- The maximum is used as a temporary storage area for one result. It is used to store the maximum value on an element, and once set, can be transferred to hmreslib.
- centroidal
- An array of user-defined size that stores results at the centroid of the element. This component of the element structure exists at every layer defined in the model.
- integration pt
- An array of user-defined size that stores results at the integration points of an element. This component of the element structure exists at every layer defined in the model.
- node on elem
- An array of user-defined size that stores results at the node of the element. This component of the element structure exists at every layer defined in the model.
- # of int pts
- The number of integration points for the element.
- counter
- A counter used during averaging.
- active
- An activity flag used to determine if the results at an element should be averaged or transferred to hmreslib. If the active flag is set to a nonzero value, then the averaging routines use the element when averaging is performed, and the results at the element are transferred to hmreslib when requested. If the activity flag is set to zero, the element is ignored in both the aforementioned cases.
- uservalue
- Storage for a user-defined value.
After the model is created, it can be written to disk in HyperMesh ASCII format by calling the function HMMOD_writemodel().