The State module is designed to hold solution results at nodes, particles, element centroids or element nodes. It has been optimized to hold a complete set of results at an analysis step for each entity in the model such as a complete set of displacement vectors for each node or stress tensors for each element.
By contrast, the ElemDat module is designed to complement the State module by providing a sparse storage mechanism for data based at element faces and edges. It has been optimized to hold quantities such as element distributed traction loads and line loads.
The History module is used to hold solution results for a selected set of nodes or elements over several analysis steps.
By convention, vector data is assumed to be ordered by (x,y,z) components, six dof vector data by (tx,ty,tz,rx,ry,rz) components, symmetric tensor data by (xx,yy,zz,xy,yz,zx) components, and general tensor data by (xx,xy,xz,yx,yy,yz,zx,zy,zz) components. Element result data is generally used for shell, beam and spring element forces, moments, strains and curvatures. Shell element stress results are ordered (Nxx,Nyy,Nxy,Mxx,Myy,Mxy,Qxz,Qyz), beam element stress results are ordered (Nxx,Myy,Mzz,Torque,Qxy,Qzx,TBimom) with a corresponding ordering for the associated strains and curvatures. Spring element stress results are ordered (Fx,Fy,Fz,Mx,My,Mz).
The RedMat module is used to hold matrix results. As an option the matrix entries may be associated with system degrees of freedom. Each degree of freedom is paired with a specific node or element and a degree of freedom type. An example of such a result is a reduced stiffness matrix generated by a superelement creation solution procedure.
*vis_ElemDatBegin - create an instance of a ElemDat object vis_ElemDatEnd - destroy an instance of a ElemDat object vis_ElemDatError - return ElemDat object error flag vis_ElemDatPre - specify precision of element data
vis_ElemDatClear - clear any set element data vis_ElemDatData - get element data for an element vis_ElemDatDataStat - query data status vis_ElemDatDef - define parent and child entities Inq - inquire parent and child entities vis_ElemDatIdTran - derive list of element entities vis_ElemDatNormal - compute accurate element face normals vis_ElemDatSetData - set element face or edge data vis_ElemDatSetObject - set pointers to attribute objects. GetObject - get pointers to attribute objects. vis_ElemDatSetParamf - set floating point parameters vis_ElemDatSetParami - set integer parameters vis_ElemDatSetComplexMode - set specify/query mode for complex data GetComplexMode - get specify/query mode for complex data vis_ElemDatGetComplex - query for complex data existence
Complex valued element data may be specified. The real and imaginary parts of a complex value may be specified one at a time or together depending upon the state of the complex mode of ElemDat. The user sets the complex mode using vis_ElemDatSetComplexMode. See section VisTools, Complex Numbers for a description of the general usage of complex valued data in Vistools modules.
Use vis_ElemDatData to query for element data at an element. The function vis_ElemDatDataStat may be used to query for the elements, element faces or element edges that have had data set. The function vis_ElemDatNormal computes accurate element face normals for smooth shaded rendering. The function vis_ElemDatIdTran can be used to derive an IdTran indicating the elements, element edges or faces for which data has been set.
The ElemDat object calls the following grid functions set in the GridFun attribute object.
*vis_ElemDatBegin - create an instance of an ElemDat object
vis_ElemDat *vis_ElemDatBegin ()
None
Destroy an instance of a ElemDat object using
void vis_ElemDatEnd (vis_ElemDat *elemdat)
Return the current value of a ElemDat object error flag using
Vint vis_ElemDatError (vis_ElemDat *elemdat)
vis_ElemDatClear - clear any set element data
void vis_ElemDatClear (vis_ElemDat *elemdat)
elemdat Pointer to ElemDat object.
None
vis_ElemDatPre - specify precision of element data
void vis_ElemDatPre (vis_ElemDat *elemdat, Vint pre)
elemdat Pointer to ElemDat object. pre Precision of data =SYS_FLOAT Single precision =SYS_DOUBLE Double precision
None
vis_ElemDatData - get element data for an element
void vis_ElemDatData (const vis_ElemDat *elemdat, Vint index, Vint no, Vfloat s[]) void vis_ElemDatDatadv (const vis_ElemDat *elemdat, Vint index, Vint no, Vdouble s[])
elemdat Pointer to ElemDat object. index Element index no Element face or edge number
s Array of returned element data
vis_ElemDatDef - define parent and child entities and data type
void vis_ElemDatDef (vis_ElemDat *elemdat, Vint nument, Vint parenttype, Vint childtype, Vint datatype)
elemdat Pointer to ElemDat object. nument Number of elements parenttype Type of element parent entity =SYS_ELEM Element =SYS_FACE Element face =SYS_EDGE Element edge childtype Type of element child entity. =SYS_NONE No child entity =SYS_NODE Node type datatype Data type =VIS_SCALAR Scalar data =VIS_VECTOR Vector data =VIS_SIXDOF Six dof vector data =VIS_TENSOR Symmetric tensor data =VIS_GENERALTENSOR General Tensor data =VIS_ELEMRES Element Result data =VIS_SCALARSn n scalars data
None
Inquire of defined nument, parenttype, childtype and datatype as output arguments using
void vis_ElemDatInq (const vis_ElemDat *elemdat, Vint *nument, Vint *parenttype, Vint *childtype, Vint *datatype)
vis_ElemDatDataStat - query data status
void vis_ElemDatDataStat (const vis_ElemDat *elemdat, Vint index, Vint no, Vint *stat)
elemdat Pointer to ElemDat object. index Element index no Element face or edge number
stat returned results data status
vis_ElemDatSetData - set element face or edge data
void vis_ElemDatSetData (vis_ElemDat *elemdat, Vint index, Vint no, Vfloat s[]) void vis_ElemDatSetDatadv (vis_ElemDat *elemdat, Vint index, Vint no, Vdouble s[])
elemdat Pointer to ElemDat object. index Element index no Element face or edge number s Array of element data to be set
None
vis_ElemDatSetObject - set pointers to attribute objects
void vis_ElemDatSetObject (vis_ElemDat *elemdat, Vint objecttype, Vobject *object)
elemdat Pointer to ElemDat object. objecttype The name of the object type to be set. =VIS_GRIDFUN GridFun object object Pointer to the object to be set.
None
Get object as an output argument using
void vis_ElemDatGetObject (vis_ElemDat *elemdat, Vint objecttype, Vobject **object)
vis_ElemDatSetParamf - set floating point parameters
void vis_ElemDatSetParamf (vis_ElemDat *elemdat, Vint ptype, Vfloat param)
elemdat Pointer to ElemDat object. ptype Type of parameter to set =ELEMDAT_FEATUREANGLE Feature angle in degrees param Specifies the floating value that ptype will be set to.
None
vis_ElemDatSetParami - set integer parameters
void vis_ElemDatSetParami (vis_ElemDat *elemdat, Vint ptype, Vint iparam)
elemdat Pointer to ElemDat object. ptype Type of parameter to set =ELEMDAT_FEATUREBRANCH Feature branch flag =ELEMDAT_LINNORMAL Linearize normals from corner nodes iparam Specifies the integer value that ptype will be set to. =VIS_OFF Turn parameter off =VIS_ON Turn parameter on
None
The parameter ELEMDAT_FEATUREBRANCH toggles the treatment of edges connecting more than 2 element faces for the determination of element face normals using the function vis_ElemDatNormal. By default ELEMDAT_FEATUREBRANCH is set to VIS_OFF.
The parameter ELEMDAT_LINNORMAL toggles the method used for computation of element face normals at midside nodes using the function vis_ElemDatNormal. If this flag is disabled, midside node normals are normal to the element face at the location of the midside node. If this flag is enabled, midside node normals are computed using the corner node normals, the midside normals are linearly interpolated from the corner node normals. By default ELEMDAT_LINNORMAL is set to VIS_OFF.
vis_ElemDatSetComplexMode - set specify/query mode for complex data
void vis_ElemDatSetComplexMode (vis_ElemDat *elemdat, Vint complexmode)
elemdat Pointer to ElemDat object. complexmode Complex mode =SYS_COMPLEX_REAL Real =SYS_COMPLEX_IMAGINARY Imaginary =SYS_COMPLEX_REALIMAGINARY Real and imaginary
None
Get complexmode as an output argument.
void vis_ElemDatGetComplexMode (const vis_ElemDat *elemdat, Vint *complexmode)
vis_ElemDatGetComplex - query for complex data existence
void vis_ElemDatGetComplex (vis_ElemDat *elemdat, Vint *complexflag)
elemdat Pointer to ElemDat object.
complexflag Complex data existence flag
vis_ElemDatIdTran - derive list of element entities
void vis_ElemDatIdTran (vis_ElemDat *elemdat, Vint oper, vis_IdTran *idtran)
elemdat Pointer to ElemDat object. oper Operation specified to derive group =ELEMDAT_SETDATA Edges at which data has been set
idtran Pointer to derived IdTran object of element entities.
vis_ElemDatNormal - compute accurate element face normals
void vis_ElemDatNormal (vis_ElemDat *elemdat, vis_Group *group)
elemdat Pointer to ElemDat object. group Pointer to Group object of element faces If NULL, then all element faces are assumed.
None
*vis_StateBegin - create an instance of a State object vis_StateEnd - destroy an instance of a State object vis_StateError - return State object error flag vis_StateCopy - copy a State vis_StatePre - specify precision of state data
vis_StateClear - clear all results data vis_StateClearData - clear results data for a single entity vis_StateConvertComplex - convert complex data vis_StateConvertStrain - convert strain data vis_StateData - get results data at a set of entities vis_StateDataElem - get results data at element vis_StateDataElemEnt - get results data at element entities vis_StateDataElemRST - get results data at given natural coordinates vis_StateDataMax - get max number of results values and locations vis_StateDataNum - get number of results values and locations vis_StateDataLayPos - get section layer position type vis_StateDataLayers - get section layer number and position vis_StateDataSect - get number of results data sections vis_StateCheckSect - check if any sections defined vis_StateDataStat - get results data status vis_StateDataStatElemEnt - get element face or edge results data status vis_StateDef - define parent and child entities Inq - inquire parent and child entities vis_StateDeform - create deformed node vector of coordinates vis_StateDemo - create "demo" node vector displacement results vis_StateDerivative - perform differential operations on a state vis_StateDirCos - get local direction cosine matrix vis_StateElemGroup - derive sets of elements vis_StateExtent - (parallel) minimum and maximum values vis_StateExtentLoc - minimum and maximum values and locations vis_StateExtentLocSect - minimum and maximum values,locations,sections vis_StateMap - map results data to another location vis_StateMapElemNode - map results data to element node location vis_StateMidside - process results data at midside nodes vis_StateNodeGroup - derive sets of nodes vis_StateNumDerive - get number of data components vis_StateOperateBinary - operate on a state as a function of two states vis_StateOperateUnary - operate on a state as a function of one state vis_StateSetData - set results data vis_StateSetDataElemEnt - set element face or edge results data vis_StateSetDataEnt - set results data element faces or edges vis_StateSetDataLayPos - set section layer position type vis_StateSetDataLayers - set section layer number and position vis_StateSetDataSect - set number of results data sections vis_StateSetDerive - set derived quantity type GetDerive - get derived quantity type vis_StateSetEngineeringStrain - set engineering strain flag GetEngineeringStrain - get engineering strain flag vis_StateSetMagnitudePhase - set magnitude phase flag GetMagnitudePhase - get magnitude phase flag vis_StateSetGroupParam - set group derivation parameters vis_StateSetHashTable - set pointers to HashTable objects. vis_StateSetObject - set pointers to attribute objects. GetObject - get pointers to attribute objects. vis_StateSetParami - set state parameters vis_StateSetSection - set section number GetSection - get current section number vis_StateSetSystem - set coordinate system state GetSystem - get coordinate system state vis_StateSetSystemType - set coordinate system entity type GetSystemType - get coordinate system entity type vis_StateSetComplexMode - set specify/query mode for complex data GetComplexMode - get specify/query mode for complex data vis_StateGetComplex - query for complex data existence vis_StateSortIdTran - sort entities into an IdTran object vis_StateSum - sum results data vis_StateTransform - (parallel) perform coordinate system transformations vis_StateTypeDerive - get data type of derived quantity vis_StateWrite - write state to file formats vis_StateRead - read state from file formats
Define parent and child entity types and parent size using vis_StateDef. The function is also used to specify the data type (scalar, vector, etc.) of the solution results data to be maintained by the state object. Use vis_StateSetData to enter solution results into a State object at specified entity indices. If results data is not specified at a specific entity index it is assumed to be zero. Use vis_StateClear to clear (set to zero) all results data. Use vis_StateEnd to release all memory associated with a State object.
Complex valued element data may be specified. The real and imaginary parts of a complex value may be specified one at a time or together depending upon the value of the complex mode of State. The user sets the complex mode using vis_StateSetComplexMode. See section VisTools, Complex Numbers for a description of the general usage of complex valued data in Vistools modules.
Complex data in State may be held as real and imaginary components or magnitude phase components. By default, complex data is assumed to be in real and imaginary form. If complex data has been entered in magnitude and phase form, use the function vis_StateSetMagnitudePhase to flag this fact. The function vis_StateConvertComplex can be used to convert complex data from real/imaginary to/from magnitude/phase. The function vis_StateSetMagnitudePhase will be called appropriately internally to flag the current form of complex data. Note that the units of the phase angles are degrees.
Results data is maintained at nodes, element centroids or element nodes by a state object. The number of data locations per entity for node and element states is one, for element node states, the number of data locations is the number of nodes in an element. Element and element node states may also carry data for any number of sections at each data location. These sections usually represent layers in a composite shell element or points throughout a beam cross section. If data is to represented at sections, then the number of sections for each element must be defined using vis_StateSetDataSect before data may be set using vis_StateSetData. Use vis_StateDataSect to query the number of sections at an element. By default the number of sections is 1. The layer position type of the sections at an element may be set as an option using vis_StateSetDataLayPos. The layer position type specifies more detail concerning the position of a section within a layer, ie top, middle, bottom, etc. More detailed information about layer number and layer position of each section can be set using the function vis_StateSetDataLayers. The function vis_StateDataLayers can retrieve the layer numbers and positions. If explicit layer numbers and positions are not defined for each section index, then the layer numbers are assumed to start from 1 and increment sequentially with a layer number multiplicity dependent upon the layer position type. If there are several sections of data at an element, use vis_StateSetSection to control whether all sections or only a selected section of data are returned using vis_StateData. By default section 1 is set.
For element face, element face node, element edge and element edge node locations, the element faces or edges for which data will be defined must be specified using function vis_StateSetDataEnt before the actual data is set. Use the function vis_StateSetDataElemEnt to set data at a specific element face or element edge.
By convention, vector data is assumed to be ordered by (x,y,z) components, six dof vector data by (tx,ty,tz,rx,ry,rz) components, symmetric tensor data by (xx,yy,zz,xy,yz,zx) components, and general tensor data by (xx,xy,xz,yx,yy,yz,zx,zy,zz) components, Use vis_StateData to query for results data for some entity subset. A State object will automatically return a derived quantity when vis_StateData is called by setting a derived quantity with vis_StateSetDerive.
The function vis_StateDataElem is a convenient function to use for returning data at an element regardless of the parent and child entity types of the State object. This function is sensitive to the mapping options which are used to map element node data to elements.
The function vis_StateDataElemEnt is a convenient function to use for returning data for all element nodes, element face nodes or element edge nodes regardless of the parent and child entity types of the State object. Use vis_StateDataElemRST to retrieve interpolated values at a given natural coordinates location within an element. The function vis_StateDataStat may be used to determine if the data for a given set of entities as been specified using vis_StateSetData. The function vis_StateDataStatElemEnt may be used for element face and element edge states to determine data define at a specific element face or element edge.
Vectoral derived quantities include only the vector magnitude.
v(mag) = sqrt(vx**2 + vy**2 + vz**2)
t(mean) = 1/3*(txx+tyy+tzz);
t(vonmises) = sqrt(1/2*((txx-tyy)**2 + (tyy-tzz)**2 + (tzz-txx)**2) + 3*(txy**2 + tyz**2 + tzx**2))
t(vonmises) = 2./3.*sqrt(1/2*((txx-tyy)**2 + (tyy-tzz)**2 + (tzz-txx)**2) + 3*(txy**2 + tyz**2 + tzx**2))
t(octahedral) = sqrt(1/9*((txx-tyy)**2 + (tyy-tzz)**2 + (tzz-txx)**2) + 2/3*(txy**2 + tyz**2 + tzx**2))
t(max shear) = 1/2*(tmax - tmin)
t(equ direct) = 1/2*(tmax + tmin)
t(intensity) = MAX((tmax-tmin),(tmid-tmin),(tmax-tmid))
If tensor principal values are requested the values are sorted by numeric value, not absolute value.
Note that in the direction of max shear stress, two of the direct stresses are equal and may be derived using VIS_TENSOR_EQUDIRECT, the other stress is equal to the middle principal value and may be derived using VIS_TENSOR_MIDPRINC. The maximum shear is derived using VIS_TENSOR_MAXSHEAR, the other two shear stresses are zero. The maximum shear angle, VIS_TENSOR_ANGSHEAR, is the angle formed by the direction of maximum shear with the x axis in degrees.
Note that the tensor intensity definition is taken directly from ANSYS documentation. Since (tmax-tmin) is always the maximum, the other terms are unnecessary. It is always equal to twice the maximum shear.
A practical note should be made concerning representing shear strains as a tensoral quantity with the State module. In many commercial finite element programs shear strain is reported as engineering strain rather than tensor strain. The shear strain components of engineering strain are twice the value of the corresponding components of tensor strain. The user may enable the State module to treat the engineering strain variant of a tensor by calling vis_StateSetEngineeringStrain. This is required so that all invariant calculations, transformations, etc. are properly performed. Note that the Max Shear derived value for engineering strain will be returned as twice the tensoral value. The function vis_StateConvertStrain can be used to convert strain data from tensor to/from engineering strain. The function vis_StateSetEngineeringStrain will be called appropriately internally to flag the current form of strain data.
The vis_StateExtent function returns the minimum and maximum results data values over a specified subset of the solution domain. The domain subset is defined by an input Group object.
Results data is maintained at nodes, element centroids or element nodes by a state object. It is often useful to be able to interpolate or extrapolate results data from one location to another. The vis_StateMap function is designed to perform this operation. The mapping of data from elements or element nodes to nodes may be performed using a topologically or geometrically based weighting. A topological weighting assigns an equal weight to each element contribution connected to a node. A geometric weighting assigns a weight proportional to the reciprocal of the volume of the element (area for 2D elements, length for 1D elements and unity for 0D elements).
A specific function, vis_StateMapElemNode, is available for averaging and mapping element centroid or element node data to element nodes in which averaging is performed only within user specified regions. For example, it is common for element stress results to be output at element nodes in which the stresses have been computed using local element methods. This results in general stress discontinuities between all elements. A typical post processing function is to average the element nodal stresses at nodes within regions of homogeneous elements. This will result in removing the element stress discontinuities between elements in the same region but preserving the discontinuity at the boundaries between regions. The resulting data location must be element nodal to represent the region discontinuity.
The function, vis_StateMidside, is available for specialized processing of data at element midside nodes as a function of the element corner nodes. Options include linear interpolation of the data at midside nodes and clamping the data midside nodes. Only edge midside nodes are affected, midface and midbody nodes are not processed.
The local undeformed coordinate system information may be maintained by any combination of user defined local coordinate systems represented by a HashTable of CoordSys objects and element local coordinates systems which are computed using a specified algorithm, usually as a function of element geometry. The element geometry consists of the element node coordinates and an optional HashTable of ElemDat objects which contain vectors to orient local coordinate systems.
The way in which local undeformed coordinate system information is maintained at each node or element is specified by a set of integer flags. By default, these coordinate system identifiers are defined by the node or element VIS_CSYSID association. However an option is provided to specify integer flags contained in an IdTran attribute object. Use the function vis_StateSetObject to register the IdTran object. Normally element node states assume that the coordinate system identifiers are associated with elements, however the user can specify that the coordinate system identifiers be associated with the element nodes. Set this option using vis_StateSetSystemType. Use the function vis_StateSetHashTable to register the HashTable of CoordSys objects and the HashTable of ElemDat objects.
The local undeformed coordinate system flags are assigned as follows: See section VisTools, Element Coordinate Systems for a description of element coordinate systems.
The local deformed coordinate system information is maintained as an associated State object containing the rotation angle vectors which define the coordinate systems of each entity. Use the function vis_StateSetObject to register the State object of rotation angle vectors.
Table of Contents+ vis_StateExtent + vis_StateTransform
The State object calls the following grid functions set in the GridFun attribute object.
A IdTran attribute object is required for specifying local coordinate system flags for each entity, node or element, contained in the State object. Depending upon how the coordinate system information is maintained, either a HashTable attribute object of CoordSys objects and/or a State attribute object of direction cosine matrices may be required.
*vis_StateBegin - create an instance of an State object
vis_State *vis_StateBegin ()
None
Destroy an instance of a State object using
void vis_StateEnd (vis_State *state)
Return the current value of a State object error flag using
Vint vis_StateError (vis_State *state)
Make a copy of a State object. The private data from the fromstate object is copied to the state object. Any previous private data in state is lost.
void vis_StateCopy (vis_State *state, vis_State *fromstate)
vis_StatePre - specify precision of state data
void vis_StatePre (vis_State *state, Vint pre)
state Pointer to State object. pre Precision of state data =SYS_FLOAT Single precision =SYS_DOUBLE Double precision
None
vis_StateClear - clear all results data
void vis_StateClear (vis_State *state)
state Pointer to State object.
None
vis_StateClearData - clear results data for a single entity
void vis_StateClearData (vis_State *state, Vint index,
state Pointer to State object. index Entity index to set results data
None
vis_StateConvertComplex - convert complex data
void vis_StateConvertComplex (vis_State *state, Vint complextype)
state Pointer to State object. complextype Complex type =SYS_COMPLEX_REALIMAGINARY Real imaginary =SYS_COMPLEX_MAGNITUDEPHASE Magnitude phase
None
vis_StateConvertStrain - convert strain data
void vis_StateConvertStrain (vis_State *state, Vint straintype)
state Pointer to State object. straintype Strain type =SYS_STRAINTYPE_TENSOR Tensor strain =SYS_STRAINTYPE_ENGINEERING Engineering strain
None
vis_StateData - query results data for a set of entities
void vis_StateData (const vis_State *state, Vint nix, Vint ix[], Vfloat s[]) void vis_StateDatadv (const vis_State *state, Vint nix, Vint ix[], Vdouble s[])
state Pointer to State object. nix Number of entities to return results ix Array of entity indices
s Array of returned results data
Use vis_StateSetData to set results data. Use vis_StateSetDatadv to set results data in double precision.
vis_StateDataElem - get results data at elements
void vis_StateDataElem (const vis_State *state, Vint index, Vfloat s[]) void vis_StateDataElemdv (const vis_State *state, Vint index, Vdouble s[])
state Pointer to State object. index Element index to get results data
s Array of returned results data
vis_StateDataElemEnt - get results data for element entities
void vis_StateDataElemEnt (const vis_State *state, Vint type, Vint index, Vint no, Vfloat s[]) void vis_StateDataElemEntdv (const vis_State *state, Vint type, Vint index, Vint no, Vdouble s[])
state Pointer to State object. type Type of element feature. =SYS_ELEM Element nodes =SYS_FACE Element face nodes =SYS_EDGE Element edge nodes index Element index to get results data no Element face or edge number
s Array of returned results data
vis_StateDataElemRST - get results data at given natural coordinates
void vis_StateDataElemRST (vis_State *state, Vint index, Vfloat r[], Vfloat s[]) void vis_StateDataElemRSTdv (vis_State *state, Vint index, Vdouble r[], Vdouble s[])
state Pointer to State object. index Element index to get results data r Element natural coordinates
s Array of returned results data
vis_StateDataMax - get max number of results values and locations
void vis_StateDataMax (const vis_State *state, Vint *maxdat, Vint *maxloc, Vint *maxsec)
state Pointer to State object.
maxdat Maximum number of data values maxloc Maximum number of data locations maxsec Maximum number of data sections
vis_StateDataNum - get number of results values and locations
void vis_StateDataNum (const vis_State *state, Vint index, Vint *ndat, Vint *nloc, Vint *nsec)
state Pointer to State object. index Entity index to query
ndat Total number of data values nloc Number of data locations nsec Number of data sections
vis_StateDataLayPos - get section layer position type
void vis_StateDataLayPos (const vis_State *state, Vint nix, Vint ix[], Vint lpos[])
state Pointer to State object. nix Number of entities to return ix Array of entity indices
lpos Array of returned section layer position types
vis_StateDataLayers - get section layer number and position
void vis_StateDataLayers (const vis_State *state, Vint index, Vint pos[], Vint lay[])
state Pointer to State object. index Entity index
pos Section layer positions =SYS_LAYERPOSITION_NONE None, unknown =SYS_LAYERPOSITION_BOT Bottom =SYS_LAYERPOSITION_MID Middle =SYS_LAYERPOSITION_TOP Top =SYS_LAYERPOSITION_INTPNT Integration Point lay Section layer numbers
vis_StateDataSect - get number of results data sections
void vis_StateDataSect (const vis_State *state, Vint nix, Vint ix[], Vint nsec[])
state Pointer to State object. nix Number of entities to return ix Array of entity indices
nsec Array of returned number of results sections
vis_StateCheckSect - check if any sections defined
void vis_StateCheckSect (const vis_State *state, Vint *flag)
state Pointer to State object.
flag Section data defined.
vis_StateDataStat - get results data status
void vis_StateDataStat (const vis_State *state, Vint nix, Vint ix[], Vint stat[])
state Pointer to State object. nix Number of entities to return results ix Array of entity indices
stat Array of returned results data status
Conversely, the data status will be 0 if the data for a given entity has not been defined using vis_StateSetData or the section number defined using vis_StateSetSection is greater than the number of sections defined using vis_StateSetDataSect.
vis_StateDataStatElemEnt - get element face or edge results data status
void vis_StateDataStatElemEnt (const vis_State *state, Vint index, Vint no, Vint *stat)
state Pointer to State object. index Entity index no Element face or edge number
stat Returned results data status
vis_StateDef - define parent and child entities and data type
void vis_StateDef (vis_State *state, Vint nument, Vint parenttype, Vint childtype, Vint datatype)
state Pointer to State object. nument Number of parent entities parenttype Type of parent entity =SYS_ELEM Element type =SYS_FACE Element face type =SYS_EDGE Element edge type =SYS_NODE Node type =SYS_PARTICLE Particle type =SYS_MODE Mode type childtype Type of child entity. =SYS_NONE No child entity =SYS_NODE Node type =SYS_INTPNT Integration Point type datatype Data type =VIS_SCALAR Scalar data =VIS_VECTOR Vector data =VIS_SIXDOF Six dof vector data =VIS_TENSOR Symmetric tensor data =VIS_GENERALTENSOR General Tensor data =VIS_ELEMRES Element Result data =VIS_SCALARS+n n scalars data
None
The valid range of scalars data is VIS_SCALARS1, VIS_SCALARS2 through VIS_SCALARS256. The relationship VIS_SCALARSn = VIS_SCALARS + n always holds.
Inquire of defined nument, parenttype, childtype and datatype as output arguments using
void vis_StateInq (const vis_State *state, Vint *nument, Vint *parenttype, Vint *childtype, Vint *datatype)
vis_StateDeform - create deformed node vector of coordinates
void vis_StateDeform (vis_State *state, Vfloat f, vis_State *stated, vis_Group *group)
state Pointer to State object. f Floating point coefficient. stated Pointer to State object of node displacements. group Pointer to Group object. If NULL, then all entities are assumed.
None
state = undeformed_coordinates + f * stated
vis_StateDemo - create "demo" node vector displacement results
void vis_StateDemo (vis_State *state, Vint oper, Vfloat f, vis_Group *group)
state Pointer to State object. oper Operation specified to create state =STATE_DEMO_BEAM Create beam bending displacements =STATE_DEMO_PLATE Create plate bending displacements f Floating point factor. group Pointer to Group object. If NULL, then all entities are assumed.
None
vis_StateDerivative - perform differential operations on a state
void vis_StateDerivative (vis_State *state, Vint oper, Vfloat f, Vint func, vis_State *statex, vis_Group *group)
state Pointer to State object. oper Operation specified to modify state =STATE_EQUAL Operation = =STATE_PLUSEQUAL Operation += =STATE_MINUSEQUAL Operation -= =STATE_MULTIPLYEQUAL Operation *= =STATE_DIVIDEEQUAL Operation /= f Floating point coefficient. func Function specified to perform on statex =STATE_CURL Curl function =STATE_DIV Divergence function =STATE_GRAD Gradient function =STATE_GRADNORM Normalized Gradient function =STATE_STRAIN Infinitesimal strain function =STATE_VECTORGRAD Vector gradient function statex Pointer to State operand object. group Pointer to Group object. If NULL, then all entities are assumed.
None
oper state statex ---------------------------------------- STATE_CURL vector vector STATE_DIV scalar vector STATE_GRAD vector scalar STATE_GRADNORM vector scalar STATE_STRAIN tensor vector STATE_VECTORGRAD generaltensor vectorThis routine implements the following equation,
state oper f*func(statex)For example the call,
vis_StateDerivative(state,STATE_PLUSEQUAL,2.,STATE_DIV,statex,NULL);executes the following equation,
state += 2.*DIV(statex)
In particular the STATE_GRADNORM operator may be used to compute normals to a scalar field for use in smooth shading of isosurfaces. Assume that a node state object contains a continuous scalar field. Smoothly varying node normals to the scalar field may be generated by first using vis_StateDerivative to compute normal vectors at element nodes and then using vis_StateMap to map the element node normals to nodes. The mapping operation is requred since the computation of gradient normals at element nodes will, in general, result in discontinuous values of the gradients between elements.
vis_StateDirCos - get local direction cosine matrix
void vis_StateDirCos (vis_State *state, Vint index, Vfloat tm[][3][3])
state Pointer to State object. index Entity index
tm Array of returned direction cosine matrices
vis_StateElemGroup - derive groups of elements
void vis_StateElemGroup (vis_State *state, Vint oper, vis_Group *group, vis_Group *groupdst)
state Pointer to State object. oper Operation specified to derive group =STATE_EXTENT Elements lying within an interval =STATE_OUTBOUND Elements lying outside an interval =STATE_NONZERO Elements with non zero value =STATE_DEFINED Elements with defined data =STATE_LOCALMIN Elements with local minimum =STATE_LOCALMAX Elements with local maximum =STATE_LOCALMINMAX Elements with local min or max group Pointer to Group object of elements. If NULL, then all elements are assumed.
groupdst Pointer to derived Group object of elements.
For the operation STATE_EXTENT and STATE_OUTBOUND the extent limits are specified using vis_StateSetGroupParamfv If any of the data components at a element satisfy the test condition then the element is added to the group.
The operation STATE_DEFINED adds all nodes for which data has been defined using vis_StateData.
The operation STATE_LOCALMIN, STATE_LOCALMAX or STATE_LOCALMINMAX adds all elements which are a local data minimum, maximum or either minimum or maximum for which data has been defined using vis_StateData. The state must either be a scalar state or the current derived quantity is a scalar.
vis_StateExtent - (parallel) minimum and maximum values
void vis_StateExtent (vis_State *state, vis_Group *group, Vfloat extent[])
state Pointer to State object. group Pointer to Group object of entities. If NULL then all entities are assumed.
extent Minimum and maximum values of results data
vis_StateExtentLoc - minimum and maximum values and locations
void vis_StateExtentLoc (vis_State *state, vis_Group *group, Vfloat extent[], Vint ix[], Vint no[])
state Pointer to State object. group Pointer to Group object of entities. If NULL then all entities are assumed.
extent Minimum and maximum values of results data ix Entity indices no Element node connectivity indices
vis_StateExtentLocSect - minimum and maximum values,locations,sections
void vis_StateExtentLocSect (vis_State *state, vis_Group *group, Vfloat extent[], Vint ix[], Vint no[], Vint sc[])
state Pointer to State object. group Pointer to Group object of entities. If NULL then all entities are assumed.
extent Minimum and maximum values of results data ix Entity indices no Element node connectivity indices sc Section numbers
vis_StateMap - map results data between node, element and element node locations
void vis_StateMap (vis_State *state, vis_State *fromstate, vis_Group *group)
state Pointer to destination State object. fromstate Pointer to source State object. group Pointer to Group object of elements. If NULL then all elements are assumed.
None
Note that a GridFun attribute object must be set in any element or element node states for any mapping operation. Set this attribute object using vis_StateSetObject.
The algorithm used to map quantities to elements from nodes or element nodes may select an average quantity, geometry weighted average quantity, maximum difference quantity or minimum or maximum quantities. Use vis_StateSetParami with STATE_MAPNODE to set the node mapping type. Use vis_StateSetParami with STATE_MAPELEM to set the element mapping type. The mapping algorithm is subject to several other options specified using vis_StateSetParami.
vis_StateMapElemNode - map results data to element node location
void vis_StateMapElemNode (vis_State *state, vis_State *fromstate, vis_Group *group, vis_IdTran *idtran)
state Pointer to destination State object. fromstate Pointer to source State object. group Pointer to Group object of elements. If NULL then all elements are assumed. idtran Pointer to IdTran object of element region numbers.
None
Note that a GridFun attribute object must be set in any element or element node states for any mapping operation. Set this attribute object using vis_StateSetObject.
The algorithm used to map quantities to elements from element nodes may select an average quantity, geometry weighted average quantity, maximum difference quantity or minimum or maximum quantities. Use vis_StateSetParami with STATE_MAPNODE to set the node mapping type. Use vis_StateSetParami with STATE_MAPELEM to set the element mapping type.
vis_StateMidside - process results data at midside nodes
void vis_StateMidside (vis_State *state, vis_Group *group)
state Pointer to State object. group Pointer to Group object of elements. If NULL then all elements are assumed.
None
Processing options include linearly interpolating the midside node data as a function of the edge endpoint node data or clamping the midside node data to the minimum and maximum of the edge endpoint node data. By default, the midside node data is linearly interpolated. Use vis_StateSetParami with STATE_MIDSIDE to control the processing option.
vis_StateNodeGroup - derive groups of nodes
void vis_StateNodeGroup (vis_State *state, Vint oper, vis_Group *group, vis_Group *groupdst)
state Pointer to State object. oper Operation specified to derive group =STATE_EXTENT Nodes lying within an interval =STATE_OUTBOUND Nodes lying outside an interval =STATE_NONZERO Nodes with non zero value =STATE_DEFINED Nodes with defined data =STATE_LOCALMIN Nodes with local minimum =STATE_LOCALMAX Nodes with local maximum =STATE_LOCALMINMAX Nodes with local min or max group Pointer to Group object of nodes. If NULL, then all nodes are assumed.
groupdst Pointer to derived Group object of nodes.
For the operation STATE_EXTENT and STATE_OUTBOUND the extent limits are specified using vis_StateSetGroupParamfv If any of the data components at a node satisfy the test condition then the node is added to the group.
The operation STATE_DEFINED adds all nodes for which data has been defined using vis_StateData.
The operation STATE_LOCALMIN, STATE_LOCALMAX or STATE_LOCALMINMAX adds all nodes which are a local data minimum, maximum or either minimum or maximum for which data has been defined using vis_StateData. The state must either be a scalar state or the current derived quantity is a scalar.
vis_StateNumDerive - get number of data components
void vis_StateNumDerive (vis_State *state, Vint *ncmp)
state Pointer to State object.
ncmp Number of components in current derived quantity type
vis_StateOperateBinary - operate on a state as a function of two states
void vis_StateOperateBinary (vis_State *state, Vint oper, Vfloat f, Vint func, vis_State *statex, vis_State *statey, vis_Group *group) void vis_StateOperateBinarydv (vis_State *state, Vint oper, Vdouble f, Vint func, vis_State *statex, vis_State *statey, vis_Group *group)
state Pointer to State object. oper Operation specified to modify state =STATE_EQUAL Operation = =STATE_PLUSEQUAL Operation += =STATE_MINUSEQUAL Operation -= =STATE_MULTIPLYEQUAL Operation *= =STATE_DIVIDEEQUAL Operation /= f Floating point coefficient. func Function specified to perform on statex and statey =STATE_MIN minimum function =STATE_MAX maximum function =STATE_AVE average function =STATE_CROSS vector cross product function =STATE_DOT vector dot product function =STATE_SUM sum function statex Pointer to State operand object. statey Pointer to State operand object. group Pointer to Group object. If NULL, then all entities are assumed.
None
If state has no prior data set, then state is initialized with the derived section configuration of statex.
This routine implements the following equation,
state oper f*func(statex,statey)For example the call,
vis_StateOperateBinary(state,STATE_EQUAL,2.,STATE_MIN,statex,statey,NULL);executes the following equation,
state = 2.*min(statex,statey)The state, statex and statey objects may be the same.
vis_StateOperateUnary - operate on a state as a function of another state
void vis_StateOperateUnary (vis_State *state, Vint oper, Vfloat f, Vint func, vis_State *statex, vis_Group *group) void vis_StateOperateUnarydv (vis_State *state, Vint oper, Vdouble f, Vint func, vis_State *statex, vis_Group *group)
state Pointer to State object. oper Operation specified to modify state =STATE_EQUAL Operation = =STATE_PLUSEQUAL Operation += =STATE_MINUSEQUAL Operation -= =STATE_MULTIPLYEQUAL Operation *= =STATE_DIVIDEEQUAL Operation /= f Floating point coefficient. func Function specified to perform on statex =STATE_IDENTITY identity returns statex value =STATE_UNITY value of 1. =STATE_ACOS acos function =STATE_ASIN asin function =STATE_ATAN atan function =STATE_COS cos function =STATE_SIN sin function =STATE_TAN tan function =STATE_SQRT sqrt function =STATE_LOG log function =STATE_EXP exp function =STATE_ABS absolute value function =STATE_RECIPROCAL reciprocal function statex Pointer to State operand object. group Pointer to Group object. If NULL, then all entities are assumed.
None
If state has no prior data set, then state is initialized with the derived section configuration of statex.
This routine implements the following equation,
state oper f*func(statex)For example the call,
vis_StateOperateUnary(state,STATE_PLUSEQUAL,2.,STATE_SQRT,statex,NULL);executes the following equation,
state += 2.*sqrt(statex)The state and statex objects may be the same.
vis_StateSetData - set results data
void vis_StateSetData (vis_State *state, Vint index, Vfloat s[]) void vis_StateSetDatadv (vis_State *state, Vint index, Vdouble s[])
state Pointer to State object. index Entity index to set results data s Array of results data to be set at entity index
None
vis_StateSetDataElemEnt - set element face or edge results data
void vis_StateSetDataElemEnt (vis_State *state, Vint index, Vint no, Vfloat s[]) void vis_StateSetDataElemEntdv (vis_State *state, Vint index, Vint no, Vdouble s[])
state Pointer to State object. index Entity index to set results data no Element face or edge number s Array of results data to be set at entity index
None
vis_StateSetDataEnt - set results data element faces or edges
void vis_StateSetDataEnt (vis_State *state, Vint index, Vint numno, Vint no[]),
state Pointer to State object. index Entity index to set number of results sections numno Number of element faces or element edges no Array of element face or element edge numbers
None
vis_StateSetDataLayPos - set section layer position type
void vis_StateSetDataLayPos (vis_State *state, Vint index, Vint lpos)
state Pointer to State object. index Entity index to set number of results sections lpos Section layer position type =SYS_LAYERPOSITION_NONE None, unknown =SYS_LAYERPOSITION_MID Middle =SYS_LAYERPOSITION_BOTTOP Bottom and top =SYS_LAYERPOSITION_BOTTOPMID Bottom, middle and top =SYS_LAYERPOSITION_INTPNT Integration Point
None
vis_StateSetDataLayers - set section layer number and position
void vis_StateSetDataLayers (vis_State *state, Vint index, Vint pos[], Vint lay[])
state Pointer to State object. index Entity index pos Section layer position type =SYS_LAYERPOSITION_NONE None, unknown =SYS_LAYERPOSITION_BOT Bottom =SYS_LAYERPOSITION_MID Middle =SYS_LAYERPOSITION_TOP Top =SYS_LAYERPOSITION_INTPNT Integration Point lay Section layer numbers
None
vis_StateSetDataSect - set number of results data sections
void vis_StateSetDataSect (vis_State *state, Vint index, Vint nsec)
state Pointer to State object. index Entity index nsec Number of results sections
None
vis_StateSetDerive - set derived quantity
void vis_StateSetDerive (vis_State *state, Vint derive)
state Pointer to State object. derive Type of derived quantity =VIS_SCALAR Primitive scalar =VIS_VECTOR Primitive vector =VIS_VECTOR_X Vector x component =VIS_VECTOR_Y Vector y component =VIS_VECTOR_Z Vector z component =VIS_VECTOR_MAG Vector magnitude =VIS_SIXDOF Primitive six dof vectors =VIS_SIXDOF_TX Six dof tx component =VIS_SIXDOF_TY Six dof ty component =VIS_SIXDOF_TZ Six dof tz component =VIS_SIXDOF_RX Six dof rx component =VIS_SIXDOF_RY Six dof ry component =VIS_SIXDOF_RZ Six dof rz component =VIS_SIXDOF_TMAG Six dof translation magnitude =VIS_SIXDOF_RMAG Six dof rotation magnitude =VIS_SIXDOF_TVEC Six dof translation vector =VIS_SIXDOF_RVEC Six dof rotation vector =VIS_TENSOR Primitive tensor =VIS_TENSOR_XX Tensor xx component =VIS_TENSOR_YY Tensor yy component =VIS_TENSOR_ZZ Tensor zz component =VIS_TENSOR_XY Tensor xy component =VIS_TENSOR_YZ Tensor yz component =VIS_TENSOR_ZX Tensor zx component =VIS_TENSOR_MEAN Tensor mean =VIS_TENSOR_VONMISES Tensor Von Mises stress =VIS_TENSOR_VONMISES_E Tensor Von Mises strain =VIS_TENSOR_OCTAHEDRAL Tensor octahedral shear =VIS_TENSOR_DETERMINANT Tensor determinant =VIS_TENSOR_INTENSITY Tensor intensity =VIS_TENSOR_ANGSHEAR Tensor max shear angle in degrees =VIS_TENSOR_MAXSHEAR Tensor max shear =VIS_TENSOR_EQUDIRECT Tensor equal direct at max shear =VIS_TENSOR_MINPRINC Tensor minimum principal value =VIS_TENSOR_MIDPRINC Tensor middle principal value =VIS_TENSOR_MAXPRINC Tensor maximum principal value =VIS_TENSOR_MINPRINCDEV Tensor minimum principal deviatoric value =VIS_TENSOR_MIDPRINCDEV Tensor middle principal deviatoric value =VIS_TENSOR_MAXPRINCDEV Tensor maximum principal deviatoric value =VIS_TENSOR_PRINC Tensor principal values =VIS_TENSOR_PRINCDIRCOS Tensor principal directions =VIS_GENERALTENSOR Primitive general tensor =VIS_GENERALTENSOR_XX General tensor xx component =VIS_GENERALTENSOR_XY General tensor xy component =VIS_GENERALTENSOR_XZ General tensor xz component =VIS_GENERALTENSOR_YX General tensor yx component =VIS_GENERALTENSOR_YY General tensor yy component =VIS_GENERALTENSOR_YZ General tensor yz component =VIS_GENERALTENSOR_ZX General tensor zx component =VIS_GENERALTENSOR_ZY General tensor zy component =VIS_GENERALTENSOR_ZZ General tensor zz component =VIS_GENERALTENSOR_SYM General tensor symmetrized tensor =VIS_GENERALTENSOR_XVEC General tensor first row vector =VIS_GENERALTENSOR_YVEC General tensor second row vector =VIS_GENERALTENSOR_ZVEC General tensor third row vector =VIS_ELEMRES Element results =VIS_ELEMRES_SHELL_NXX Shell Nxx component =VIS_ELEMRES_SHELL_NYY Shell Nyy component =VIS_ELEMRES_SHELL_NXY Shell Nxy component =VIS_ELEMRES_SHELL_MXX Shell Mxx component =VIS_ELEMRES_SHELL_MYY Shell Myy component =VIS_ELEMRES_SHELL_MXY Shell Mxy component =VIS_ELEMRES_SHELL_QXZ Shell Qxz component =VIS_ELEMRES_SHELL_QYZ Shell Qyz component =VIS_ELEMRES_BEAM_NXX Beam Nxx component =VIS_ELEMRES_BEAM_MYY Beam Myy component =VIS_ELEMRES_BEAM_MZZ Beam Mzz component =VIS_ELEMRES_BEAM_T Beam Torque component =VIS_ELEMRES_BEAM_QXY Beam Qxy component =VIS_ELEMRES_BEAM_QZX Beam Qzx component =VIS_ELEMRES_BEAM_TB Beam Bimoment component =VIS_ELEMRES_SPRINGDASHPOT_F SpringDashpot Force component =VIS_ELEMRES_SPRINGDASHPOT_FX SpringDashpot Force X component =VIS_ELEMRES_SPRINGDASHPOT_FY SpringDashpot Force Y component =VIS_ELEMRES_SPRINGDASHPOT_FZ SpringDashpot Force Z component =VIS_ELEMRES_SPRINGDASHPOT_MX SpringDashpot Moment X component =VIS_ELEMRES_SPRINGDASHPOT_MY SpringDashpot Moment Y component =VIS_ELEMRES_SPRINGDASHPOT_MZ SpringDashpot Moment Z component =VIS_SCALARS1 thru 10 Primitive scalars =VIS_SCALARS_1 First scalar =VIS_SCALARS_2 Second scalar =VIS_SCALARS_3 Third scalar =VIS_SCALARS_4 Fourth scalar =VIS_SCALARS_5 Fifth scalar =VIS_SCALARS_6 Sixth scalar =VIS_SCALARS_7 Seventh scalar =VIS_SCALARS_8 Eighth scalar =VIS_SCALARS_9 Ninth scalar =VIS_SCALARS_10 Tenth scalar
None
The relationship VIS_SCALARS_n = VIS_SCALARS_1 + n-1 always holds.
Inquire of set derive as an output argument using
void vis_StateGetDerive (const vis_State *state, Vint *derive)
vis_StateSetEngineeringStrain - set engineering strain flag
void vis_StateSetEngineeringStrain (vis_State *state, Vint flag)
state Pointer to State object. flag Engineering strain flag =SYS_OFF Tensor strain =SYS_ON Engineering strain
None
Inquire of set flag as an output argument using
void vis_StateGetEngineeringStrain (const vis_State *state, Vint *flag)
vis_StateSetMagnitudePhase - set magnitude phase flag
void vis_StateSetMagnitudePhase (vis_State *state, Vint flag)
state Pointer to State object. flag Magnitude phase flag =SYS_OFF Real imaginary =SYS_ON Magnitude phase
None
Inquire of set flag as an output argument using
void vis_StateGetMagnitudePhase (const vis_State *state, Vint *flag)
vis_StateSetGroupParam - set group derivation parameters
void vis_StateSetGroupParamfv (vis_State *state, Vint ptype, Vfloat vparam[])
state Pointer to State object. ptype Type of group parameter to set =STATE_EXTENT Scalar state extent, vparam vparam Specifies the float values that ptype will be set to.
None
vis_StateSetHashTable - set pointers to HashTable objects.
void vis_StateSetHashTable (vis_State *state, Vint type, vsy_HashTable *hashtable)
state Pointer to State object. type The name of the object type contained in the HashTable. =VIS_COORDSYS CoordSys objects =VIS_ELEMDAT ElemDat objects hashtable Pointer to the HashTable to be set.
None
vis_StateSetObject - set pointers to attribute objects
void vis_StateSetObject (vis_State *state, Vint objecttype, Vobject *object)
state Pointer to State object. objecttype The name of the object type to be set. =VIS_GRIDFUN GridFun object =VIS_IDTRAN IdTran object containing local coordinate system flags. =VIS_STATE State object containing local coordinate system direction cosines. =VIS_STATE_ROTANG State object containing rotation angle vectors. object Pointer to the object to be set.
None
The IdTran object is required if local coordinate system is to be maintained for the state data. Depending upon the local coordinate system flags contained in the IdTran object HashTable objects and/or a State may also be required. Set HashTable objects using vis_StateSetHashTable. Set State objects using vis_StateSetObject.
Local coordinate systems are used by the vis_StateTransform and vis_StateDirCos functions.
Get object as an output argument using
void vis_StateGetObject (vis_State *state, Vint objecttype, Vobject **object)
vis_StateSetParami - set state parameters
void vis_StateSetParami (vis_State *state, Vint ptype, Vint iparam)
state Pointer to State object. ptype Type of state parameter to set =STATE_MAPELEM Select element mapping type =STATE_MAPNODE Select node mapping type =STATE_MAPDEFINED Enable mapping defined entities only =STATE_MAPNONZERO Enable mapping nonzero contributions =STATE_MIDSIDE Select midside node processing =STATE_SORTHIGHLOW Enable high to low sort =STATE_SORTABSVALUE Enable absolute value sort iparam Specifies the integer value that ptype will be set to. =STATE_MAPAVE Average to node or element =STATE_MAPMIN Minimum to node or element =STATE_MAPMAX Maximum to node or element =STATE_MAPABSMIN Absolute minimum to node or element =STATE_MAPABSMAX Absolute maximum to node or element =STATE_MAPCENT Centroidal value to element =STATE_MAPDIFF Difference to node =STATE_MAPGEOM Geometry weighted average to node =STATE_MIDSIDEAVE Average midside node values =STATE_MIDSIDECLAMP Clamp midside node values =VIS_OFF Turn parameter off =VIS_ON Turn parameter on
None
The parameter STATE_MAPELEM selects the type of element mapping from nodes or element nodes to elements. The average, STATE_MAPAVE, minimum, STATE_MAPMIN or STATE_MAPABSMIN, maximum, STATE_MAPMAX or STATE_MAPABSMAX or element centroidal, STATE_MAPCENT contribution may be selected on a component level basis. Note that the use of minimum or maximum for anything other than scalar data should be used with care. The STATE_MAPABSMIN and STATE_MAPABSMAX options test on absolute value but set the actual value. The element centroidal value will generally differ from the element average value for higher order elements only. By default STATE_MAPELEM is set to STATE_MAPAVE.
The parameter STATE_MAPNODE selects the type of node mapping from elements or element nodes to nodes. The average, STATE_MAPAVE, element geometry weighted average, STATE_MAPGEOM, minimum, STATE_MAPMIN or STATE_MAPABSMIN, maximum, STATE_MAPMAX or STATE_MAPABSMAX, or maximum difference, STATE_MAPDIFF element contribution may be selected on a component level basis. Note that the use of minimum or maximum for anything other than scalar data should be used with care. The STATE_MAPABSMIN and STATE_MAPABSMAX options test on absolute value but set the actual value. If STATE_MAPAVE is used then element quantities from adjacent elements are given equal weight when accumulated and averaged at shared nodes. If STATE_MAPGEOM is used the contribution from a given element is weighted by the size of the element. This will produce more accurate results when adjacent elements have significant size differences. By default STATE_MAPNODE is set to STATE_MAPAVE.
The parameter STATE_MAPNONZERO enables mapping of non zero element quantities only to nodes. If disabled all elements connected to a node will contribute element quantities to the node. If enabled any elements connected to a node in which all element quantities are zero will not contribute to the node. By default STATE_MAPNONZERO is set to VIS_OFF.
The parameter STATE_MAPDEFINED enables mapping of defined entities only. If disabled undefined node and element data is assumed to be zero. If enabled undefined node and element data is ignored, ie. only defined nodes and elements are mapped. Specifically, in the case of mapping from element to node, any undefined elements are skipped with the effect of not being attached to any node. In the case of mapping from node to element, any element with an undefined node contribution is skipped. By default STATE_MAPDEFINED is set to VIS_ON.
The parameter STATE_MIDSIDE is used to control the processing midside node values with the function vis_StateMidside. If STATE_MIDSIDE is set to STATE_MIDSIDEAVE then midside node values are set to the average of the corner node values of the edge. If STATE_MIDSIDE is set to STATE_MIDSIDECLAMP then midside node values are clamped to the corner node values of the edge. By default STATE_MIDSIDE is set to STATE_MIDSIDEAVE.
The parameter STATE_SORTHIGHLOW enables sorting from positive to negative in vis_StateSortIdTran. By default STATE_SORTHIGHLOW is set to VIS_OFF.
The parameter STATE_SORTABSVALUE enables sorting of the absolute value of the state quantity in vis_StateSortIdTran. By default STATE_SORTABSVALUE is set to VIS_OFF.
The parameter STATE_SORTELEMNODEAVE enables sorting of the element average of element node quantities in vis_StateSortIdTran. By default STATE_SORTELEMNODEAVE is set to VIS_ON.
vis_StateSortIdTran - sort entities into an IdTran object
void vis_StateSortIdTran (vis_State *state, vis_Group *group, vis_IdTran *idtran)
state Pointer to State object. group Pointer to Group object. If NULL, then all entities are assumed.
idtran Pointer to derived IdTran object of sorted entities.
By default, for element node states, the average of the element node values is used as the sorting value. Optionally, the individual element node values can be used as the sorting value by setting STATE_SORTELEMNODEAVE off in vis_StateSetParami. If this option is used, then the output IdTran object contains two integers in order for each element node value. The first integer of the pair is the element number and the second integer is the connectivity index (greater than or equal to 1) of the element node. The output IdTran object will contain two times the number of element nodes integers.
By default, the values are sorted from negative to positive. The sorting can be changed from positive to negative by setting STATE_SORTHIGHLOW in vis_StateSetParami. The absolute value can be sorted by setting STATE_SORTABSVALUE in vis_StateSetParami.
vis_StateSum - sum results data
void vis_StateSum (vis_State *state, vis_Group *group, Vfloat s[]) void vis_StateSumdv (vis_State *state, vis_Group *group, Vdouble s[])
state Pointer to State object. group Pointer to Group object of entities. If NULL then all entities are assumed.
s Array of summed results data
vis_StateSetSection - set section number
void vis_StateSetSection (vis_State *state, Vint section)
state Pointer to State object. section The section number to select data. =0 Return data for all sections =SYS_ELEMSEC_BOT First section, same as 1 =SYS_ELEMSEC_TOP Last section. >0 Return data for specified section
None
Get the current section as an output argument using
void vis_StateGetSection (vis_State *state, Vint *section)
vis_StateSetSystem - set coordinate system state
void vis_StateSetSystem (vis_State *state, Vint system)
state Pointer to State object. system The coordinate system state to transform to. =STATE_GLOBAL System state is global =STATE_LOCAL System state is local undeformed. =STATE_ROTANG System state is local deformed.
None
Get the current system as an output argument using
void vis_StateGetSystem (vis_State *state, Vint *system)
vis_StateSetSystemType - set coordinate system entity type
void vis_StateSetSystemType (vis_State *state, Vint systemtype)
state Pointer to State object. systemtype The coordinate system state to transform to. =SYS_ELEM System entity type is element =SYS_NODE System entity type is node
None
Get the current systemtype as an output argument using
void vis_StateGetSystemType (vis_State *state, Vint *systemtype)
vis_StateSetComplexMode - set specify/query mode for complex data
void vis_StateSetComplexMode (vis_State *lcase, Vint complexmode)
state Pointer to State object. complexmode Complex mode =SYS_COMPLEX_REAL Real =SYS_COMPLEX_IMAGINARY Imaginary =SYS_COMPLEX_REALIMAGINARY Real and imaginary
None
Get complexmode as an output argument.
void vis_StateGetComplexMode (const vis_State *lcase, Vint *complexmode)
vis_StateGetComplex - query for complex data existence
void vis_StateGetComplex (vis_State *lcase, Vint *complexflag)
state Pointer to State object.
complexflag Complex data existence flag
vis_StateTransform - (parallel) perform coordinate system transformations
void vis_StateTransform (vis_State *state, Vint system, vis_Group *group)
state Pointer to State object. system The coordinate system state to transform to. =STATE_GLOBAL Transform from the current coordinate system to the global coordinate system =STATE_LOCAL Transform from the global system to the local undeformed coordinate system =STATE_ROTANG Transform from the global system to the local deformed coordinate system group Pointer to Group object. If NULL, then all entities are assumed.
None
vis_StateTypeDerive - get data type of derived quantity
void vis_StateTypeDerive (vis_State *state, Vint *typederive)
state Pointer to State object.
typederive Primitive data type of derived quantity
vis_StateWrite - write state to file formats
void vis_StateWrite (vis_State *state, vis_RProp *rprop, Vint type, const Vchar *path)
state Pointer to State object. rprop Pointer to RProp object. type File type =SYS_ASCII ASCII format =SYS_BINARY Binary format =SYS_SDRC_UNIVERSAL Write to SDRC Universal file path File path
None
vis_StateRead - read state from file formats
void vis_StateRead (vis_State *state, Vint type, const Vchar *path)
state Pointer to State object. type File type =SYS_ASCII ASCII format =SYS_BINARY Binary format path File path
None
*vis_HistoryBegin - create an instance of a History object vis_HistoryEnd - destroy an instance of a History object vis_HistoryError - return History object error flag vis_HistoryCopy - copy a History vis_HistoryPre - specify precision of history data
vis_HistoryClear - clear all results data vis_HistoryData - get results data at a set of entities vis_HistoryDataLayPos - get section layer position type vis_HistoryDataLayers - get section layer number and position vis_HistoryDataStat - get results data status vis_HistoryDataSteps - get results data at all steps vis_HistoryDataMax - get max number results values and locations vis_HistoryDataNum - get number of results values and locations vis_HistoryDataSect - get number of results data sections vis_HistoryDef - define parent and child entities Inq - inquire parent and child entities vis_HistoryExtent - minimum and maximum values vis_HistoryIndep - get independent variable at step vis_HistoryIndepSteps - get independent variables at all steps vis_HistoryNumDerive - get number of data components vis_HistoryNumIndices - get number of indices vis_HistoryGetIndex - get an index number vis_HistoryIndices - get index numbers vis_HistoryNumSteps - get number of steps vis_HistoryGetStep - get a step number vis_HistorySteps - get all step numbers vis_HistorySample - compute down sample ranking vis_HistoryGetRank - get step rank vis_HistoryCutoffRank - determine cutoff rank for step interval vis_HistorySetData - set solution results data vis_HistorySetDataLayPos - set section layer position type vis_HistorySetDataLayers - set section layer number and position vis_HistorySetDataSect - set number of results data sections vis_HistorySetDataStat - set solution results data status vis_HistorySetDerive - set derived quantity type GetDerive - get derived quantity type vis_HistorySetEngineeringStrain - set engineering strain flag GetEngineeringStrain - get engineering strain flag vis_HistorySetObject - set pointers to attribute objects. GetObject - get pointers to attribute objects. vis_HistorySetIndep - set independent variable vis_HistorySetIndepName - set independent variable name GetIndepName - get independent variable name vis_HistorySetSection - set section number vis_HistorySetSystem - set coordinate system state GetSystem - get coordinate system state vis_HistorySetComplexMode - set specify/query mode for complex data GetComplexMode - get specify/query mode for complex data vis_HistoryGetComplex - query for complex data existence
Complex valued element data may be specified. The real and imaginary parts of a complex value may be specified one at a time or together depending upon the state of the complex mode of History. The user sets the complex mode using vis_HistorySetComplexMode. See section VisTools, Complex Numbers for a description of the general usage of complex valued data in Vistools modules.
Use vis_HistorySetData to enter solution results into a History object at specified solution steps and entity indices. If results data is not specified at a specific solution step and/or entity index it is assumed to be zero. The function vis_HistorySetIndep may be used to set the value of an independent quantity, such as a time value, for each step. Use vis_HistoryClear to clear (set to zero) all results data. Use vis_HistoryEnd to release all memory associated with a History object.
By convention, vector data is assumed to be ordered by (x,y,z) components, six dof vector data by (tx,ty,tz,rx,ry,rz) components, symmetric tensor data by (xx,yy,zz,xy,yz,zx) components, and general tensor data by (xx,xy,xz,yx,yy,yz,zx,zy,zz) components, Use vis_HistoryData to query for results data for some entity subset at a solution step. A History object will automatically return a derived quantity when vis_HistoryData is called by setting a derived quantity with vis_HistorySetDerive. The derived quantities are identical to those supported by the State module.
It is possible that history data may not be defined for all components of a particular result data type such as vector or tensor. For example, only the xx component of a stress tensor may be defined. The History object supports the notion of undefined components using the vis_HistorySetDataStat and vis_HistoryDataStat functions.
The History module contains functions to assist in down sampling large datasets. Use vis_HistorySample to compute a rank for each step number. The rank of a step is the priority of a step in describing the "shape" of the data. A rank of 1 has the lowest priority, a rank of numstp, where numstp is the total number of steps, has the highest priority. The lowest and highest time step numbers have the highest priorities. The rank of a step is computed by determining the worst deviation from linearity of the step data from neighboring step data. To down sample the history data when drawing a graph of all the data, determine the number of data points, num, to be drawn and ignore any history data with a rank lower than numstp - num. Once the ranking has been computed use vis_HistoryGetRank to access the rank of any step. If drawing an interval of the time step numbers use the function vis_HistoryCutoffRank to determine the cutoff rank to be used for the specific time interval of interest.
*vis_HistoryBegin - create an instance of an History object
vis_History *vis_HistoryBegin ()
None
Destroy an instance of a History object using
void vis_HistoryEnd (vis_History *history)
Return the current value of a History object error flag using
Vint vis_HistoryError (vis_History *history)
Make a copy of a History object. The private data from the fromhistory object is copied to the history object. Any previous private data in history is lost.
void vis_HistoryCopy (vis_History *history, vis_History *fromhistory)
vis_HistoryPre - specify precision of history data
void vis_HistoryPre (vis_History *history, Vint pre)
history Pointer to History object. pre Precision of history data =SYS_FLOAT Single precision =SYS_DOUBLE Double precision
None
vis_HistoryClear - clear all results data
void vis_HistoryClear (vis_History *history)
history Pointer to History object.
None
vis_HistoryData - query results data for a set of entities
void vis_HistoryData (vis_History *history, Vint istep, Vint nix, Vint ix[], Vfloat s[]) void vis_HistoryDatadv (vis_History *history, Vint istep, Vint nix, Vint ix[], Vdouble s[])
history Pointer to History object. istep Solution step nix Number of entities to return results ix Array of entity indices
s Array of returned results data
vis_HistoryDataLayPos - get section layer position type
void vis_HistoryDataLayPos (vis_History *history, Vint nix, Vint ix[], Vint lpos[])
history Pointer to History object. nix Number of entities to return ix Array of entity indices
lpos Array of returned section layer position types
vis_HistoryDataLayers - get section layer number and position
void vis_HistoryDataLayers (vis_History *history, Vint index, Vint pos[], Vint lay[])
history Pointer to History object. index Entity index
pos Section layer positions =SYS_LAYERPOSITION_NONE None, unknown =SYS_LAYERPOSITION_BOT Bottom =SYS_LAYERPOSITION_MID Middle =SYS_LAYERPOSITION_TOP Top =SYS_LAYERPOSITION_INTPNT Integration Point lay Section layer numbers
vis_HistoryDataSect - get number of results data sections
void vis_HistoryDataSect (vis_History *history, Vint nix, Vint ix[], Vint nsec[])
history Pointer to History object. nix Number of entities to return ix Array of entity indices
nsec Array of returned number of results sections
vis_HistoryDataMax - get max number of results values and locations
void vis_HistoryDataMax (vis_History *history, Vint *maxdat, Vint *maxloc, Vint *maxsec)
history Pointer to History object.
maxdat Maximum number of data values maxloc Maximum number of data locations maxsec Maximum number of data sections
vis_HistoryDataNum - get number of results values and locations
void vis_HistoryDataNum (vis_History *history, Vint index, Vint *ndat, Vint *nloc, Vint *nsec)
history Pointer to History object. index Entity index to query
ndat Total number of data values nloc Number of data locations nsec Number of data sections
vis_HistoryDataStat - get results data status
void vis_HistoryDataStat (vis_History *history, Vint index, Vint stat[])
history Pointer to History object. index Entity index to get results status
stat Array of returned results data status
vis_HistoryDataSteps - get results data at all steps
void vis_HistoryDataSteps (vis_History *history, Vint nix, Vint ix[], Vfloat s[]) void vis_HistoryDataStepsdv (vis_History *history, Vint nix, Vint ix[], Vdouble s[])
history Pointer to History object. nix Number of entities to return results ix Array of entity indices
s Array of returned results data
vis_HistoryDef - define parent and child entities and data type
void vis_HistoryDef (vis_History *history, Vint numstp, Vint nument, Vint parenttype, Vint childtype, Vint datatype)
history Pointer to History object. numstp Number of solution steps nument Number of parent entities parenttype Type of parent entity =SYS_ELEM Element type =SYS_NODE Node type childtype Type of child entity. =SYS_NONE No child entity =SYS_NODE Node type datatype Data type =VIS_SCALAR Scalar data =VIS_VECTOR Vector data =VIS_SIXDOF Six dof vector data =VIS_TENSOR Symmetric tensor data =VIS_GENERALTENSOR General Tensor data =VIS_ELEMRES Element Result data
None
Inquire of defined numstp, nument, parenttype, childtype and datatype as output arguments using
void vis_HistoryInq (const vis_History *history, Vint *numstp, Vint *nument, Vint *parenttype, Vint *childtype, Vint *datatype)
vis_HistoryExtent - minimum and maximum values
void vis_HistoryExtent (vis_State *state, Vfloat extent[])
history Pointer to History object.
extent Minimum and maximum values of results data
vis_HistoryIndep - get independent variable at step
void vis_HistoryIndep (vis_History *history, Vint istep, Vfloat *t) void vis_HistoryIndepdv (vis_History *history, Vint istep, Vdouble *t)
history Pointer to History object. istep Solution step
t Independent variable.
vis_HistoryIndepSteps - get independent variables at all steps
void vis_HistoryIndepSteps (vis_History *history, Vfloat t[]) void vis_HistoryIndepStepsdv (vis_History *history, Vdouble t[])
history Pointer to History object.
t Array of independent variables at all steps
vis_HistoryNumDerive - get number of data components
void vis_HistoryNumDerive (vis_History *history, Vint *ncmp)
history Pointer to History object.
ncmp Number of components in current derived quantity type
vis_HistoryNumIndices - get number of indices
void vis_HistoryNumIndices (vis_History *history, Vint *nument)
history Pointer to History object.
nument Number of parent entities
vis_HistoryGetIndex - get an index number
void vis_HistoryGetIndex (vis_History *history, Vint in, Vint *index)
history Pointer to History object. in In-th index to return 1 <= in <= nument
index Index
vis_HistoryIndices - get index numbers
void vis_HistoryIndices (vis_History *history, Vint *nument, Vint indices[])
history Pointer to History object.
nument Number of parent entities indices Array of indices
vis_HistoryNumSteps - get number of steps
void vis_HistoryNumSteps (vis_History *history, Vint *numstp)
history Pointer to History object.
numstp Number of solution steps
vis_HistoryGetStep - get a step number
void vis_HistoryGetStep (vis_History *history, Vint in, Vint *istep)
history Pointer to History object. in In-th step number to return 1 <= in <= numstp
istep Step number
vis_HistorySteps - get step numbers
void vis_HistorySteps (vis_History *history, Vint *numstp, Vint isteps[])
history Pointer to History object.
nument Number of parent entities isteps Array of solution step numbers.
vis_HistorySample - compute down sample ranking
void vis_HistorySample (vis_History *history)
history Pointer to History object.
None
vis_HistoryGetRank - get step rank
void vis_HistoryGetRank (vis_History *history, Vint istep, Vint *rank)
history Pointer to History object. istep Step number
rank Step rank
vis_HistoryCutoffRank - determine cutoff rank for step interval
void vis_HistoryCutoffRank (vis_History *history, Vint istep1, Vint istep2, Vint num, Vint *cutoffrank)
history Pointer to History object. istep1 Starting step number istep2 Ending step number num Number of step samples to retain
cutoffrank Cutoff rank
vis_HistorySetData - set results data
void vis_HistorySetData (vis_History *history, Vint istep, Vint index, Vfloat s[]) void vis_HistorySetDatadv (vis_History *history, Vint istep, Vint index, Vdouble s[])
history Pointer to History object. istep Solution step index Entity index to set results data s Array of results data to be set at entity index
None
vis_HistorySetDataLayPos - set section layer position type
void vis_HistorySetDataLayPos (vis_History *history, Vint index, Vint lpos)
history Pointer to History object. index Entity index to set number of results sections
lpos Section layer position type =SYS_LAYERPOSITION_NONE None =SYS_LAYERPOSITION_MID Middle =SYS_LAYERPOSITION_BOTTOP Bottom and top =SYS_LAYERPOSITION_BOTTOPMID Bottom, middle and top
vis_HistorySetDataLayers - set section layer number and position
void vis_HistorySetDataLayers (vis_History *history, Vint index, Vint pos[], Vint lay[])
history Pointer to History object. index Entity index pos Section layer position type =SYS_LAYERPOSITION_NONE None, unknown =SYS_LAYERPOSITION_BOT Bottom =SYS_LAYERPOSITION_MID Middle =SYS_LAYERPOSITION_TOP Top =SYS_LAYERPOSITION_INTPNT Integration Point lay Section layer numbers
None
vis_HistorySetDataSect - set number of results data sections
void vis_HistorySetDataSect (vis_History *history, Vint index, Vint nsec)
history Pointer to History object. index Entity index to set number of results sections
nsec Number of results sections
vis_HistorySetDataStat - set solution results data status
void vis_HistorySetDataStat (vis_History *history, Vint index, Vint stat[])
history Pointer to History object. index Entity index to get results status stat Array of returned results data status
None
vis_HistorySetDerive - set derived quantity
void vis_HistorySetDerive (vis_History *history, Vint derive)
history Pointer to History object. derive Type of derived quantity, same as vis_StateSetDerive
None
Inquire of set derive as an output argument using
void vis_HistoryGetDerive (const vis_History *history, Vint *derive)
vis_HistorySetEngineeringStrain - set engineering strain flag
void vis_HistorySetEngineeringStrain (vis_History *history, Vint flag)
history Pointer to History object. flag Engineering strain flag =SYS_OFF Tensor strain =SYS_ON Engineering strain
None
Inquire of set flag as an output argument using
void vis_HistoryGetEngineeringStrain (const vis_History *history, Vint *flag)
vis_HistorySetIndep - set independent variable
void vis_HistorySetIndep (vis_History *history, Vint istep, Vfloat t) void vis_HistorySetIndepdv (vis_History *history, Vint istep, Vdouble t)
history Pointer to History object. istep Solution step t Value of independent variable
None
vis_HistorySetObject - set pointers to attribute objects
void vis_HistorySetObject (vis_History *history, Vint objecttype, Vobject *object)
history Pointer to History object. objecttype The name of the object type to be set. =VIS_GRIDFUN GridFun object object Pointer to the object to be set.
None
Get object as an output argument using
void vis_HistoryGetObject (vis_History *history, Vint objecttype, Vobject **object)
vis_HistorySetIndepName - set independent variable name
void vis_HistorySetIndepName (vis_History *history, Vchar *name);
history Pointer to History object. name Name string
None
Get the current name as an output argument using
void vis_HistoryGetIndepName (vis_History *history, Vint name[])
vis_HistorySetSection - set section number
void vis_HistorySetSection (vis_History *history, Vint section)
history Pointer to History object. section The section number to select data. =0 Return data for all sections >0 Return data for specified section =SYS_ELEMSEC_BOT Return data for bottom section =SYS_ELEMSEC_TOP Return data for top section
None
Get the current section as an output argument using
void vis_HistoryGetSection (vis_History *history, Vint *section)
vis_HistorySetSystem - set coordinate system state
void vis_HistorySetSystem (vis_History *history, Vint system)
history Pointer to History object. system The coordinate system state =HISTORY_GLOBAL System state is global =HISTORY_LOCAL System state is local.
None
Get the current system as an output argument using
void vis_HistoryGetSystem (vis_History *history, Vint *system)
vis_HistorySetComplexMode - set specify/query mode for complex data
void vis_HistorySetComplexMode (vis_History *lcase, Vint complexmode)
history Pointer to History object. complexmode Complex mode =SYS_COMPLEX_REAL Real =SYS_COMPLEX_IMAGINARY Imaginary =SYS_COMPLEX_REALIMAGINARY Real and imaginary
None
Get complexmode as an output argument.
void vis_HistoryGetComplexMode (const vis_History *lcase, Vint *complexmode)
vis_HistoryGetComplex - query for complex data existence
void vis_HistoryGetComplex (vis_History *lcase, Vint *complexflag)
history Pointer to History object.
complexflag Complex data existence flag
*vis_RedMatBegin - create an instance of a RedMat object vis_RedMatEnd - destroy an instance of a RedMat object vis_RedMatError - return RedMat object error flag vis_RedMatPre - specify precision of matrix data
vis_RedMatData - get results data vis_RedMatDataCols - get column indicies per row vis_RedMatDef - define matrix rank and data type. vis_RedMatNum - inquire number of matrix entries vis_RedMatSparse - inquire sparsity of matrix entries vis_RedMatSetData - set results data vis_RedMatSetDataSize - set number of columns per row GetDataSize - get number of columns per row vis_RedMatSetDof - set entity index and degree of freedom type GetDof - get entity index and degree of freedom type vis_RedMatSetComplexMode - set specify/query mode for complex data GetComplexMode - get specify/query mode for complex data vis_RedMatGetComplex - query for complex data existence
Complex valued element data may be specified. The real and imaginary parts of a complex value may be specified one at a time or together depending upon the state of the complex mode of RedMat. The user sets the complex mode using vis_RedMatSetComplexMode. See section VisTools, Complex Numbers for a description of the general usage of complex valued data in Vistools modules.
Use vis_RedMatSetData to set value at a specific row and column. Use vis_RedMatData to get value at a specific row and column. Use vis_RedMatSetDof to set the entity index and degree of freedom type associated with each system degree of freedom. If the matrix is sparse, then vis_RedMatSetData must set, for each row, the column data in monotonic column index order. Use vis_RedMatDataCols to get the column indicies for each row.
*vis_RedMatBegin - create an instance of an RedMat object
vis_RedMat *vis_RedMatBegin ()
None
Destroy an instance of a RedMat object using
void vis_RedMatEnd (vis_RedMat *redmat)
Return the current value of a RedMat object error flag using
Vint vis_RedMatError (vis_RedMat *redmat)
vis_RedMatPre - specify precision of redmat data
void vis_RedMatPre (vis_RedMat *redmat, Vint pre)
redmat Pointer to RedMat object. pre Precision of redmat data =SYS_FLOAT Single precision =SYS_DOUBLE Double precision
None
vis_RedMatDef - define number of freedoms and data type.
void vis_RedMatDef (vis_RedMat *redmat, Vint ndofs, Vint type)
redmat Pointer to RedMat object. ndofs Rank or number of degrees of freedom. type Data type =SYS_VECTOR Vector =SYS_MATRIX_DIAG Diagonal matrix =SYS_MATRIX_SYMM Symmetric matrix =SYS_MATRIX_USYMM Unsymmetric matrix
None
Inquire of defined ndofs and type as output arguments using
void vis_RedMatInq (const vis_RedMat *redmat, Vint *ndofs, Vint *type)
vis_RedMatNum - inquire number of matrix entries
void vis_RedMatNum (vis_RedMat *redmat, Vlong *nent, Vint *nval)
redmat Pointer to RedMat object.
nent Number of vector/matrix entries nval Number of values per entry
vis_RedMatSparse - inquire sparsity of matrix entries
void vis_RedMatSparse (vis_RedMat *redmat, Vint *sparse)
redmat Pointer to RedMat object.
sparse Sparsity flag.
vis_RedMatData - get results data at degree of freedom
void vis_RedMatData (vis_RedMat *redmat, Vint idof, Vint jdof, Vfloat v[]) void vis_RedMatDatadv (vis_RedMat *redmat, Vint idof, Vint jdof, Vdouble v[])
redmat Pointer to RedMat object. idof Row Dof index jdof Column Dof index
v Returned results data
vis_RedMatSetData - set results data at degree of freedom
void vis_RedMatSetData (vis_RedMat *redmat, Vint idof, Vint jdof, Vfloat v[]) void vis_RedMatSetDatadv (vis_RedMat *redmat, Vint idof, Vint jdof, Vdouble v[])
redmat Pointer to RedMat object. idof Row Dof index jdof Column Dof index v Results data to set
None
vis_RedMatSetDataSize - set number of columns per row
void vis_RedMatSetDataSize (vis_RedMat *redmat, Vint idof, Vint ncols)
redmat Pointer to RedMat object. idof Row Dof index ncols Number of columns at row
None
Get ncols as an output argument using
void vis_RedMatGetDataSize (vis_RedMat *redmat, Vint idof, Vint *ncols)
vis_RedMatDataCols - get column indicies per row
void vis_RedMatDataCols (vis_RedMat *redmat, Vint idof, Vint *ncols, Vint icols[]),
redmat Pointer to RedMat object. idof Row Dof index
ncols Number of columns at row icols Column indicies at row.
vis_RedMatSetDof - set entity index and degree of freedom type
void vis_RedMatSetDof (vis_RedMat *redmat, Vint dof, Vint index, Vint doftag)
redmat Pointer to RedMat object. dof Dof index index Entity index doftag Degree of freedom type.
None
Get the index and doftag as output arguments using
void vis_RedMatGetDof (vis_RedMat *redmat, Vint dof, Vint *index, Vint *doftag)
vis_RedMatSetComplexMode - set specify/query mode for complex data
void vis_RedMatSetComplexMode (vis_RedMat *lcase, Vint complexmode)
redmat Pointer to RedMat object. complexmode Complex mode =SYS_COMPLEX_REAL Real =SYS_COMPLEX_IMAGINARY Imaginary =SYS_COMPLEX_REALIMAGINARY Real and imaginary
None
Get complexmode as an output argument.
void vis_RedMatGetComplexMode (const vis_RedMat *lcase, Vint *complexmode)
vis_RedMatGetComplex - query for complex data existence
void vis_RedMatGetComplex (vis_RedMat *lcase, Vint *complexflag)
redmat Pointer to RedMat object.
complexflag Complex data existence flag
*vis_ZStateBegin - create an instance of a ZState object vis_ZStateEnd - destroy an instance of a ZState object vis_ZStateError - return ZState object error flag
vis_ZStateDef - define parent and child entities. Inq - inquire parent and child entities. vis_ZStateKernel - form compression kernel vis_ZStateLngKernel - get byte length of kernel vis_ZStateLoadKernel - load kernel from memory buffer into ZState vis_ZStateSaveKernel - save kernel from ZState into memory buffer vis_ZStateSetMode - set operation modes vis_ZStateSetObject - set pointers to attribute objects. GetObject - get pointers to attribute objects. vis_ZStateState - process input state vis_ZStateLngState - get byte length of compressed state vis_ZStateLoadState - load compressed data from memory buffer vis_ZStateSaveState - save compressed data into memory buffer
The ZState object calls the following grid functions set in the GridFun attribute object.
*vis_ZStateBegin - create an instance of an ZState object
vis_ZState *vis_ZStateBegin ()
None
Destroy an instance of a ZState object using
void vis_ZStateEnd (vis_ZState *zstate)
Return the current value of a ZState object error flag using
Vint vis_ZStateError (vis_ZState *zstate)
vis_ZStateDef - define parent and child entities
void vis_ZStateDef (vis_ZState *zstate, Vint nument, Vint parenttype, Vint childtype)
zstate Pointer to ZState object. nument Number of parent entities parenttype Type of parent entity =SYS_ELEM Element type =SYS_NODE Node type childtype Type of child entity. =SYS_NONE No child entity =SYS_NODE Node type
None
void vis_ZStateInq (const vis_ZState *zstate, Vint *nument, Vint *parenttype, Vint *childtype)
vis_ZStateKernel - form compression kernel
void vis_ZStateKernel (vis_ZState *zstate, vis_IdTran *idtran)
zstate Pointer to ZState object. idtran Pointer to IdTran object.
None
vis_ZStateLngKernel - get byte length of kernel
void vis_ZStateLngKernel (vis_ZState *zstate, Vulong *nbytes)
zstate Pointer to ZState object.
nbytes Number of bytes in compression kernel
vis_ZStateLoadKernel - load kernel from memory buffer into ZState
void vis_ZStateLoadKernel (vis_ZState *zstate, void *buff)
zstate Pointer to ZState object. buff Input buffer for kernel
None
vis_ZStateSaveKernel - save kernel from ZState into memory buffer
void vis_ZStateSaveKernel (vis_ZState *zstate, void *buff, Vulong *nbytes)
zstate Pointer to ZState object.
buff Output buffer for kernel nbytes Final number of bytes in compression kernel
vis_ZStateSetMode - set operation modes
void vis_ZStateSetMode (vis_ZState *zstate, Vint type, Vint value)
zstate Pointer to ZState object. type Type of mode =ZSTATE_SPATIALCONTINUITY Toggle spatial continuity value Mode value =SYS_ON Enable =SYS_OFF Disable
None
vis_ZStateSetObject - set pointers to attribute objects
void vis_ZStateSetObject (vis_ZState *zstate, Vint objecttype, Vobject *object)
zstate Pointer to ZState object. objecttype The name of the object type to be set. =VIS_GRIDFUN GridFun object object Pointer to the object to be set.
None
Get object as an output argument using
void vis_ZStateGetObject (vis_ZState *zstate, Vint objecttype, Vobject **object)
vis_ZStateState - process input state
void vis_ZStateState (vis_ZState *zstate, vis_State *state)
zstate Pointer to ZState object. state Pointer to State object.
None
vis_ZStateLngState - get byte length of compressed state
void vis_ZStateLngState (vis_ZState *zstate, Vulong *nbytes)
zstate Pointer to ZState object.
nbytes Number of bytes in compressed state
vis_ZStateLoadState - load compressed data from memory buffer
void vis_ZStateLoadState (vis_ZState *zstate, void *buff, vis_State *state)
zstate Pointer to ZState object. buff Input buffer for compressed data
state Pointer to State object.
vis_ZStateSaveState - save compressed data into memory buffer
void vis_ZStateSaveState (vis_ZState *zstate, vis_State *state, void *buff, Vulong *nbytes)
zstate Pointer to ZState object. state Pointer to State object.
buff Output buffer for compressed data nbytes Final number of bytes in compressed state