8. Properties and Functions - GProp, EProp, MProp, SProp, TCurve, RProp, UProp
The GProp, EProp, MProp and SProp modules are designed to manage global properties, element properties, material properties and solution properties. Global properties consist of quantities such as overall problem title, dimensionality, etc. Element properties consist of quantities such as shell element thickness, spring element stiffness, etc. Material properties consist of primitive material quantities such as Young’s modulus, Poisson’s ratio, coefficient of thermal expansion, thermal conductivity, etc. Solution properties consist of solution step parameters such as load case and restraint case identifiers, load factors, number of eigenvalues to be obtained, etc. All real property values are stored internally in double precision. The user may define and query property values in either single or double precision. The TCurve module manages tabular functions such as material data as a function of temperature or load factor as a function of time. The RProp module manages results properties. The UProp module manages user defined properties and is used strictly as an attribute object for other global modules.
Note that all property and function objects hold floating point data internally in double precision.
8.1. Global Properties - GProp
The GProp module manages global properties such as problem title, physical constants, originating commercial vendor name, etc. The functions associated with a GProp object are the following.
Begin and end an instance of an object, return object error flag
vis_GPropBegin()
- create an instance of a GProp objectvis_GPropEnd()
- destroy an instance of a GProp objectvis_GPropError()
- return GProp object error flag
Set and query global properties
vis_GPropSetValuec()
- set character propertyvis_GPropSetValuei()
- set integer propertyvis_GPropSetValuefv()
- set real valued propertiesvis_GPropUnSetValue()
- unset propertyvis_GPropValueFlag()
- query property type definedvis_GPropValueTypeNum()
- query number of property typesvis_GPropValueType()
- query property typesvis_GPropValueParams()
- query property parametersvis_GPropValueName()
- query property namevis_GPropValueFloat()
- query property float valuevis_GPropValueDouble()
- query property double valuevis_GPropValueInteger()
- query property integer valuevis_GPropValueString()
- query property character value
Instance a GProp object initially using vis_GPropBegin()
.
Specify integer valued properties using vis_GPropSetValuei()
.
Specify character valued properties using vis_GPropSetValuec()
.
Each property type is identified by a defined constant. The user queries
for the number and type of properties defined using vis_GPropValueType()
.
The data type and number of components associated with a property type
is queried using vis_GPropValueParams()
.
A long descriptive name which is hard-wired to each property type may be
queried using vis_GPropValueName()
.
Finally the property values themselves may be recovered using
vis_GPropValueInteger()
, vis_GPropValueFloat()
or vis_GPropValueDouble()
.
The function vis_GPropValueFlag()
is used to determine if a property has been defined.
Each property has an associated data type, integer, character or real. There is assumed to be a single property value unless the C-language style dimensions are indicated. The full set of global properties are the following:
GPROP_2DPLANE, integer, 2D plane orientation The supported plane orientations are:
SYS_XYPLANE, xy plane
SYS_XZPLANE, xz plane
GPROP_2DAXIS, integer, 2D axis of rotation The supported axes are:
SYS_XAXIS, x axis
SYS_YAXIS, y axis
SYS_ZAXIS, z axis
GPROP_2DTYPE, integer, 2D analysis type The supported types are:
SYS_PLANESTRAIN, plane strain
SYS_PLANESTRESS, plane stress
SYS_AXISYMMETRIC, axisymmetric
SYS_AXISYMFOURIER, axisymmetric with Fourier modes
GPROP_AUTOSPC, integer, Auto SPC flag
GPROP_TITLE, character, Title
GPROP_SUBTITLE, character, Subtitle
GPROP_ORIGCODE, character, Originating code
GPROP_ORIGVERSION, character, Originating code version
GPROP_ORIGTIME, character, Originating time
GPROP_ORIGDATE, character, Originating date
GPROP_LIBRARY, integer, VdmTools importing library
GPROP_CYCLIC_NSEC, integer, Number of Cyclic Sectors
GPROP_CYCLIC_ORIG, [3], real, Origin of Cyclic Coordinate System (x,y,z)
GPROP_CYCLIC_AXIS, [3], real, Axis of Cyclic Coordinate System (x,y,z)
GPROP_STEFAN_BOLTZMANN, real, Stefan Boltzmann constant
GPROP_ABSOLUTE_ZERO, real, Absolute Zero Temperature
GPROP_STIFF_DAMP, real, Structural Damping Coefficient
GPROP_SYMM_NUM, integer, Number of symmetry groups
GPROP_SYMM_ID, [GPROP_SYMM_NUM], integer, symmetry group identifier.
GPROP_SYMM_CID, [GPROP_SYMM_NUM], integer, symmetry group coordinate system identifier.
GPROP_SYMM_NSEC, [GPROP_SYMM_NUM], integer, symmetry group number of sectors.
GPROP_SYMM_ESET, [GPROP_SYMM_NUM], integer, symmetry group embedded element set id.
GPROP_SYMM_ORIG, [GPROP_SYMM_NUM][3], real, Origin of symmetry Coordinate System (x,y,z)
GPROP_SYMM_AXIS, [GPROP_SYMM_NUM][3], real, Axis of symmetry Coordinate System (x,y,z)
GPROP_SYMM_STAGEID, [GPROP_SYMM_NUM], integer, Symmetry group stage id
GPROP_IMPORT_VENDOR, integer, import vendor
GPROP_EXPORT_VENDOR, integer, target export vendor The supported vendors are:
SYS_VENDOR_UNKNOWN, unknown or not set
SYS_VENDOR_VKI, Visual Kinematics
SYS_VENDOR_MSC_NASTRAN, MSC Nastran
SYS_VENDOR_ANSYS, Ansys
SYS_VENDOR_ABAQUS, Abaqus
SYS_VENDOR_LS_DYNA3D, LS-Dyna
SYS_VENDOR_ALTAIR_OPTISTRUCT, Altair Optistruct
SYS_VENDOR_NX_NASTRAN, NX Nastran
GPROP_USER_NUM, integer, Number of user defined properties
GPROP_USERDIMENUM, integer, Number of dimensions of user defined property.
GPROP_USERDIME, [GPROP_USERDIMENUM], integer, Dimensions of user defined property.
GPROP_USERNAME, character, Name of user defined property.
GPROP_USERDATATYPE, integer, Data type of user defined property.
GPROP_USERDATA, [product of GPROP_USERDIME], real, Data of user defined property.
Note that the GProp object supports a general set of user defined properties. Use GPROP_USER_NUM with GPropSetValuei to set the number of user defined properties. This number may be repeated increased as user defined properties are entered. The user defined properties are referenced using the defined constants GPROP_USERDIMENUM, GPROP_USERDIME, GPROP_USERNAME, GPROP_USERDATATYPE and GPROP_USERDATA plus the ith-1 user defined property where 0 <= ith-1 < GPROP_USER_NUM. For example, the name of the 2nd user defined property is referenced with GPROP_USERNAME+1.
Each user defined property is a multidimensional array of integer, real or character values. Specify the number of dimensions using GPROP_USERDIMENUM and the size of each dimension using GPROP_USERDIME. The name of the user defined property is entered using GPROP_USERNAME. The datatype is specified using GPROP_USERDATATYPE and must be one of the values SYS_INTEGER, SYS_REAL and SYS_CHAR. A character valued user defined property must be a single dimension in which the dimension size is the length of the character data. The data associated with a user defined property is entered with GPROP_USERDATA. The number of data items required is the product of the specified dimensions.
8.2. Function Descriptions
The currently available GProp functions are described in detail in this section.
-
vis_GProp *vis_GPropBegin(void)
create an instance of a GProp object
Create an instance of a GProp object. Memory is allocated for the object private data and the pointer to the data is returned.
Destroy an instance of a GProp object using
void vis_GPropEnd (vis_GProp *gprop)
Return the current value of a GProp object error flag using
Vint vis_GPropError (vis_GProp *gprop)
- Returns:
The function returns a pointer to the newly created GProp object. If the object creation fails, NULL is returned.
-
void vis_GPropEnd(vis_GProp *p)
destroy an instance of a GProp object
See
vis_GPropBegin()
-
Vint vis_GPropError(vis_GProp *p)
return the current value of a GProp object error flag
See
vis_GPropBegin()
-
void vis_GPropSetValuei(vis_GProp *p, Vint type, Vint ivalue)
set integer property
Set an integer valued property. Use
vis_GPropValueInteger()
to return integer valued properties.- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if a non integer valued type is specified.
- Parameters:
p – Pointer to GProp object.
type – Global property type
x=GPROP_2DPLANE 2D orientation plane =GPROP_2DTYPE 2D analysis type =GPROP_AUTOSPC Auto SPC flag =GPROP_LIBRARY VdmTools import library type =GPROP_USER_NUM Number of user properties =GPROP_USERDIMENUM Number of user dimensions =GPROP_USERDIME Dimensions of user properties =GPROP_USERDATATYPE Data type of user properties =GPROP_USERDATA Data of user properties =GPROP_CYCLIC_NSEC Number of cyclic sectors =GPROP_CYCLIC_CSYSID Cyclic cylindrical system Id
ivalue – Property value
-
void vis_GPropSetValuefv(vis_GProp *p, Vint type, Vfloat rvalue[])
set real valued properties
Set a real valued properties. The number of properties expected in rvalue is equal to the the number of values associated with the property type. Use
vis_GPropValueFloat()
orvis_GPropValueDouble()
to return real valued properties.- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if type is an improper data type or the length of type has not been defined.
- Parameters:
p – Pointer to GProp object.
type – Property type
x=GPROP_CYCLIC_ORIG Origin of cyclic system =GPROP_CYCLIC_AXIS Axis (unit vector) cyclic system =GPROP_STEFAN_BOLTZMANN Stefan Boltzmann constant =GPROP_ABSOLUTE_ZERO Absolute Zero Temperature =GPROP_STIFF_DAMP Structural Damping Coefficient
rvalue – Property values
-
void vis_GPropSetValuedv(vis_GProp *p, Vint type, Vdouble dparam[])
set real valued properties
-
void vis_GPropSetValuec(vis_GProp *p, Vint type, Vchar *cvalue)
set character property
Set a character valued property. The terminating null character, if present, is also set. Use
vis_GPropValueString()
to return character valued properties as a string.- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if a non character valued type is specified.
- Parameters:
p – Pointer to GProp object.
type – Global property type
x=GPROP_TITLE Title =GPROP_SUBTITLE Subtitle =GPROP_ORIGCODE Originating code =GPROP_ORIGVERSION Originating code version =GPROP_ORIGDATE Originating date =GPROP_ORIGTIME Originating time
cvalue – Property value
-
void vis_GPropUnSetValue(vis_GProp *p, Vint type)
unset property
Unset a property.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.
- Parameters:
p – Pointer to GProp object.
type – Property type
-
void vis_GPropValueTypeNum(vis_GProp *p, Vint *ntypes)
query number of property types
Return number of defined property types, ntypes.
- Parameters:
p – Pointer to GProp object.
ntypes – [out] Number of types of property values
-
void vis_GPropValueType(vis_GProp *p, Vint *ntypes, Vint type[])
query property types
Return number of property types, ntypes, and types, type, of all defined property types.
- Parameters:
p – Pointer to GProp object.
ntypes – [out] Number of types of property values
type – [out] Array of property types
-
void vis_GPropValueFlag(vis_GProp *p, Vint type, Vint *flag)
query property type defined
Query for property definition. If a property value is not defined,
GPROP_UNDEFINED
is returned, if the property has been defined thenGPROP_VALUE
is returned.- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.
- Parameters:
p – Pointer to GProp object.
type – Property type
flag – [out] Flag indicating if property type defined or not
x=GPROP_UNDEFINED Property value not defined =GPROP_VALUE Property value defined
-
void vis_GPropValueParams(vis_GProp *p, Vint type, Vint *nval, Vint *dtyp)
query property parameters
Query for the number of components, number of locations and the data type associated with a property type.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.
- Parameters:
p – Pointer to GProp object.
type – Property type
nval – [out] Number of components
dtyp – [out] Data type
=SYS_CHAR Character =SYS_INTEGER Integer =SYS_FLOAT Float (single or double precision)
-
void vis_GPropValueName(vis_GProp *p, Vint type, Vchar name[])
query property name
Query for the built-in name associated with a property type. The character string will not exceed 64 characters including the terminating NULL character.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.
- Parameters:
p – Pointer to GProp object.
type – Property type
name – [out] Property name
-
void vis_GPropValueFloat(vis_GProp *p, Vint id, Vfloat fparam[])
query property float value
Return a defined real valued property as float. If the value has not been defined, nothing is returned.
- Errors
SYS_ERROR_VALUE
is generated if an improper id is specified.
- Parameters:
p – Pointer to GProp object.
id – Property identifier
fparam – [out] Float property.
-
void vis_GPropValueDouble(vis_GProp *p, Vint id, Vdouble dparam[])
query property double value
Return a defined real valued property as double. If the value has not been defined, nothing is returned.
- Errors
SYS_ERROR_VALUE
is generated if an improper id is specified.
- Parameters:
p – Pointer to GProp object.
id – Property identifier
dparam – [out] Double property.
-
void vis_GPropValueString(vis_GProp *p, Vint type, Vchar cparam[])
query property character value
Return a defined character valued property as a string. If the value has not been defined, nothing is returned.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if a non character valued type is specified.
- Parameters:
p – Pointer to GProp object.
type – Property type
cparam – [out] Character property.
-
void vis_GPropValueInteger(vis_GProp *p, Vint type, Vint iparam[])
query property integer value
Return a defined integer valued property. If the value has not been defined, nothing is returned.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if a non integer valued type is specified.
- Parameters:
p – Pointer to GProp object.
type – Property type
iparam – [out] Integer property.
8.3. Element Properties - EProp
The EProp module manages element properties such as shell element thickness which are not inherent in the nodal geometry of the element. An EProp module is designed to hold properties for a defined element class such as shell elements, beam elements, etc. Each element property of a given class has an associated number of element locations, number of components and data type. For example the thickness property of a shell element is a scalar real value which has 4 element locations corresponding to the 4 possible corners of a shell element. Integer valued element properties are always scalar values and have a single element location associated with the entire element. Optionally an element property may be defined to be a function of some independent variable such as temperature by relating an integer identifier with the element property. This integer identifier is assumed to be a key to a table or some function description which contains the element property as a function of an independent variable.
The functions associated with an EProp object are the following.
Begin and end an instance of an object, return object error flag
vis_EPropBegin()
- create an instance of a EProp objectvis_EPropEnd()
- destroy an instance of a EProp objectvis_EPropError()
- return EProp object error flagvis_EPropCopy()
- make a copy of a EProp object
Set and query element properties
vis_EPropDef()
- define class of element propertyvis_EPropInq()
- inquire class of element propertyvis_EPropEval()
- evaluate properties at element nodesvis_EPropSetValuec()
- set character propertyvis_EPropSetValuei()
- set integer propertyvis_EPropSetValueiv()
- set integer propertiesvis_EPropSetValuef()
- set real valued propertyvis_EPropSetValuefv()
- set real valued propertiesvis_EPropSetValueId()
- set property identifier valuevis_EPropUnSetValue()
- unset propertyvis_EPropValueFlag()
- query property type definedvis_EPropValueTypeNum()
- query number of property typesvis_EPropValueType()
- query property typesvis_EPropValueParams()
- query property parametersvis_EPropValueName()
- query property namevis_EPropValueFloat()
- query property float valuevis_EPropValueDouble()
- query property double valuevis_EPropValueId()
- query property identifier valuevis_EPropValueInteger()
- query property integer valuevis_EPropValueString()
- query property character value
Instance an EProp object initially using vis_EPropBegin()
.
The element property class is defined using vis_EPropDef()
.
The property class is the type of element for which the properties are
applicable such as shell elements, beam elements, gap elements, etc.
Specify integer or real valued element properties using vis_EPropSetValuei()
,
vis_EPropSetValueiv()
, vis_EPropSetValuef()
, vis_EPropSetValuefv()
,
vis_EPropSetValued()
or vis_EPropSetValuedv()
.
Specify character valued properties using vis_EPropSetValuec()
.
Each element property type is identified by a defined constant. The user
queries for the number and type of element properties defined using
vis_EPropValueType()
.
The data type, number of components and number of locations associated
with a element property type is queried using vis_EPropValueParams()
.
A long descriptive name which is hard-wired to each property type may be
queried using vis_EPropValueName()
.
Finally the property values themselves may be recovered using
vis_EPropValueInteger()
, vis_EPropValueFloat()
or vis_EPropValueDouble()
.
Properties which vary over the area or length of an element may be
computed at element nodes using vis_EPropEval()
.
As an option to explicitly entering real values for a particular element
property, an identifier may be associated with the property using
vis_EPropSetValueId()
.
This is useful when the element property values are not constant but
instead are a function of an independent variable such as temperature.
The function vis_EPropValueFlag()
is used to determine how a real valued element property has been
defined, if at all. There are three possibilities: 1) not defined, 2)
values defined and 3) identifier defined. If a property is defined using
vis_EPropSetValuef()
or vis_EPropSetValuefv()
it is value defined, if it is defined using vis_EPropSetValueId()
it is identifier defined.
Currently supported element property classes are:
SYS_ELEM_SOLID - solid element
SYS_ELEM_SHELL - shell element
SYS_ELEM_MEMBRANE - membrane element
SYS_ELEM_BEAM - beam element
SYS_ELEM_TRUSS - truss element
SYS_ELEM_GAP - gap element
SYS_ELEM_SPRINGDASHPOT - spring and dashpot element
SYS_ELEM_RIGID - rigid element
SYS_ELEM_MASS - mass element
SYS_ELEM_INTER - interface element
SYS_ELEM_SUPER - super element
The number of values associated with a property type may be dependent upon the value of another property. If this is the case, the dependency is noted by including the property which determines the number of values in parentheses. If the property is defined at more than one location, the number of locations is enclosed in brackets. For example, properties associated with shell elements such as thickness require 4 locations. Properties are input in order of the values for location 1 followed by the values for location 2, etc. The full set of element properties are the following:
EPROP_MID, integer, Material Id
EPROP_MID_BEND, integer, Material Id - bending
EPROP_MID_TRAN, integer, Material Id - transverse shear
EPROP_MID_COUP, integer, Material Id - membrane bending coupling
EPROP_MATLCID, integer, Material coordinate system Id
EPROP_DOF1, integer, Degree of freedom tag 1.
EPROP_DOF2, integer, Degree of freedom tag 2. The supported degree of freedom tags are:
SYS_DOF_TX, translation in x direction
SYS_DOF_TY, translation in y direction
SYS_DOF_TZ, translation in z direction
SYS_DOF_RX, rotation in x direction
SYS_DOF_RY, rotation in y direction
SYS_DOF_RZ, rotation in z direction
SYS_DOF_TEMP, temperature
EPROP_HEATEXCH, integer, Heat exchange type The supported exchange types are:
SYS_HEATEXCH_LINEAR, convection q = h*area*areafact*(T-Tamb)
SYS_HEATEXCH_POW, convection q = h*area*areafact*(T-Tamb)**exp
SYS_HEATEXCH_EXP, convection q = h*area*areafact*(T**exp-Tamb**exp)
SYS_HEATEXCH_RAD, radiation q = sb*emis*area*areafact*(T**4-Tamb**4)
EPROP_DOFFLAG_NUM, integer, Number of dof flags. A dof flag consists of a set of bits for each active dof. If an element connectivity contains more than EPROP_DOFFLAG_NUM nodes, then the last set of dof flags are repeated.
EPROP_DOFFLAG_DEP [EPROP_DOFFLAG_NUM], integer, Dependent dof flags
EPROP_DOFFLAG_IND [EPROP_DOFFLAG_NUM], integer, Independent dof flags
EPROP_DOFFLAG_WGTS [EPROP_DOFFLAG_NUM], real, Weighting factors
EPROP_RULE, integer, Integration rule. The supported integration rules are:
SYS_RULE_GAUSS, Gaussian quadrature rule
SYS_RULE_LOBATTO, Lobatto rule
SYS_RULE_SIMPSON, Simpson’s rule
EPROP_SHELLWALL, integer, Shell wall type, see ShellWall. The supported shell wall types are:
SYS_SHELLWALL_MONOCOQUE, Monocoque
SYS_SHELLWALL_LAMINATE, Laminated
EPROP_LAYER_NUM, integer, Number of shell layers
EPROP_LAYER_THK [EPROP_LAYER_NUM], Layer thickness
EPROP_LAYER_PHI [EPROP_LAYER_NUM], Layer material orientation angle
EPROP_LAYER_MID [EPROP_LAYER_NUM], integer, Layer material Id
EPROP_LAYER_NIP [EPROP_LAYER_NUM], integer, Number of layer integration points
EPROP_LAYER_GID [EPROP_LAYER_NUM], integer, Layer global Id
EPROP_BEAMSECT, integer, Beam section type, see BeamSect. The supported beam section types are:
SYS_BEAMSECT_PROPS, Generalized section properties
SYS_BEAMSECT_GEOMETRY, Arbitrary geometry defined by closed loops
SYS_BEAMSECT_SEGMENTS, Connected segments
SYS_BEAMSECT_ANGLE, Angle
SYS_BEAMSECT_BOX, Hollow box
SYS_BEAMSECT_CHANNEL, Channel
SYS_BEAMSECT_CIRCLE, Solid circle
SYS_BEAMSECT_CROSS, Cross
SYS_BEAMSECT_DBOX, Double hollow box
SYS_BEAMSECT_ELLIPSE, Solid ellipse
SYS_BEAMSECT_HAT, Hat
SYS_BEAMSECT_HATG, Hat general
SYS_BEAMSECT_HAT1, Hat with base
SYS_BEAMSECT_HEXAGON, Hollow hexagon
SYS_BEAMSECT_IBEAM, I beam
SYS_BEAMSECT_PANEL, Panel
SYS_BEAMSECT_RECTANGLE, Rectangle
SYS_BEAMSECT_SECTOR, Solid sector
SYS_BEAMSECT_TEE, Tee
SYS_BEAMSECT_TRAPEZOID, Trapezoid
SYS_BEAMSECT_TUBE, Hollow tube
SYS_BEAMSECT_ZEE, Zee
EPROP_BEAMDIME, real, [2], Beam section dimensions, see BeamSect
EPROP_BEAMROTANGLE, real, Beam section rotation angle
EPROP_BEAMREFLECTY, integer, Beam section reflect about y axis
EPROP_BEAMREFLECTZ, integer, Beam section reflect about z axis
EPROP_BEAMPNTS_NUM, integer, Beam section geometry number of points
EPROP_BEAMPNTS [EPROP_BEAMPNTS_NUM][2], real, [2], Beam section points Each point is given by a beam section (y,z) coordinate. Note that point coordinates are required for 2 locations, ie. the two ends of a beam element.
EPROP_BEAMLOOP_NUM, integer, Beam section number of loops
EPROP_BEAMLOOP_PNTSNUM [EPROP_BEAMLOOP_NUM], integer, Beam section loop number of points
EPROP_BEAMLOOP_TYPE [EPROP_BEAMLOOP_NUM], integer, Beam section loop type
EPROP_BEAMLOOP_MID [EPROP_BEAMLOOP_NUM], integer, Beam section loop material Id
EPROP_BEAMLOOP_PNTS [EPROP_BEAMPNTS_NUM], integer, Beam section all loop points. The connectivities of all loops are entered. Connectivities are one-based. The loop connectivities are concatenated.
EPROP_BEAMSEGS_NUM, integer, Beam section number of segments
EPROP_BEAMSEGS_THICK [EPROP_BEAMSEGS_NUM], real, Beam section segment thicknesses
EPROP_BEAMSEGS_PNTS [EPROP_BEAMSEGS_NUM+1][2], real, Beam section segment points (y,z). There should be one more point than the number of segments. For a closed loop of segments, the first point will be identical to the last.
EPROP_RIGIDALPHA, real, Rigid element alpha
EPROP_THICKNESS, real, [4], Thickness
EPROP_OFFSET, real, [4], Midsurface offset
EPROP_KS, real, Effective shear ratio
EPROP_AREA, real, [2], Area
EPROP_IYY, real, [2], Moment of inertia about y axis
EPROP_IZZ, real, [2], Moment of inertia about z axis
EPROP_IYZ, real, [2], Product of inertia
EPROP_J, real, [2], Torsional constant
EPROP_KSY, real, [2], Effective shear factor along y axis
EPROP_KSZ, real, [2], Effective shear factor along z axis
EPROP_DSY, real, [2], Shear center offset from centroid along y axis
EPROP_DSZ, real, [2], Shear center offset from centroid along z axis
EPROP_OFFSETY, real, [2], Centroid offset along y axis
EPROP_OFFSETZ, real, [2], Centroid offset along z axis
EPROP_CW, real, [2], Warping coefficient
EPROP_NSM, real, [4], Nonstructural mass
EPROP_SRBOT, real, Stress recovery fiber distance from midsurface - bottom
EPROP_SRTOP, real, Stress recovery fiber distance from midsurface - top
EPROP_SRC [2], real, Stress recovery section location from centroid - C(y,z)
EPROP_SRD [2], real, Stress recovery section location from centroid - D(y,z)
EPROP_SRE [2], real, Stress recovery section location from centroid - E(y,z)
EPROP_SRF [2], real, Stress recovery section location from centroid - F(y,z)
EPROP_PENALTY, real, Penalty factor
EPROP_STIFF, real, Stiffness
EPROP_STIFFTRA [3], real, Stiffness translation
EPROP_STIFFROT [3], real, Stiffness rotation
EPROP_DAMP, real, Viscous damping coefficient
EPROP_DAMPTRA [3], real, Viscous damping translation
EPROP_DAMPROT [3], real, Viscous damping rotation
EPROP_SDAMP, real, Structural damping coefficient
EPROP_SDAMPTRA [3], real, Structural damping translation
EPROP_SDAMPROT [3], real, Structural damping rotation
EPROP_MASS, real, [3], Mass (mx,my,mz)
EPROP_OFFSETVEC [3], real, Offset vector global (x,y,z)
EPROP_INERTIA [6], real, Mass moments of inertia (xx,yy,zz,xy,yz,zx)
EPROP_MASSMATRIX [21], real, Mass matrix (m11,m21,m22,…,m65,m66)
EPROP_STIFFMATRIX [21], real, Stiffness matrix (k11,k21,k22,…,k65,k66)
EPROP_STRSCOEF, real, Stress coefficient
EPROP_STRSCOEFTRA, real, Stress recovery coefficient translation
EPROP_STRSCOEFROT, real, Stress recovery coefficient rotation
EPROP_STRNCOEFTRA, real, Strain recovery coefficient translation
EPROP_STRNCOEFROT, real, Strain recovery coefficient rotation
EPROP_FILM, real, Film coefficient
EPROP_EMIS, real, Emissivity
EPROP_AREAFACT, real, [2], Convection or Radiation Area factor
EPROP_CONVEXP, real, Convection exponent
EPROP_UZERO, real, Initial gap
EPROP_FZERO, real, Preload force
EPROP_KCLOSE, real, Compression stiffness
EPROP_KOPEN, real, Tension stiffness
EPROP_KTRANS, real, Transverse stiffness
EPROP_MUSY, real, Static friction coefficient along y axis
EPROP_MUSZ, real, Static friction coefficient along z axis
EPROP_MUKY, real, Kinetic friction coefficient along y axis
EPROP_MUKZ, real, Kinetic friction coefficient along z axis
EPROP_NOSEPARATION, integer, No separation option
EPROP_NOSLIP, integer, No slip option
EPROP_TIED, integer, tied option
EPROP_ELEMPOINT, character, Vendor specific element point type
EPROP_ELEMLINE, character, Vendor specific element line type
EPROP_ELEMTRI, character, Vendor specific element triangle type
EPROP_ELEMQUAD, character, Vendor specific element quadrilateral type
EPROP_ELEMTET, character, Vendor specific element tetrahedron type
EPROP_ELEMPYR, character, Vendor specific element pyramid type
EPROP_ELEMWED, character, Vendor specific element wedge type
EPROP_ELEMHEX, character, Vendor specific element hexahedron type
EPROP_SUPER_MASSTYPE, integer, Super element mass matrix type.
EPROP_SUPER_STIFFTYPE, integer, Super element stiffness matrix type. The supported matrix types are:
SYS_MATRIX_DIAG, Diagonal matrix
SYS_MATRIX_SYMM, Symmetric matrix, lower triangle
EPROP_SUPER_MASS, double, Super element mass matrix
EPROP_SUPER_STIFF, double, Super element stiffness matrix The number of columns in the mass or stiff matrix is dependent upon EPROP_DOFFLAG_NUM and EPROP_DOFFLAG_IND.
EPROP_SUPER_ID, integer, Super element Id
EPROP_SUPER_TRANS, double, Super element translation
EPROP_SUPER_ORIGIN, double, Super element origin
EPROP_SUPER_DIRCOS, double, Super element direction cosine matrix The direction cosine matrix rotation is to performed about the EPROP_SUPER_ORIGIN.
EPROP_NSM_ID, integer, Nonstructural mass identifier
EPROP_NSM_NUM, integer, Nonstructural mass number of values
EPROP_NSM_VAL, [EPROP_NSM_NUM], real, Nonstructural mass values
EPROP_NSM_VAL_SETIDS, [EPROP_NSM_NUM], integer, Nonstructural mass value set identifiers
EPROP_NSM_VAL_LUMP, [EPROP_NSM_NUM], integer, Nonstructural lumped mass flag
EPROP_BEND_THETA, real, Bend Arc element angle
EPROP_BEND_INTERNALPRESSURE, real, Bend internal pressure
EPROP_BEND_RCOFFSET, real, Bend local r offset EndA/EndB points
EPROP_BEND_ZCOFFSET, real, Bend local z offset EndA/EndB points
EPROP_BEND_FLEXFACTOR, integer, Bend flexibility stress identification factor method
EPROP_BEND_ROFFSET, real, Bend radial offset of neutral axis
EPROP_BEND_RADIUSMEAN, real, Bend Mean cross section radius
EPROP_FORMULATION, integer, Element formulation type
EPROP_AMBIENT_TYPE, integer, Ambient element type
EPROP_COHESIVE_LAYER, real, Relative location of the cohesive layer
EPROP_GASKET_THICKNESS, real, Element Gasket thickness
EPROP_GALERKIN_DILATION_PARAMETERS, real, [3], Galerkin dilation parameters of the kernel function
EPROP_GALERKIN_SPLINE_TYPE, integer, Galerkin spline function type to use on kernel
EPROP_GALERKIN_DILATION_TYPE, integer, Galerkin dilation function type
EPROP_GALERKIN_ESSENTIAL_BC_TYPE, integer, Galerkin essential boundary condition type
EPROP_GALERKIN_DOMAIN_INTEGRATION_TYPE, integer, Galerkin domain integration type
EPROP_GALERKIN_DEFORMATION_TOLERANCE, real, Galerkin deformation tolerance triggering EFG adaptation
EPROP_GALERKIN_PRESSURE_SMOOTHING, integer, Galerkin pressure smoothing flag
EPROP_GALERKIN_KERNEL, integer, Galerkin type of kernel support
EPROP_GALERKIN_SMOOTHING_STEPS_INTERVAL, integer, Galerkin interval of time steps to conduct displacement smoothing
EPROP_GALERKIN_SMOOTHING_SCHEME, integer, Galerkin smoothing scheme for momentum consistent SPG only
EPROP_GALERKIN_BOND_FAILURE_TYPE, integer, Galerkin bond failure mechanism
EPROP_GALERKIN_CRITICAL_BOND_FAILURE, real, Galerkin critical value for bond failure triggering
EPROP_GALERKIN_CRITICAL_STRETCH, real, Galerkin critical relative deformation (stretching or compression ratio) between the two nodes forming the bond for bond failure
EPROP_GALERKIN_STABILIZATION_TYPE, integer, Galerkin stabilization type
EPROP_GALERKIN_SHEAR_LOCKING_FACTOR, real, Galerkin quadrature factor for surface nodes to suppress shear locking in thin structures
EPROP_GALERKIN_SELF_CONTACT, integer, Galerkin self contact flag
EPROP_GALERKIN_BOX_ID, integer, Galerkin box id defining the active region
EPROP_GALERKIN_PARTICLE_DAMPING, real, Galerkin particle-to-particle damping coefficient
EPROP_GALERKIN_SWITCH_TIME_LTE, real, Galerkin time to switch from updated Lagrangian kernel to Eulerian kernel
EPROP_GALERKIN_LENGTH_SCALE, real, Galerkin length scale for displacement regularization
EPROP_VISCOUS_DAMP_TC [2], real, Viscous damping coefficients in tension/compression
EPROP_VISCOUS_EXPNT_TC [2], real, Viscous damping exponents in tension/compression
EPROP_TENSION_TABLES [4], integer, tabular functions Id defining non linear elastic or viscous damper as force relationship
EPROP_USER_NUM, integer, Number of user defined properties
EPROP_USERDIMENUM, integer, Number of dimensions of user defined property.
EPROP_USERDIME, [EPROP_USERDIMENUM], integer, Dimensions of user defined property.
EPROP_USERNAME, character, Name of user defined property.
EPROP_USERDATATYPE, integer, Data type of user defined property.
EPROP_USERDATA, [product of EPROP_USERDIME], double, Data of user defined property.
EPROP_REINFSECT_NUM, integer, Reinforcement section member count
EPROP_REINFSECT, integer, Reinforcement section type. The supported reinforcement section type is:
SYS_REINFSECT_SMEAR, Smeared reinforcement
EPROP_REINFSECT_MID, [EPROP_REINFSECT_NUM], integer, Reinforcement section material Id
EPROP_REINFSECT_AREA, [EPROP_REINFSECT_NUM], real, Reinforcement section cross-section area
EPROP_REINFSECT_FIBER_DISTANCE, real, Reinforcement section inter-fiber distance
EPROP_REINFSECT_CID, [EPROP_REINFSECT_NUM], integer, Reinforcement section coordinate system
EPROP_REINFSECT_THETA, [EPROP_REINFSECT_NUM], real, Reinforcement section angle with respect to the default reinforcement system
EPROP_REINFSECT_LOCATION_TYPE, integer, Reinforcement section location type. The supported reinforcement section location types are:
SYS_REINFSECT_LOCATION_NOTYPE, Default for unsupported reinforcement section location type
SYS_REINFSECT_LOCATION_TYPE_MESH, Mesh-based definition
EPROP_FRICTION_TYPE, integer, Friction model type. The supported friction model types are:
EPROP_FRICTION_NOFRICTION, No friction.
EPROP_FRICTION_BILINEAR_COULOMB, Bilinear Coulomb friction.
EPROP_FRICTION_BILINEAR_SHEAR, Bilinear Shear friction.
Note that the EProp object supports a general set of user defined properties. Use EPROP_USER_NUM with EPropSetValuei to set the number of user defined properties. This number may be repeated increased as user defined properties are entered. The user defined properties are referenced using the defined constants EPROP_USERDIMENUM, EPROP_USERDIME, EPROP_USERNAME, EPROP_USERDATATYPE and EPROP_USERDATA plus the ith-1 user defined property where 0 <= ith-1 < EPROP_USER_NUM. For example, the name of the 2nd user defined property is referenced with EPROP_USERNAME+1.
Each user defined property is a multidimensional array of integer, real or character values. Specify the number of dimensions using EPROP_USERDIMENUM and the size of each dimension using EPROP_USERDIME. The name of the user defined property is entered using EPROP_USERNAME. The datatype is specified using EPROP_USERDATATYPE and must be one of the values SYS_INTEGER, SYS_REAL and SYS_CHAR. A character valued user defined property must be a single dimension in which the dimension size is the length of the character data. The data associated with a user defined property is entered with EPROP_USERDATA. The number of data items required is the product of the specified dimensions.
8.4. Function Descriptions
The currently available EProp functions are described in detail in this section.
-
vis_EProp *vis_EPropBegin(void)
create an instance of an EProp object
Create an instance of an EProp object. Memory is allocated for the object private data and the pointer to the data is returned.
Destroy an instance of an EProp object using
void vis_EPropEnd (vis_EProp *eprop)
Return the current value of an EProp object error flag using
Vint vis_EPropError (vis_EProp *eprop)
Make a copy of an EProp object. The private data from the fromeprop object is copied to the eprop object. Any previous private data in eprop is lost.
void vis_EPropCopy (vis_EProp *eprop, vis_EProp *fromeprop)
- Returns:
The function returns a pointer to the newly created EProp object. If the object creation fails, NULL is returned.
-
void vis_EPropEnd(vis_EProp *p)
destroy an instance of an EProp object
See
vis_EPropBegin()
-
Vint vis_EPropError(vis_EProp *p)
return the current value of an EProp object error flag
See
vis_EPropBegin()
-
void vis_EPropDef(vis_EProp *p, Vint ptype)
define type of element property
Define the element property type to be stored.
Inquire of defined ptype as an output argument using
void vis_EPropInq (vis_EProp *eprop, Vint *ptype)
- Errors
SYS_ERROR_ENUM
is generated if an improper class is specified.
- Parameters:
p – Pointer to EProp object.
ptype – Element property type
x=SYS_ELEM_SOLID Solid element =SYS_ELEM_SHELL Shell element =SYS_ELEM_MEMBRANE Membrane element =SYS_ELEM_BEAM Beam element =SYS_ELEM_TRUSS Truss element =SYS_ELEM_GAP Gap element =SYS_ELEM_INTER Interface element =SYS_ELEM_RIGID Rigid element =SYS_ELEM_MASS Mass element =SYS_ELEM_SPRINGDASHPOT Spring and dashpot element =SYS_ELEM_REINFORCEMENT Reinforcing element
-
void vis_EPropInq(vis_EProp *p, Vint *etype)
inquire of defined class as an output argument
See
vis_EPropDef()
-
void vis_EPropSetValuei(vis_EProp *p, Vint type, Vint ivalue)
set integer property
Set an integer valued property. Use
vis_EPropValueInteger()
to return integer valued properties.If used with rigid elements, The
EPROP_DOFFLAG_NUM
integer property determines the number of locations for theEPROP_DOFFLAG_DEP
andEPROP_DOFFLAG_IND
properties.If used with super elements, The
EPROP_DOFFLAG_NUM
integer property determines the number of locations for theEPROP_DOFFLAG_IND
properties.The
EPROP_BEAMPNTS_NUM
integer property determines the number of points for theEPROP_BEAMPNTS
andEPROP_BEAMLOOP_PNTS
properties. TheEPROP_BEAMLOOP_NUM
integer property determines the number of loops for theEPROP_BEAMLOOP_PNTSNUM
,EPROP_BEAMLOOP_TYPE
andEPROP_BEAMLOOP_MID
properties.The
EPROP_BEAMSEGS_NUM
integer property determines the number of segments for theEPROP_BEAMSEGS_THICK
andEPROP_BEAMSEGS_PNTS
properties.- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if a non integer valued type is specified.
- Parameters:
p – Pointer to EProp object.
type – Element property type
x=EPROP_MID Material Id =EPROP_MID_BEND Material Id bending =EPROP_MID_TRAN Material Id transverse shear =EPROP_MID_COUP Material Id membrane bending coupling =EPROP_MATLCID Material coordinate system Id =EPROP_DOFFLAG_NUM Number of dof flags =EPROP_DOFFLAG_DEP Dependent dof flags =EPROP_DOFFLAG_IND Independent dof flags =EPROP_LAYER_NUM Number of shell layers =EPROP_LAYER_GID Shell layer global Id =EPROP_RULE Integration rule =EPROP_BEAMSECT Beam section type =EPROP_BEAMREFLECTY Beam section reflect about y axis =EPROP_BEAMREFLECTZ Beam section reflect about z axis =EPROP_BEAMPNTS_NUM Beam section number of points =EPROP_BEAMLOOP_NUM Beam section number of loops =EPROP_BEAMLOOP_PNTSNUM Beam section loop number of points =EPROP_BEAMLOOP_TYPE Beam section loop tpe =EPROP_BEAMLOOP_MID Beam section loop material Id =EPROP_BEAMSEGS_NUM Beam section number of segements =EPROP_SHELLWALL Shell wall type =EPROP_SUPER_MASSTYPE Super element mass type =EPROP_SUPER_STIFFTYPE Super element stiffness type =EPROP_SUPER_ID Super element Id =EPROP_USER_NUM Number of user properties =EPROP_USERDIMENUM Number of user dimensions =EPROP_USERDIME Dimensions of user properties =EPROP_USERDATATYPE Data type of user properties =EPROP_USERDATA Data of user properties =EPROP_NSM_NUM Number of nonstructal mass sets =EPROP_REINFSECT_NUM Reinforcement section member count =EPROP_REINFSECT Reinforcement section type =EPROP_REINFSECT_MID Reinforcement section material Id =EPROP_REINFSECT_CID Reinforcement section coordinate system =EPROP_REINFSECT_LOCATION_TYPE Reinforcement section location type
ivalue – Property value
-
void vis_EPropSetValueiv(vis_EProp *p, Vint type, Vint ivalue[])
set integer properties
Set integer valued properties for a type where an array of integers is required. The number of entries in the array must be known to EProp prior to calling this function. Use
vis_EPropValueInteger()
to return integer valued properties.- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if type is an improper data type or the length of type has not been defined.
- Parameters:
p – Pointer to EProp object.
type – Element property type
ivalue – Property values
-
void vis_EPropSetValuef(vis_EProp *p, Vint type, Vfloat rvalue)
set real valued property
Set a real valued property. The real valued property is set for all element locations associated with the property type. Use
vis_EPropValueFloat()
orvis_EPropValueDouble()
to return real valued properties.- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if a non real valued type is specified.
- Parameters:
p – Pointer to EProp object.
type – Element property type
x=EPROP_THICKNESS Thickness =EPROP_OFFSET Offset =EPROP_KS Effective shear ratio =EPROP_AREA Area =EPROP_IYY Moment of inertia about y axis =EPROP_IZZ Moment of inertia about z axis =EPROP_IYZ Product of inertia =EPROP_J Torsional constant =EPROP_KSY Effective shear factor along y axis =EPROP_KSZ Effective shear factor along z axis =EPROP_DSY Shear center offset along y axis =EPROP_DSZ Shear center offset along z axis =EPROP_EMIS Emissivity =EPROP_OFFSETY Offset along y axis =EPROP_OFFSETZ Offset along z axis =EPROP_NSM Nonstructural mass =EPROP_SRBOT Fiber distance - bottom =EPROP_SRTOP Fiber distance - top =EPROP_SRC Section location - C(y,z) =EPROP_SRD Section location - D(y,z) =EPROP_SRE Section location - E(y,z) =EPROP_SRF Section location - F(y,z) =EPROP_BEAMDIME Beam section dimensions =EPROP_BEAMROTANGLE Beam section rotation angle =EPROP_BEAMPNTS Beam section points =EPROP_BEAMLOOP_PNTS Beam section all loop points =EPROP_BEAMSEGS_THICK Beam section segement thickness =EPROP_BEAMSEGS_PNTS Beam section segment points =EPROP_PENALTY Penalty factor =EPROP_DOFFLAG_WGTS Weighting factors =EPROP_SUPER_MASS Super element mass matrix =EPROP_SUPER_STIFF Super element stiffness matrix =EPROP_SUPER_TRANS Super element translation =EPROP_SUPER_ORIGIN Super element origin =EPROP_SUPER_DIRCOS Super element direction cosines =EPROP_USERDATA Data of user properties =EPROP_REINFSECT_AREA Reinforcement section cross-section area =EPROP_REINFSECT_FIBER_DISTANCE Reinforcement section inter-fiber distance =EPROP_REINFSECT_THETA Reinforcement section angle with respect to the default reinforcement system
rvalue – Property value
-
void vis_EPropSetValuefv(vis_EProp *p, Vint type, Vfloat rvalue[])
set real valued properties
Set a real valued properties. The number of properties expected in rvalue is equal to the number of locations times the number of components associated with the property type. For example, the property type
EPROP_THICKNESS
would require 4 values - a scalar value for each of 4 shell element corners. Usevis_EPropValueParams()
to query for the number of locations and components assumed for a property type. Usevis_EPropValueFloat()
orvis_EPropValueDouble()
to return real valued properties.- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if a non real valued type is specified.
- Parameters:
p – Pointer to EProp object.
type – Element property type, same as
vis_EPropSetValuef()
rvalue – Property values
-
void vis_EPropSetValued(vis_EProp *p, Vint type, Vdouble dparam)
set real valued property
-
void vis_EPropSetValuedv(vis_EProp *p, Vint type, Vdouble dparam[])
set real valued properties
-
void vis_EPropSetValuec(vis_EProp *p, Vint type, Vchar *cvalue)
set character property
Set a character valued property. The terminating null character, if present, is also set. Character valued properties are limited to 9 characters including terminating null character. If a null character is not encountered after 8 characters are copied, a terminating null is appended. Use
vis_EPropValueString()
to return character valued properties as a string. This property is designed to associate a vendor specific element formulation to be used with a particular material.- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if a non character valued type is specified.
- Parameters:
p – Pointer to EProp object.
type – Element property type
x=EPROP_ELEMPOINT Element point name =EPROP_ELEMLINE Element line name =EPROP_ELEMTRI Element triangle name =EPROP_ELEMQUAD Element quadrilateral name =EPROP_ELEMTET Element tetrahedron name =EPROP_ELEMPYR Element pyramid name =EPROP_ELEMWED Element wedge name =EPROP_ELEMHEX Element hexahedron name =EPROP_USERNAME Name of user properties
cvalue – Property value
-
void vis_EPropSetValueId(vis_EProp *p, Vint type, Vint id)
set property identifier value
Set an identifier value for real valued properties.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if a non real valued type is specified.
- Parameters:
p – Pointer to EProp object.
type – Element property type, same as
vis_EPropSetValuef()
id – Property identifier
-
void vis_EPropUnSetValue(vis_EProp *p, Vint type)
unset property
Unset a property.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.
- Parameters:
p – Pointer to EProp object.
type – Property type
-
void vis_EPropValueTypeNum(vis_EProp *p, Vint *ntypes)
query number of property types
Return number of defined element property types, ntypes
- Parameters:
p – Pointer to EProp object.
ntypes – [out] Number of defined property types
-
void vis_EPropValueType(vis_EProp *p, Vint *ntypes, Vint type[])
query element property types
Return number of element property types, ntypes, and types, type, of all defined element property types.
- Parameters:
p – Pointer to EProp object.
ntypes – [out] Number of types of property values
type – [out] Array of property types
-
void vis_EPropValueFlag(vis_EProp *p, Vint type, Vint *flag)
query element property type defined
Query for element property definition. If a property value is not defined,
EPROP_UNDEFINED
is returned, if the property has been defined by value usingvis_EPropSetValuef()
orvis_EPropSetValuefv()
thenEPROP_VALUE
is returned, if the property is defined by an identifier value usingvis_EPropSetValueId()
thenEPROP_IDENTIFIER
is returned.- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.
- Parameters:
p – Pointer to EProp object.
type – Property type
flag – [out] Flag indicating if property type defined or not
x=EPROP_UNDEFINED Property value not defined =EPROP_VALUE Property real value defined =EPROP_IDENTIFIER Property identifier defined
-
void vis_EPropValueId(vis_EProp *p, Vint type, Vint *id)
query property identifier value
Return the identifier value of a property. If an identifier value has not been defined for the property nothing is returned. Use
vis_EPropSetValueId()
to set an identifier value.- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if a non real valued type is specified.
- Parameters:
p – Pointer to EProp object.
type – Property type
id – [out] Identifier property.
-
void vis_EPropValueParams(vis_EProp *p, Vint type, Vint *nval, Vint *nloc, Vint *dtyp)
query element property parameters
Query for the number of components, number of locations and the data type associated with a property type.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.
- Parameters:
p – Pointer to EProp object.
type – Property type
nval – [out] Number of components
nloc – [out] Number of locations
dtyp – [out] Data type
=SYS_CHAR Character =SYS_INTEGER Integer =SYS_FLOAT Float (single or double precision)
-
void vis_EPropValueName(vis_EProp *p, Vint type, Vchar name[])
query element property name
Query for the built-in name associated with a property type. The character string will not exceed 64 characters including the terminating NULL character.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.
- Parameters:
p – Pointer to EProp object.
type – Property type
name – [out] Property name
-
void vis_EPropValueFloat(vis_EProp *p, Vint type, Vfloat fparam[])
query element property float value
Return a defined real valued property as float. The number of values returned is equal to the number of components times the number of locations associated with the specified type. If the value has not been defined, nothing is returned.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if a non real valued type is specified.
- Parameters:
p – Pointer to EProp object.
type – Property type
fparam – [out] Float property.
-
void vis_EPropValueDouble(vis_EProp *p, Vint type, Vdouble dparam[])
query element property double value
Return a defined real valued property as double. The number of values returned is equal to the number of components times the number of locations associated with the specified type. If the value has not been defined, nothing is returned.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if a non real valued type is specified.
- Parameters:
p – Pointer to EProp object.
type – Property type
dparam – [out] Double property.
-
void vis_EPropValueString(vis_EProp *p, Vint type, Vchar cparam[])
query property character value
Return a defined character valued property as a string. A string is limited to 9 characters including the terminating null character. If the value has not been defined, nothing is returned.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if a non character valued type is specified.
- Parameters:
p – Pointer to EProp object.
type – Property type
cparam – [out] Character property.
-
void vis_EPropValueInteger(vis_EProp *p, Vint type, Vint iparam[])
query element property integer value
Return a defined integer valued property. If the value has not been defined, nothing is returned.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if a non integer valued type is specified.
- Parameters:
p – Pointer to EProp object.
type – Property type
iparam – [out] Integer property.
-
void vis_EPropEval(vis_EProp *p, Vint type, Vint shape, Vint maxi, Vint maxj, Vfloat value[])
evaluate properties at element nodes
Compute the values of a given property type at element nodes. If the number of locations associated with the element property type is 1, then the property values are assumed to be constant at all element nodes. The property values are ordered by the number of components first followed by the number of element nodes.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_ENUM
is generated if an improper shape is input.SYS_ERROR_VALUE
is generated if an improper maxi or maxj is input.SYS_ERROR_OPERATION
is generated if a non real valued type is specified.
- Parameters:
p – Pointer to EProp object.
type – Element real property type
shape – The topological shape for the element
x=SYS_SHAPELINE Line =SYS_SHAPETRI Triangle =SYS_SHAPEQUAD Quadrilateral
maxi – The number of points along the i direction. If maxi = 0 then the linear element form of the specified shape is assumed.
maxj – The number of points along the j direction. If maxj = 0 and 2 <= maxi <= 4, then a Serendipity finite element is assumed. If 2 <= maxj <= 4 and 2 <= maxi <= 4, then a Lagrange finite element is assumed. For triangle shapes, set either maxj = 0 or maxj = maxi. If shape is
SYS_SHAPELINE
, then maxj is ignored.value – [out] Property values at element nodes.
-
void vis_EPropEvaldv(vis_EProp *p, Vint type, Vint shape, Vint maxi, Vint maxj, Vdouble dvalue[])
evaluate properties at element nodes
See
vis_EPropEval()
-
void vis_EPropCopy(vis_EProp *p, vis_EProp *fromp)
make a copy of an EProp object
See
vis_EPropBegin()
8.5. Material Properties - MProp
The MProp module manages material properties such as elastic or thermal material properties. A MProp module is designed to hold properties for a defined material class such as linear isotropic, plastic, etc. Each material property of a given class has an associated number of components and data type such as integer or real. For example the elastic modulus property of a linear orthotropic material has 3 real valued components. Integer valued material properties are always scalar values. Optionally a material property may be defined to be a function of some independent variable such as temperature by relating an integer identifier with the material property. This integer identifier is assumed to be a key to a table or some function description which contains the material property as a function of temperture.
The functions associated with a MProp object are the following.
Begin and end an instance of an object, return object error flag
vis_MPropBegin()
- create an instance of a MProp objectvis_MPropEnd()
- destroy an instance of a MProp objectvis_MPropError()
- return MProp object error flagvis_MPropCopy()
- make a copy of a MProp object
Set and query material properties
vis_MPropDef()
- define class of material propertyvis_MPropInq()
- inquire class of material propertyvis_MPropSetValuei()
- set integer propertyvis_MPropSetValuef()
- set real valued propertyvis_MPropSetValuefv()
- set real valued propertiesvis_MPropSetValueId()
- set property identifier valuevis_MPropUnSetValue()
- unset propertyvis_MPropValueFlag()
- query property definedvis_MPropValueTypeNum()
- query number of property typesvis_MPropValueType()
- query property typesvis_MPropValueParams()
- query property parametersvis_MPropValueName()
- query property namevis_MPropValueFloat()
- query property float valuevis_MPropValueDouble()
- query property double valuevis_MPropValueId()
- query property identifier valuevis_MPropValueInteger()
- query property integer value
Instance a MProp object initially using vis_MPropBegin()
.
The material property class is defined using vis_MPropDef()
.
The property class is the type of material for which the properties are
applicable such as linear isotropic, anisotropic, etc. Specify integer
or real valued material properties using vis_MPropSetValuei()
,
vis_MPropSetValuef()
, vis_MPropSetValuefv()
, vis_MPropSetValued()
or vis_MPropSetValuedv()
.
Each material property type is identified by a defined constant. The
user queries for the number and type of material properties defined
using vis_MPropValueType()
.
The data type and number of components associated with a material
property type are queried using vis_MPropValueParams()
.
A long descriptive name which is hard-wired to each property type may be
queried using vis_MPropValueName()
.
Finally the property values themselves may be recovered using
vis_MPropValueInteger()
, vis_MPropValueFloat()
or
vis_MPropValueDouble()
.
As an option to explicitly entering real values for a particular
material property, a table identifier may be associated with the
property using vis_MPropSetValueId()
.
This is useful when the material property values are not constant but
instead are a function of an independent variable such as temperature.
The function vis_MPropValueFlag()
is used to determine how a real valued material property has been
defined, if at all. There are three possibilities: 1) not defined, 2)
values defined and 3) identifier defined. If a property is defined using
using vis_MPropSetValuef()
or vis_MPropSetValuefv()
it is value defined, if it is defined using vis_MPropSetValueId()
it is identifier defined.
Currently supported material property classes are:
SYS_MAT_ISOTROPIC linear isotropic material
SYS_MAT_ORTHOTROPIC linear orthotropic material
SYS_MAT_ANISOTROPIC linear anisotropic material
SYS_MAT_HYPERELASTIC hyperelastic material
The full set of material properties are the following:
MPROP_DENSITY, real, Density
MPROP_E, real, Young’s Modulus
MPROP_NU, real, Poisson’s Ratio
MPROP_A, real, Thermal Expansion Coefficient
MPROP_GE, real, Structural Element Damping Coefficient
MPROP_TREF, real, Reference Temperature
MPROP_EORT [3], real, Young’s Modulus (x,y,z)
MPROP_NUORT [3], real, Poisson’s Ratio (xy,yz,xz)
MPROP_GORT [3], real, Shear Modulus (xy,yz,xz)
MPROP_AORT [3], real, Thermal Expansion Coefficients (x,y,z)
MPROP_DMAT [21], real, D Matrix (6x6 lower triangle symmetric)
MPROP_AVEC [6], real, A Vector (6)
MPROP_HYPER_CIJ [27], real, Hyperelastic Cij (27)
MPROP_HYPER_DI [6], real, Hyperelastic Di (6)
MPROP_HYPER_TCURVE1, integer, Hyperelastic tension compression data
MPROP_HYPER_TCURVE2, integer, Hyperelastic equibiaxial data
MPROP_HYPER_TCURVE3, integer, Hyperelastic shear data
MPROP_HYPER_TCURVE4, integer, Hyperelastic pure shear data
MPROP_HYPER_TCURVED, integer, Hyperelastic pure volumetric data
MPROP_K, real, Thermal Conductivity
MPROP_CP, real, Specific Heat
MPROP_HGEN, real, Heat Generation Capability
MPROP_EREF, real, Reference Enthalpy
MPROP_KORT [3], real, Thermal Conductivity (x,y,z)
MPROP_KMAT [6], real, K Matrix (3x3 lower triangle symmetric)
MPROP_BULK, real, Bulk Modulus
MPROP_SOUND, real, Speed of Sound
MPROP_VISCOSITY, real, Viscosity
MPROP_PLASTICITY_HARDENING_TYPE, integer, Hardening type
MPROP_PLASTICITY_TABULAR_DATA, integer, Hardening curve data: Yield=f(Plastic strain)
Currently supported hardening types are:
SYS_MAT_HARDENING_ISOTROPIC isotropic hardening
SYS_MAT_HARDENING_KINEMATIC linear kinematic hardening
8.6. Function Descriptions
The currently available MProp functions are described in detail in this section.
-
vis_MProp *vis_MPropBegin(void)
create an instance of an MProp object
Create an instance of an MProp object. Memory is allocated for the object private data and the pointer to the data is returned.
Destroy an instance of an MProp object using
void vis_MPropEnd (vis_MProp *mprop)
Return the current value of an MProp object error flag using
Vint vis_MPropError (vis_MProp *mprop)
Make a copy of an MProp object. The private data from the frommprop object is copied to the mprop object. Any previous private data in mprop is lost.
void vis_MPropCopy (vis_MProp *mprop, vis_MProp *frommprop)
- Returns:
The function returns a pointer to the newly created MProp object. If the object creation fails, NULL is returned.
-
void vis_MPropEnd(vis_MProp *p)
destroy an instance of an MProp object
See
vis_MPropBegin()
-
Vint vis_MPropError(vis_MProp *p)
return the current value of an MProp object error flag
See
vis_MPropBegin()
-
void vis_MPropDef(vis_MProp *p, Vint type)
define class of material property
Define the material property type to be stored.
Inquire of defined type as an output argument using
void vis_MPropInq (vis_MProp *mprop, Vint *type)
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.
- Parameters:
p – Pointer to MProp object.
type – Material property type
x=SYS_MAT_ISOTROPIC Linear isotropic =SYS_MAT_ORTHOTROPIC Linear orthotropic =SYS_MAT_ANISOTROPIC Linear anisotropic =SYS_MAT_HYPERELASTIC Hyperelastic
-
void vis_MPropInq(vis_MProp *p, Vint *mtype)
inquire of defined class as an output argument
See
vis_MPropDef()
-
void vis_MPropSetValuei(vis_MProp *p, Vint type, Vint ivalue)
set integer property
Set an integer valued property. Use
vis_MPropValueInteger()
to return integer valued properties.- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if a non integer valued type is specified.
- Parameters:
p – Pointer to MProp object.
type – Material property type
ivalue – Property value
-
void vis_MPropSetValuef(vis_MProp *p, Vint type, Vfloat rvalue)
set real valued property
Set a real valued property. The real valued property is set for all components associated with the property type. Use
vis_MPropValueFloat()
orvis_MPropValueDouble()
to return real valued properties.- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if a non real valued type is specified.
- Parameters:
p – Pointer to MProp object.
type – Material property type
x=MPROP_DENSITY Density =MPROP_E Young's Modulus =MPROP_NU Poisson's Ratio =MPROP_A Thermal Expansion Coefficient =MPROP_GE Structural Damping Coefficient =MPROP_TREF Reference Temperature =MPROP_EORT Young's Modulus (x,y,z) =MPROP_NUORT Poisson's Ratio (xy,yz,xz) =MPROP_GORT Shear Modulus (xy,yz,zx) =MPROP_AORT Thermal Expansion Coefficient (x,y,z) =MPROP_DMAT D Matrix (6x6 sym) =MPROP_AVEC A Vector (6) =MPROP_K Thermal Conductivity =MPROP_CP Specific Heat =MPROP_HGEN Heat Generation Capability =MPROP_EREF Reference Enthalpy =MPROP_KORT Thermal Conductivity (x,y,z) =MPROP_KMAT K Matrix (3x3 sym) =MPROP_BULK Bulk Modulus =MPROP_SOUND Speed of Sound =MPROP_VISCOSITY Viscosity =MPROP_USER User-defined property
rvalue – Property value
-
void vis_MPropSetValuefv(vis_MProp *p, Vint type, Vfloat rvalue[])
set real valued properties
Set a real valued properties. The number of properties expected in rvalue is equal to the the number of components associated with the property type. For example, the property type
MPROP_EORT
would require 3 values - a value for each of 3 principal material directions. Usevis_MPropValueParams()
to query for the number of components assumed for a property type. Usevis_MPropValueFloat()
orvis_MPropValueDouble()
to return real valued properties.- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if a non real valued type is specified.
- Parameters:
p – Pointer to MProp object.
type – Material property type, same as
vis_MPropSetValuef()
rvalue – Property values
-
void vis_MPropSetValued(vis_MProp *p, Vint type, Vdouble dparam)
set real valued property
-
void vis_MPropSetValuedv(vis_MProp *p, Vint type, Vdouble dparam[])
set real valued properties
-
void vis_MPropSetValueId(vis_MProp *p, Vint type, Vint id)
set property identifier value
Set an identifier value for real valued properties.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if a non real valued type is specified.
- Parameters:
p – Pointer to MProp object.
type – Property type, same as
vis_MPropSetValuef()
id – Property identifier
-
void vis_MPropUnSetValue(vis_MProp *p, Vint type)
unset property
Unset a property.
- Errors
SYS_ERROR_ENUM` is generated if an improper type is specified.
- Parameters:
p – Pointer to MProp object.
type – Property type
-
void vis_MPropValueTypeNum(vis_MProp *p, Vint *ntypes)
query number of property types
Return number of defined material property types, ntypes.
- Parameters:
p – Pointer to MProp object.
ntypes – [out] Number of defined material property types.
-
void vis_MPropValueType(vis_MProp *p, Vint *ntypes, Vint type[])
query material property types
Return number of material property types, ntypes, and types, type, of all defined material property types.
- Parameters:
p – Pointer to MProp object.
ntypes – [out] Number of types of property values
type – [out] Array of property types
-
void vis_MPropValueParams(vis_MProp *p, Vint type, Vint *nval, Vint *dtyp)
query material property parameters
Query for the number of components and the data type associated with a property type.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.
- Parameters:
p – Pointer to MProp object.
type – Property type
nval – [out] Number of components
dtyp – [out] Data type
=SYS_CHAR Character =SYS_INTEGER Integer =SYS_FLOAT Float (single or double precision)
-
void vis_MPropValueFlag(vis_MProp *p, Vint type, Vint *flag)
query material property type defined
Query for material property definition. If a property value is not defined,
MPROP_UNDEFINED
is returned, if the property has been defined by value usingvis_MPropSetValuef()
orvis_MPropSetValuefv()
thenMPROP_VALUE
is returned, if the property is defined by an identifier value usingvis_MPropSetValueId()
thenMPROP_IDENTIFIER
is returned.- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.
- Parameters:
p – Pointer to MProp object.
type – Property type
flag – [out] Flag indicating if property type defined or not
x=MPROP_UNDEFINED Property value not defined =MPROP_VALUE Property real value defined =MPROP_IDENTIFIER Property identifier defined
-
void vis_MPropValueId(vis_MProp *p, Vint type, Vint *id)
query property identifier value
Return the identifier value of a property. If an identifier value has not been defined for the property nothing is returned. Use
vis_MPropSetValueId()
to set an identifier value.- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if a non real valued type is specified.
- Parameters:
p – Pointer to MProp object.
type – Property type
id – [out] Identifier property.
-
void vis_MPropValueName(vis_MProp *p, Vint type, Vchar name[])
query material property name
Query for the built-in name associated with a property type. The character string will not exceed 64 characters including the terminating NULL character.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.
- Parameters:
p – Pointer to MProp object.
type – Property type
name – [out] Property name
-
void vis_MPropValueDouble(vis_MProp *p, Vint type, Vdouble dparam[])
query material property double value
Return a defined real valued property as double. The number of values returned is equal to the number of components associated with the specified type. If the value has not been defined, nothing is returned.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if a non real valued type is specified.
- Parameters:
p – Pointer to MProp object.
type – Property type
dparam – [out] Double property.
-
void vis_MPropValueFloat(vis_MProp *p, Vint type, Vfloat fparam[])
query material property float value
Return a defined real valued property as float. The number of values returned is equal to the number of components associated with the specified type. If the value has not been defined, nothing is returned.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if a non real valued type is specified.
- Parameters:
p – Pointer to MProp object.
type – Property type
fparam – [out] Float property.
-
void vis_MPropValueInteger(vis_MProp *p, Vint type, Vint iparam[])
query material property integer value
Return a defined integer valued property. If the value has not been defined, nothing is returned.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if a non integer valued type is specified.
- Parameters:
p – Pointer to MProp object.
type – Property type
iparam – [out] Integer property.
-
void vis_MPropCopy(vis_MProp *p, vis_MProp *fromp)
make a copy of an MProp object
See
vis_MPropBegin()
8.7. Solution Properties - SProp
The SProp module manages solution properties such as load case identifiers and convergence tolerances, etc. A SProp module is designed to hold properties for a defined solution class such as statics, buckling or vibration. Each solution property of a given class has an associated number of components and data type. For example the number of eigenvalues property of a vibration analysis solution has 1 integer valued component.
The functions associated with a SProp object are the following.
Begin and end an instance of an object, return object error flag
vis_SPropBegin()
- create an instance of a SProp objectvis_SPropEnd()
- destroy an instance of a SProp objectvis_SPropError()
- return SProp object error flagvis_SPropCopy()
- make a copy of a SProp object
Set and query solution properties
vis_SPropDef()
- define class of solution propertyvis_SPropInq()
- inquire class of solution propertyvis_SPropSetValuec()
- set character propertyvis_SPropSetValuei()
- set integer propertyvis_SPropSetValueiv()
- set integer propertiesvis_SPropSetValuef()
- set real valued propertyvis_SPropSetValuefv()
- set real valued propertiesvis_SPropUnSetValue()
- unset solution property typevis_SPropValueFlag()
- query solution property type definedvis_SPropValueTypeNum()
- query number of solution property typesvis_SPropValueType()
- query solution property typesvis_SPropValueParams()
- query solution property parametersvis_SPropValueName()
- query solution property namevis_SPropValueFloat()
- query solution property float valuevis_SPropValueInteger()
- query solution property integer valuevis_SPropValueDouble()
- query solution property double valuevis_SPropValueString()
- query solution property character value
Instance a SProp object initially using vis_SPropBegin()
.
The solution property class is defined using vis_SPropDef()
.
The property class is the type of solution for which the properties are
applicable such as statics, vibration, etc. Specify integer or real
valued solution properties using vis_SPropSetValuei()
, vis_SPropSetValueiv()
,
vis_SPropSetValuef()
, vis_SPropSetValuefv()
, vis_SPropSetValued()
or vis_SPropSetValuedv()
.
Specify character valued properties using vis_SPropSetValuec()
.
Each solution property type is identified by a defined constant. The
user queries for the number and type of solution properties defined
using vis_SPropValueType()
.
The data type and number of components associated with a solution
property type is queried using vis_SPropValueParams()
.
A long descriptive name which is hard-wired to each property type may be
queried using vis_SPropValueName()
.
Finally the property values themselves may be recovered using
vis_SPropValueInteger()
, vis_SPropValueFloat()
, vis_SPropValueDouble()
or vis_SPropValueString()
.
Currently supported solution property classes are:
SYS_SOL_STATIC static or steady state solution
SYS_SOL_VIBRATION vibration solution
SYS_SOL_BUCKLING buckling solution
SYS_SOL_TRANSIENT transient or unsteady solution
SYS_SOL_SUPERELEMENT superelement solution
SYS_SOL_FREQRESPONSE frequency response solution
SYS_SOL_COMPLEXEIGEN complex eigenvalue solution
SYS_SOL_OUTPUT compute output given degree of freedom solution
SYS_SOL_SINGULAR singular mode solution
The number of values associated with a property type may be dependent upon the value of another property. If this is the case, the dependency is noted by including the property which determines the number of values in parentheses. The full set of solution properties are the following:
SPROP_ANALYSIS, integer, Analysis type. The supported analysis types are:
SYS_ANALYSIS_STRUCTURAL, Structural
SYS_ANALYSIS_THERMAL, Thermal
SPROP_COUPLED_NUM, integer, Number of additional coupled analyses
SPROP_COUPLED [SPROP_COUPLED_NUM], integer, Coupled analysis type. The supported coupled analysis types are:
SYS_ANALYSIS_THERMAL, Thermal
SPROP_CASEID, integer, Case Id
SPROP_EIGEN_NUM, integer, Number of eigenvalues
SPROP_EIGEN_TYPE, integer, Eigenvalue interval type. The supported eigenvalue interval types are:
SYS_EIGEN_NONE, No eigenvalues
SYS_EIGEN_ALL, All eigenvalues in interval
SYS_EIGEN_LOWEST, Lowest eigenvalues in interval
SYS_EIGEN_NEAREST, Eigenvalues nearest to shift
SPROP_EIGEN_LOWER, real, Eigenvalue lower bound
SPROP_EIGEN_UPPER, real, Eigenvalue upper bound
SPROP_EIGEN_SHIFT, real, Eigenvalue shift
SPROP_EIGEN_SOLVER, integer, Eigenvalue solver. The supported eigenvalue solver types are:
SYS_EIGEN_SUBSPACE, Subspace
SYS_EIGEN_LANCZOS, Lanczos
SPROP_EIGEN_NORM, integer, Eigenvalue normalization. The supported eigenvalue vector normalizations are:
SYS_EIGEN_NORMMASS, Normalize to generalized mass
SYS_EIGEN_NORMMAX, Normalize to largest vector component
SPROP_EIGEN_SIZE, integer, Eigenvalue block or subspace size
SPROP_EIGEN_STEP, integer, Eigenvalue steps or iterations
SPROP_ESET_DELETE, integer, Element set of deleted elements
SPROP_FTOL, real, Force convergence tolerance
SPROP_UTOL, real, Displacement convergence tolerance
SPROP_LCASE_MODE, integer, Include load cases as superelement modes
SPROP_LCASE_UNIT, integer, Treat load cases as individual unit loads
SPROP_LCASE_NUM, integer, Number of load cases
SPROP_LCASE [SPROP_LCASE_NUM], integer, Load case Id
SPROP_LCASE_FACTOR [SPROP_LCASE_NUM], real, Load case factor
SPROP_LCASE_TCURVE [SPROP_LCASE_NUM], integer, Load case curve Id. The load case curve is a function of step time unless a sensor node is defined.
SPROP_LCASE_SENSORNODE [SPROP_LCASE_NUM], integer, Load case sensor node. The load case curve is a function of the step solution unknown at the sensor node and associated degree of freedom.
SPROP_LCASE_SENSORDOF [SPROP_LCASE_NUM], integer, Load case sensor node degree of freedom tag
SPROP_RCASE, integer, Restraint case Id
SPROP_RCASE_FACTOR, real, Restraint case factor
SPROP_MCASE, integer, Multipoint constraint case Id
SPROP_ICASE, integer, Initial condition case Id
SPROP_ITERMAX, integer, Iteration maximum
SPROP_LHSITER_FREQ, integer, Matrix reformation iteration frequency
SPROP_LHSSTEP_FREQ, integer, Matrix reformation step frequency
SPROP_TIME_INIT, real, Time initial
SPROP_TIME_STEP, real, Time step
SPROP_TIME_TERM, real, Time termination
SPROP_TIME_STEPMIN, real, Time step minimum
SPROP_TIME_STEPMAX, real, Time step maximum
SPROP_TIME_STEPFIXED, integer, Time step fixed flag
SPROP_FREQRESPONSE_MODAL, integer, Frequency response modal flag
SPROP_FREQ_TYPE, integer, Frequency interval type The supported interval types are:
SPROP_FREQ_RANGE, Frequency range
SPROP_FREQ_EIGEN, Frequency eigenvalues
SPROP_FREQ_RANDOM, Random response
SPROP_FREQ_NUM, integer, Number of frequency intervals
SPROP_FREQ_LOWER [SPROP_FREQ_NUM], integer, Frequency lower bound
SPROP_FREQ_UPPER [SPROP_FREQ_NUM], integer, Frequency upper bound
SPROP_FREQ_NPNTS [SPROP_FREQ_NUM], integer, Frequency num. of points
SPROP_FREQ_BIAS [SPROP_FREQ_NUM], real, Frequency bias
SPROP_MODALDAMP_TCURVE, integer, Modal damping frequency curve Id
SPROP_MODALDAMP_TYPE, integer, Modal damping type The supported modal damping types are:
SPROP_MODALDAMP_CRITFRAC, Fraction of critical damping
SPROP_MODALDAMP_RAYLEIGH, Rayleigh alpha,beta damping
SPROP_FOURIER_NUM, integer, Number of Fourier harmonics
SPROP_FOURIER [SPROP_FOURIER_NUM], integer, Fourier harmonics
SPROP_MASSDIAG, integer, Diagonal mass flag
SPROP_MASS_FACTOR, real, Mass factor
SPROP_DAMP_ALPHA, real, Stiffness proportional damping factor
SPROP_DAMP_BETA, real, Mass proportional damping factor
SPROP_SPROP_DRILLFACTOR, real, Drill stiffness scale factor
SPROP_THERMALSTRAIN, integer, Thermal strain flag
SPROP_INERTIARELIEF, integer, Inertial relief flag
SPROP_PRESTRESS, integer, Prestress flag
SPROP_LARGESTRAIN, integer, Large strain flag
SPROP_PURTURBATION, integer, Purturbation flag
SPROP_NONLINEAR, integer, Nonlinear analysis flag
SPROP_RESFILE_NUM, integer, Number of result quantities
SPROP_RESFILE [SPROP_RESFILE_NUM], integer, Results types
SPROP_RESFILE_FREQ, integer, Result Save frequency
SPROP_RESFILE_NSET, integer, Result node set
SPROP_RESFILE_ESET, integer, Result element set
SPROP_RESPRINT_NUM, integer, Number of printed result quantities
SPROP_RESPRINT [SPROP_RESPRINT_NUM], integer, Printed results.
SPROP_HISTFILE_NUM, integer, Number of history quantities
SPROP_HISTFILE [SPROP_HISTFILE_NUM], integer, History types
SPROP_HISTFILE_SET [SPROP_HISTFILE_NUM], integer, History entity sets
SPROP_HISTFILE_FREQ, integer, History save frequency The supported result quantities are:
SYS_RES_D, Displacement
SYS_RES_R, Reaction force
SYS_RES_XF, External applied force
SYS_RES_S, Stress
SYS_RES_E, Strain
SYS_RES_SE, Strain energy
SYS_RES_SE_DENSITY, Strain energy density
SYS_RES_SFM, Stress and moment resultant
SYS_RES_SEK, Strain and curvature
SYS_RES_SF, Element force
SYS_RES_SD, Element displacement
SYS_RES_TEMP, Temperature
SYS_RES_R_HEAT_FLOW, Reaction heat flow
SYS_RES_TEMP_GRAD, Temperature gradient
SYS_RES_HEAT_FLUX, Heat flux
SPROP_TITLE, character, Title
SPROP_SUBTITLE, character, Subtitle
SPROP_LABEL, character, Label
SPROP_SUBLABEL, character, Sublabel
SPROP_DESTINATIONFILE, character, Name of destination file
SPROP_CONTACT_NUM, integer, Number of contact cases
SPROP_CONTACT_CASE [SPROP_CONTACT_NUM], integer, Contact case Ids
SPROP_USER_NUM, integer, Number of user defined properties
SPROP_USERDIMENUM, integer, Number of dimensions of user defined property.
SPROP_USERDIME, [SPROP_USERDIMENUM], integer, Dimensions of user defined property.
SPROP_USERNAME, character, Name of user defined property.
SPROP_USERDATATYPE, integer, Data type of user defined property.
SPROP_USERDATA, [product of SPROP_USERDIME], double, Data of user defined property.
Note that the SProp object supports a general set of user defined properties. The methodology is similar to the user defined properties in the EProp object. Substitute SPROP for EPROP in all defined constants.
8.8. Function Descriptions
The currently available SProp functions are described in detail in this section.
-
vis_SProp *vis_SPropBegin(void)
create an instance of a SProp object
Create an instance of a SProp object. Memory is allocated for the object private data and the pointer to the data is returned.
Destroy an instance of a SProp object using
void vis_SPropEnd (vis_SProp *sprop)
Return the current value of a SProp object error flag using
Vint vis_SPropError (vis_SProp *sprop)
Make a copy of a SProp object. The private data from the fromsprop object is copied to the sprop object. Any previous private data in sprop is lost.
void vis_SPropCopy (vis_SProp *sprop, vis_SProp *fromsprop)
- Returns:
The function returns a pointer to the newly created SProp object. If the object creation fails, NULL is returned.
-
void vis_SPropEnd(vis_SProp *p)
destroy an instance of a SProp object
See
vis_SPropBegin()
-
Vint vis_SPropError(vis_SProp *p)
return the current value of a SProp object error flag
See
vis_SPropBegin()
-
void vis_SPropDef(vis_SProp *p, Vint ptype)
define class of solution property
Define the solution property type to be stored.
Inquire of defined ptype as an output argument using
void vis_SPropInq (vis_SProp *sprop, Vint *ptype)
- Errors
SYS_ERROR_ENUM
is generated if an improper ptype is specified.
- Parameters:
p – Pointer to SProp object.
ptype – Solution property type
x=SYS_SOL_STATIC Static or steady state =SYS_SOL_VIBRATION Vibration =SYS_SOL_BUCKLING Buckling =SYS_SOL_TRANSIENT Transient or unsteady =SYS_SOL_SUPERELEMENT Superelement =SYS_SOL_FREQRESPONSE Frequency response =SYS_SOL_COMPLEXEIGEN Complex eigenvalue =SYS_SOL_OUTPUT Compute output =SYS_SOL_SINGULAR Singular modes
-
void vis_SPropInq(vis_SProp *p, Vint *stype)
inquire of defined class as an output argument
See
vis_SPropDef()
-
void vis_SPropSetValuei(vis_SProp *p, Vint type, Vint ivalue)
set integer property
Set an integer valued property. Use
vis_SPropValueInteger()
to return integer valued properties.- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if type is an improper data type or the length of type has not been defined.
- Parameters:
p – Pointer to SProp object.
type – Solution property type
x=SPROP_ANALYSIS Analysis type =SPROP_COUPLED_NUM Number of additional coupled analyses =SPROP_COUPLED Coupled analysis type =SPROP_CASEID Case Id =SPROP_EIGEN_NUM Number of eigenvalues =SPROP_ESET_DELETE Element set of deleted elements =SPROP_MASSDIAG Diagonal mass flag =SPROP_LCASE_MODE Load cases as superelement modes =SPROP_LCASE_UNIT Load cases as individual unit loads =SPROP_LCASE_NUM Number of load cases =SPROP_LCASE Load case Id =SPROP_LCASE_TCURVE Time curve Id =SPROP_RCASE Restraint case Id =SPROP_MCASE Multipoint constraint case Id =SPROP_ICASE Initial condition case Id =SPROP_RESFILE_NUM Number of filed result quantities =SPROP_RESFILE Filed result quantity =SPROP_RESFILE_FREQ Filed result frequency =SPROP_RESFILE_NSET Result node set =SPROP_RESFILE_ESET Result element set =SPROP_RESPRINT_NUM Number of printed result quantities =SPROP_RESPRINT Printed results quantity =SPROP_HISTFILE_NUM Number of history quantities =SPROP_HISTFILE History quantity =SPROP_HISTFILE_FREQ History frequency =SPROP_HISTFILE_SET History entity set =SPROP_EIGEN_TYPE Eigenvalue interval type =SPROP_ITERMAX Iteration maximum =SPROP_LHSITER_FREQ Matrix reform iteration frequency =SPROP_LHSSTEP_FREQ Matrix reform step frequency =SPROP_TIME_STEPFIXED Time step fixed flag =SPROP_NONLINEAR Nonlinear analysis flag
ivalue – Property value
x=SYS_ANALYSIS_STRUCTURAL Structural analysis type =SYS_ANALYSIS_THERMAL Thermal analysis type =SYS_EIGEN_NONE No eigenvalues =SYS_EIGEN_ALL All eigenvalues in interval =SYS_EIGEN_LOWEST Lowest eigenvalues in interval =SYS_EIGEN_NEAREST Eigenvalues nearest to shift =SYS_ON Flag enabled =SYS_OFF Flag disabled
-
void vis_SPropSetValueiv(vis_SProp *p, Vint type, Vint ivalue[])
set integer properties
Set integer valued properties. Use
vis_SPropValueInteger()
to return integer valued properties.- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if type is an improper data type or the length of type has not been defined.
- Parameters:
p – Pointer to SProp object.
type – Solution property type
x=SPROP_COUPLED Coupled analysis types =SPROP_LCASE Load case Ids =SPROP_LCASE_TCURVE Time curve Ids =SPROP_RESFILE Filed result quantities =SPROP_RESPRINT Printed results quantities =SPROP_HISTFILE History quantities =SPROP_HISTFILE_SET History entity sets =SPROP_CONTACT_CASE Contact case Ids
ivalue – Property values
-
void vis_SPropSetValuef(vis_SProp *p, Vint type, Vfloat rvalue)
set real valued property
Set a real valued property. The real valued property is set for all components associated with the property type. Use
vis_SPropValueFloat()
orvis_SPropValueDouble()
to return real valued properties.- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if type is an improper data type or the length of type has not been defined.
- Parameters:
p – Pointer to SProp object.
type – Solution property type
x=SPROP_DAMP_ALPHA Stiffness proportional damping factor =SPROP_DAMP_BETA Mass proportional damping factor =SPROP_LCASE_FACTOR Load case factor =SPROP_RCASE_FACTOR Restraint case factor =SPROP_MASS_FACTOR Mass factor =SPROP_TIME_INIT Time initial =SPROP_TIME_STEP Time step =SPROP_TIME_TERM Time termination =SPROP_TIME_STEPMIN Time step minimum =SPROP_TIME_STEPMAX Time step maximum =SPROP_FTOL Force convergence tolerance =SPROP_UTOL Displacement convergence tolerance
rvalue – Property value
-
void vis_SPropSetValuefv(vis_SProp *p, Vint type, Vfloat rvalue[])
set real valued properties
Set a real valued properties. The number of properties expected in rvalue is equal to the the number of values associated with the property type. Use
vis_SPropValueParams()
to query for the number of values associated with a property type. Usevis_SPropValueFloat()
orvis_SPropValueDouble()
to return real valued properties.- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if type is an improper data type or the length of type has not been defined.
- Parameters:
p – Pointer to SProp object.
type – Solution property type, same as
vis_SPropSetValuef()
rvalue – Property values
-
void vis_SPropSetValued(vis_SProp *p, Vint type, Vdouble dparam)
set real valued property
-
void vis_SPropSetValuedv(vis_SProp *p, Vint type, Vdouble dparam[])
set real valued properties
-
void vis_SPropSetValuec(vis_SProp *p, Vint type, Vchar *cvalue)
set character property
Set a character valued property. The terminating null character, if present, is also set. Character valued properties are limited to 81 characters including terminating null character. If a null character is not encountered after 80 characters are copied, a terminating null is appended. Use
vis_SPropValueString()
to return character valued properties as a string.- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if type is an improper data type.
- Parameters:
p – Pointer to SProp object.
type – Solution property type
x=SPROP_TITLE Title =SPROP_SUBTITLE Subtitle =SPROP_LABEL Label =SPROP_SUBLABEL Sublabel
cvalue – Property value
-
void vis_SPropUnSetValue(vis_SProp *p, Vint type)
unset property
Unset a property.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.
- Parameters:
p – Pointer to SProp object.
type – Property type
-
void vis_SPropValueTypeNum(vis_SProp *p, Vint *ntypes)
query number of solution property types
Return number of defined solution property types, ntypes.
- Parameters:
p – Pointer to SProp object.
ntypes – [out] Number of types of property values
-
void vis_SPropValueType(vis_SProp *p, Vint *ntypes, Vint type[])
query solution property types
Return number of solution property types, ntypes, and types, type, of all defined solution property types.
- Parameters:
p – Pointer to SProp object.
ntypes – [out] Number of types of property values
type – [out] Array of property types
-
void vis_SPropValueFlag(vis_SProp *p, Vint type, Vint *flag)
query solution property type defined
Query if solution property type has been defined.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.
- Parameters:
p – Pointer to SProp object.
type – Property type
flag – [out] Flag indicating if property type defined or not
-
void vis_SPropValueParams(vis_SProp *p, Vint type, Vint *nval, Vint *dtyp)
query solution property parameters
Query for the number of values and the data type associated with a property type.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.
- Parameters:
p – Pointer to SProp object.
type – Property type
nval – [out] Number of components
dtyp – [out] Data type
=SYS_CHAR Character =SYS_INTEGER Integer =SYS_FLOAT Float (single or double precision)
-
void vis_SPropValueName(vis_SProp *p, Vint type, Vchar name[])
query solution property name
Query for the built-in name associated with a property type. The character string will not exceed 64 characters including the terminating NULL character.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.
- Parameters:
p – Pointer to SProp object.
type – Property type
name – [out] Property name
-
void vis_SPropValueFloat(vis_SProp *p, Vint type, Vfloat fparam[])
query solution property float value
Return a defined real valued property as float. If the value has not been defined, nothing is returned.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if a non real valued type is specified.
- Parameters:
p – Pointer to SProp object.
type – Property type
fparam – [out] Float property.
-
void vis_SPropValueDouble(vis_SProp *p, Vint type, Vdouble dparam[])
query solution property double value
Return a defined real valued property as double. If the value has not been defined, nothing is returned.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if a non real valued type is specified.
- Parameters:
p – Pointer to SProp object.
type – Property type
dparam – [out] Double property.
-
void vis_SPropValueString(vis_SProp *p, Vint type, Vchar cparam[])
query solution property character value
Return a defined character valued property as a string. A string is limited to 81 characters including the terminating null character. If the value has not been defined, nothing is returned.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if a non character type is specified.
- Parameters:
p – Pointer to SProp object.
type – Property type
cparam – [out] Character property.
-
void vis_SPropValueInteger(vis_SProp *p, Vint type, Vint iparam[])
query solution property integer value
Return a defined integer valued property. If the value has not been defined, nothing is returned.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if a non integer valued type is specified.
- Parameters:
p – Pointer to SProp object.
type – Property type
iparam – [out] Integer property.
-
void vis_SPropCopy(vis_SProp *p, vis_SProp *fromp)
make a copy of a SProp object
See
vis_SPropBegin()
8.9. Tabular Functions - TCurve
The TCurve module manages tabular data as a function of an independent variable. This module is useful for storing material data as a function of temperature or load factors as a function of time, etc.
The functions associated with a TCurve object are the following.
Begin and end an instance of an object, return object error flag
vis_TCurveBegin()
- create an instance of a TCurve objectvis_TCurveEnd()
- destroy an instance of a TCurve objectvis_TCurveError()
- return TCurve object error flag
Set and query tabular functions
vis_TCurveDef()
- define class of tabular functionsvis_TCurveInq()
- inquire class of tabular functionsvis_TCurveEval()
- evaluate functionvis_TCurveIndep()
- query for values of independent variablevis_TCurveMerge()
- merge functionsvis_TCurveNum()
- query number of points on curvevis_TCurveSetFactor()
- set table factorvis_TCurveSetParami()
- set integer parametersvis_TCurveSetPWLinear()
- set piecewise linear curve
Instance a TCurve object initially using vis_TCurveBegin()
.
The function type is defined using vis_TCurveDef()
.
Currently the only function type supported is piecewise linear. The
function may be vector valued.
The function is usually entered in tabular form using vis_TCurveSetPWLinear()
.
Once a function is defined, the number of points in the function can be
queried using vis_TCurveNum()
.
The values of the independent variable for which the function is defined
may be queried using vis_TCurveIndep()
.
The function itself may be evaluated at any value of the independent
variable using vis_TCurveEval()
.
A function may be defined as a combination of any number of other
functions by merging the functions using vis_TCurveMerge()
.
By default the function is evaluated at values outside of the range of
the independent variable using linear extrapolation. Use the function
vis_TCurveSetParami()
to clamp values outside of the range of the independent variable.
The evaluation function, CURVE, is of the following form, use
vis_TCurveSetFactor()
to set the Scale, Offset, Divisor and Shift factors.
f = Scale*CURVE((t - Offset)/Divisor) - Shift
8.10. Function Descriptions
The currently available TCurve functions are described in detail in this section.
-
vis_TCurve *vis_TCurveBegin(void)
create an instance of a TCurve object
Create an instance of a TCurve object. Memory is allocated for the object private data and the pointer to the data is returned.
Destroy an instance of a TCurve object using
void vis_TCurveEnd (vis_TCurve *tcurve)
Return the current value of a TCurve object error flag using
Vint vis_TCurveError (vis_TCurve *tcurve)
- Returns:
The function returns a pointer to the newly created TCurve object. If the object creation fails, NULL is returned.
-
void vis_TCurveEnd(vis_TCurve *p)
destroy an instance of a TCurve object
-
Vint vis_TCurveError(vis_TCurve *p)
return the current value of a TCurve object error flag
-
void vis_TCurveDef(vis_TCurve *p, Vint type, Vint nval)
define class of tabular functions
Specify the type of function and the dimension of the function, nval. For a scalar function of an independent variable enter nval = 1. Use
vis_TCurveSetPWLinear()
to enter the values of the function for all values of the independent variable. Usevis_TCurveMerge()
to define a function as the combination of functions.Inquire of defined type and nval as output arguments using
void vis_TCurveInq (vis_TCurve *tcurve, Vint *type, Vint *nval)
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_VALUE
is generated if an improper nval is specified.
- Parameters:
p – Pointer to TCurve object.
type – Function type
x=TCURVE_PWLINEAR Piecewise linear function
nval – Dimension of vector valued function
-
void vis_TCurveInq(vis_TCurve *p, Vint *type, Vint *nval)
inquire of defined type and nval as output arguments
See
vis_TCurveDef()
-
void vis_TCurveSetFactor(vis_TCurve *p, Vint ptype, Vfloat param)
set table factors
Specify curve factor. The
CURVE
evaluation function is of the following form:By defaultf = Scale*CURVE((t - Offset)/Divisor) - Shift
TCURVE_SCALE
is set to 1.,TCURVE_SHIFT
is set to 0.,TCURVE_DIVISOR
is set to 1. andTCURVE_OFFSET
is set to 0.- Errors
VIS_ERROR_ENUM
is generated if an improper type is specified.VIS_ERROR_VALUE
is generated if a zeroTCURVE_DIVISOR
is specified.
- Parameters:
p – Pointer to TCurve object.
ptype – Type of curve factor to set
x=TCURVE_SCALE Scale =TCURVE_SHIFT Shift =TCURVE_DIVISOR Divisor =TCURVE_OFFSET Offset
param – Specifies the value that type will be set to.
-
void vis_TCurveSetFactord(vis_TCurve *p, Vint type, Vdouble fparam)
set table factors
-
void vis_TCurveSetParami(vis_TCurve *p, Vint ptype, Vint iparam)
set integer parameters
Specify curve evaluation parameters. The parameter
TCURVE_EXTRAPOLATE
toggles the linear extrapolation of values outside of the range of input independent variables in the functionvis_TCurveEval()
. If this parameter is disabled then function values are clamped to the extreme dependent values if evaluated outside the range of input independent variables. By defaultTCURVE_EXTRAPOLATE
is set toSYS_ON
.- Errors
VIS_ERROR_ENUM
is generated if an improper ptype is specified.
- Parameters:
p – Pointer to TCurve object.
ptype – Type of parameter to set
x=TCURVE_EXTRAPOLATE Extrapolate flag
iparam – Specifies the integer value that ptype will be set to.
-
void vis_TCurveSetPWLinear(vis_TCurve *p, Vint npts, Vfloat t[], Vfloat f[])
set piecewise linear curve
Define a function as a piece wise linear function at npts values of the independent variable, t. The function values are input as a vector valued function of dimension, nval, at each of npts points. The dimension, nval, is the value specified in
vis_TCurveDef()
.- Parameters:
p – Pointer to TCurve object.
npts – Number of points for which function is defined
t – Array of values of independent variable
f – Array of values of function
-
void vis_TCurveNum(vis_TCurve *p, Vint *npts)
query number of points on curve
Query for the number of values of the independent variable for which the function is defined.
- Parameters:
p – Pointer to TCurve object.
npts – [out] Number of points on function curve.
-
void vis_TCurveIndep(vis_TCurve *p, Vint npts, Vint pts[], Vfloat t[])
query for values of independent variable
Query for the values of the independent variable, t, for which the function is defined. The point indices, pts, are indexed starting from 1.
- Parameters:
p – Pointer to TCurve object.
npts – Number of points on function curve to return.
pts – Array of point indices
t – [out] Values of independent variable
-
void vis_TCurveIndepdv(vis_TCurve *p, Vint npts, Vint pts[], Vdouble t[])
query for values of independent variable
-
void vis_TCurveEval(vis_TCurve *p, Vint npts, Vfloat t[], Vfloat f[])
evaluate function
Evaluation function at npts values t of the independent variable.
- Parameters:
p – Pointer to TCurve object.
npts – Number of points to evaluate
t – Values of independent variable
f – [out] Values of function
-
void vis_TCurveEvaldv(vis_TCurve *p, Vint npts, Vdouble t[], Vdouble f[])
evaluate function
See
vis_TCurveDef()
-
void vis_TCurveMerge(vis_TCurve *p, Vint num, vis_TCurve *tcurvex[])
merge functions
Define a function as a combination of num functions, tcurvex. The dimension of the function, p, defined using
vis_TCurveDef()
must be equal to the sum of the dimensions of the num functions tcurvex. The number of values of the independent variable will be equal to the union of the values of the functions tcurvex. The function, p, must be of type piece wise linear.
8.11. Results Properties - RProp
The RProp module manages results properties such as results type, section number, load and/or time step numbers, etc.
The functions associated with a RProp object are the following.
Begin and end an instance of an object, return object error flag
vis_RPropBegin()
- create an instance of a RProp objectvis_RPropEnd()
- destroy an instance of a RProp objectvis_RPropError()
- return RProp object error flagvis_RPropCopy()
- make a copy of a RProp object
Set and query result properties
vis_RPropDef()
- define entity types.vis_RPropInq()
- inquire entity typesvis_RPropSetAnalysis()
- set analysis typevis_RPropSetCplx()
- set complex flagvis_RPropSetDatasetIndex()
- set dataset indexvis_RPropSetDatasetName()
- set dataset namevis_RPropSetHist()
- set history flagvis_RPropSetIds()
- set numeric identifiersvis_RPropSetMode()
- set result type modevis_RPropSetQual()
- set result type qualifiersvis_RPropSetSolution()
- set solution typevis_RPropSetType()
- set result typevis_RPropUnSetValue()
- unset propertyvis_RPropSetValuec()
- set character propertyvis_RPropSetValuei()
- set integer propertyvis_RPropSetValueiv()
- set integer propertiesvis_RPropSetValued()
- set double valued propertyvis_RPropSetValuedv()
- set double valued propertiesvis_RPropSetValuef()
- set real valued propertyvis_RPropSetValuefv()
- set real valued propertiesvis_RPropValueFlag()
- query property type definedvis_RPropValueType()
- query property typesvis_RPropValueParams()
- query property parametersvis_RPropValueName()
- query property namevis_RPropValueFloat()
- query property float valuevis_RPropValueInteger()
- query property integer valuevis_RPropValueDouble()
- query property double valuevis_RPropValueString()
- query property character value
Instance a RProp object initially using vis_RPropBegin()
.
The result property parent and child entity types are defined using
vis_RPropDef()
.
The primary result properties are the result type, analysis and solution
type and numeric identifiers. The result type specifies the physical
interpretation, such as displacment, temperature, stress, strain, etc.
The result type is set using vis_RPropSetType()
.
If the result type is unknown, SYS_RES_UNKNOWN, then the result
auxiliary string should be specified using vis_RPropSetQual()
.
This string is required to ensure that multiple unknown result types can
be uniquely described.
The analysis type specifies the basic analysis domain such as
structural, thermal, fluid, etc. The analysis type is set using
vis_RPropSetAnalysis()
.
The solution type specifies problem domain such as static, transient,
vibration, buckling, etc. The solution type is set using vis_RPropSetSolution()
.
The mode type is set using vis_RPropSetMode()
.
The mode type is used to disambiguate various result quantities which
may be generated during a specific analysis and solution type. The
numeric identifiers indicate time step number, vibration mode number,
subcase id, etc. The numeric identifiers are interpreted differently
depending upon the type of analysis that produced the results. The
numeric identifiers are set using vis_RPropSetIds()
.
If the dataset contains imaginary or phase data, then the complex flag
should be enabled using vis_RPropSetCplx()
.
If the dataset is a history result, then the history flag should be
enabled using vis_RPropSetHist()
.
In addition to the primary results, additional, result dependent,
properties such as frequency, load factor, time, etc. may be specified.
Set integer or real valued results properties using vis_RPropSetValuei()
,
vis_RPropSetValueiv()
, vis_RPropSetValuef()
, vis_RPropSetValuefv()
,
vis_RPropSetValued()
or vis_RPropSetValuedv()
.
Specify character valued properties using vis_RPropSetValuec()
.
Each property type is identified by a defined constant. The user queries
for the number and type of properties defined using vis_RPropValueType()
.
The data type and number of components associated with a property type
is queried using vis_RPropValueParams()
.
A long descriptive name which is hard-wired to each property type may be
queried using vis_RPropValueName()
.
Finally the property values themselves may be recovered using
vis_RPropValueInteger()
, vis_RPropValueFloat()
,
vis_RPropValueDouble()
or vis_RPropValueString()
.
If the RProp object is being used in conjunction with the VdmTools library, then each RProp object is mapped to a dataset and of the result dependent properties are mapped to dataset attributes. The full set of additional properties are as follows. The VdmTools dataset attribute name is shown in parentheses.
RPROP_LOADFACTOR, real, (LoadFactor)
RPROP_FREQUENCY, real, (Frequency)
RPROP_EIGENVALUE, real, (Eigenvalue)
RPROP_TIME, real, (Time)
RPROP_TIMESTEP, real, (TimeStep)
RPROP_AMPLITUDE, real, (Amplitude)
RPROP_PHASE, real, (Phase)
RPROP_GENERALIZEDMASS, real, (GeneralizedMass)
RPROP_LOADCASE, integer, (LoadCase)
RPROP_CONTENTS, character, (Contents)
RPROP_DATATYPE, character, (DataType)
RPROP_COMPLEX, character, (Complex)
RPROP_TITLE, character, (Title)
RPROP_SUBTITLE, character, (Subtitle)
RPROP_SUBTITLE1, character, (Subtitle)
RPROP_SUBTITLE2, character, (Subtitle)
RPROP_SUBTITLE3, character, (Subtitle)
RPROP_SUBTITLE4, character, (Subtitle)
RPROP_LABEL, character, (Label)
RPROP_SUBLABEL, character, (Label)
RPROP_LABEL1, character, (Label)
RPROP_LINK_ROTANG, character, (Link.RotAng)
RPROP_LINK_CID, character, (Link.Cid)
RPROP_LINK_COMPLEX, character, (Link.Complex)
RPROP_LINK_SECTION, character, (Link.Section)
RPROP_LINK_LAYERS, character, (Link.Layers)
RPROP_STRAINTYPE, character, (StrainType)
RPROP_DATASOURCE, character, (DataSource)
RPROP_CATEGORY, character, (Category)
8.12. Function Descriptions
The currently available RProp functions are described in detail in this section.
-
vis_RProp *vis_RPropBegin(void)
create an instance of an RProp object
Create an instance of an RProp object. Memory is allocated for the object private data and the pointer to the data is returned.
Destroy an instance of an RProp object using
void vis_RPropEnd (vis_RProp *rprop)
Return the current value of an RProp object error flag using
Vint vis_RPropError (vis_RProp *rprop)
Make a copy of an RProp object. The private data from the fromrprop object is copied to the rprop object. Any previous private data in rprop is lost.
void vis_RPropCopy (vis_RProp *rprop, vis_RProp *fromrprop)
- Returns:
The function returns a pointer to the newly created RProp object. If the object creation fails, NULL is returned.
-
void vis_RPropEnd(vis_RProp *p)
destroy an instance of an RProp object
See
vis_RPropBegin()
-
Vint vis_RPropError(vis_RProp *p)
return the current value of an RProp object error flag
See
vis_RPropBegin()
-
void vis_RPropDef(vis_RProp *p, Vint parenttype, Vint childtype)
define entity types
Define the result entity types.
Inquire of defined parenttype and childtype as output arguments using
void vis_RPropInq (vis_RProp *rprop, Vint *parenttype, Vint *childtype)
- Errors
VIS_ERROR_ENUM` is generated if an improper parenttype or childtype is specified.
- Parameters:
p – Pointer to RProp object.
parenttype – Type of parent entity
=SYS_ELEM Element type =SYS_NODE Node type =SYS_FACE Element Face type =SYS_EDGE Element Edge type =SYS_DOF Degree of Freedom type =SYS_PARTICLE Particle type
childtype – Type of child entity.
=SYS_NONE No child entity =SYS_NODE Node type =SYS_INTPNT Element Integration Point
-
void vis_RPropInq(vis_RProp *p, Vint *enttype, Vint *subtype)
inquire of defined parenttype and childtype as output arguments
See
vis_RPropDef()
-
void vis_RPropSetType(vis_RProp *p, Vint type)
set result type
Set result type, type.
The result type is meant to indicate the basic physical interpretation of the result data. The above list of result types is only a partial list. See section Finite Element Result Dataset Names and Descriptions for a complete list of supported result types.
Inquire of set type as an output argument using
void vis_RPropGetType (vis_RProp *rprop, Vint *type)
- Errors
VIS_ERROR_ENUM
is generated if an improper type is specified.
- Parameters:
p – Pointer to RProp object.
type – Result type
x=SYS_RES_D Displacement =SYS_RES_XF External applied force =SYS_RES_R Reaction force =SYS_RES_V Velocity =SYS_RES_A Acceleration =SYS_RES_HEAT_FLUX Heat flux =SYS_RES_TEMP Temperature =SYS_RES_PRES Pressure =SYS_RES_TEMP_GRAD Temperature gradient =SYS_RES_E Strain =SYS_RES_S Stress =SYS_RES_SE Strain energy =SYS_RES_SE_DENSITY Strain energy density =SYS_RES_SE_ERROR Strain energy error =SYS_RES_SF Element force =SYS_RES_SD Element displacement =SYS_RES_SFM Stress and moment resultant =SYS_RES_SEK Strain and curvature =SYS_RES_TE Thermal energy =SYS_RES_TE_DENSITY Thermal energy density =SYS_RES_TE_ERROR Thermal energy error =SYS_RES_THICKNESS Element thickness
-
void vis_RPropGetType(vis_RProp *p, Vint *type)
get result type
-
void vis_RPropSetIds(vis_RProp *p, Vint id1, Vint id2, Vint id3)
set numeric identifiers
Set numeric identifiers, id1, id2, id3. These values are used to indicate load or time step number, buckling mode number, etc.
Inquire of set id1, id2 and id3 as output arguments using
void vis_RPropGetIds (vis_RProp *rprop, Vint *id1, *id2, *id3)
- Parameters:
p – Pointer to RProp object.
id1 – Numeric identifier
id2 – Numeric identifier
id3 – Numeric identifier
-
void vis_RPropGetIds(vis_RProp *p, Vint *id1, Vint *id2, Vint *id3)
get numeric identifiers
-
void vis_RPropSetMode(vis_RProp *p, Vint mode)
set result type mode
Set result mode. This is used to disambiguate result quantities which may be generated given a specific analysis and solution type.
Inquire of set mode as an output argument using
void vis_RPropGetMode (vis_RProp *rprop, Vint *mode)
- Parameters:
p – Pointer to RProp object.
mode – Result type mode.
x=SYS_CATEGORY_NONE No specfic category =SYS_CATEGORY_BUCK Buckling mode =SYS_CATEGORY_VIBE Vibration mode =SYS_CATEGORY_STAT Static mode =SYS_CATEGORY_TRAN Transient mode =SYS_CATEGORY_CONS Constraint mode =SYS_CATEGORY_CONC Nodal attachment mode =SYS_CATEGORY_DIST Distributed attachment mode =SYS_CATEGORY_INERTIA Inertia attachment mode =SYS_CATEGORY_EFFINERTIA Effective Inertia attachment mode =SYS_CATEGORY_RIGID Rigid mode =SYS_CATEGORY_LOAD Load mode
-
void vis_RPropGetMode(vis_RProp *p, Vint *mode)
get result type mode
-
void vis_RPropSetAnalysis(vis_RProp *p, Vint analysis)
set analysis type
Set analysis type, analysis. By default the analysis type is
SYS_ANALYSIS_STRUCTURAL
.- Parameters:
p – Pointer to RProp object.
analysis – Analysis type
x=SYS_ANALYSIS_STRUCTURAL Structural analysis type =SYS_ANALYSIS_THERMAL Thermal analysis type =SYS_ANALYSIS_FLUID Fluid analysis type
-
void vis_RPropGetAnalysis(vis_RProp *p, Vint *analysis)
get analysis type
-
void vis_RPropSetSolution(vis_RProp *p, Vint solution)
set solution type
Set solution type, solution. By default the solution type is
SYS_SOL_STATIC
.Inquire of set solution as an output argument using
void vis_RPropGetSolution (vis_RProp *rprop, Vint *solution)
- Parameters:
p – Pointer to RProp object.
solution – Solution type
x=SYS_SOL_STATIC Static or steady state =SYS_SOL_VIBRATION Vibration =SYS_SOL_BUCKLING Buckling =SYS_SOL_TRANSIENT Transient or unsteady =SYS_SOL_SUPERELEMENT Superelement =SYS_SOL_FREQRESPONSE Frequency response =SYS_SOL_COMPLEXEIGEN Complex eigenvalue =SYS_SOL_OUTPUT Compute output =SYS_SOL_SINGULAR Singular modes
-
void vis_RPropGetSolution(vis_RProp *p, Vint *solution)
get solution type
-
void vis_RPropSetHist(vis_RProp *p, Vint hist)
set history flag
Set history flag, hist. The history flag indicates that the dataset contains a history result. By default the history flag is disabled.
Inquire of set hist as an output argument using
void vis_RPropGetHist (vis_RProp *rprop, Vint *hist)
- Parameters:
p – Pointer to RProp object.
hist – History flag
=SYS_OFF Disable =SYS_ON Enable
-
void vis_RPropGetHist(vis_RProp *p, Vint *hist)
get history flag
-
void vis_RPropSetCplx(vis_RProp *p, Vint cplx)
set complex flag
Set complex flag, cplx. The complex flag indicates that the dataset contains imaginary or phase data. By default the complex flag is disabled.
Inquire of set cplx as an output argument using
void vis_RPropGetCplx (vis_RProp *rprop, Vint *cplx)
- Parameters:
p – Pointer to RProp object.
cplx – Complex flag
=SYS_OFF Disable =SYS_ON Enable
-
void vis_RPropGetCplx(vis_RProp *p, Vint *cplx)
get complex flag
-
void vis_RPropSetQual(vis_RProp *p, Vint nqua, Vint iqua[], Vchar *cqua)
set result type qualifiers
Set result qualifiers. The result qualifiers are meant to qualifier the basic result type set by
vis_RPropSetType()
. See section Finite Element Result Dataset Names and Descriptions for a complete list of supported result qualifier types.Inquire of set result qualifiers as output arguments using
void vis_RPropGetQual (vis_RProp *rprop, Vint *nqua, Vint iqua[], Vchar *cqua)
- Parameters:
p – Pointer to RProp object.
nqua – Number of qualifier types
iqua – Array of nqua qualifier types
cqua – Optional generic qualifier string
-
void vis_RPropGetQual(vis_RProp *p, Vint *nqua, Vint iqua[], Vchar cqua[])
get result type qualifiers
-
void vis_RPropSetDatasetName(vis_RProp *p, Vchar *dsname)
set dataset name
Set dataset name, dsname. The dataset name is used if results data is loaded or saved using VdmTools.
Inquire of set dsname as an output argument using
void vis_RPropGetDatasetName (vis_RProp *rprop, Vchar dsname[])
- Parameters:
p – Pointer to RProp object.
dsname – Dataset name
-
void vis_RPropGetDatasetName(vis_RProp *p, Vchar dsname[])
get dataset name
-
void vis_RPropSetDatasetIndex(vis_RProp *p, Vint dsindex)
set dataset index
Set dataset index, dsindex. The dataset index is used if results data is loaded using VdmTools.
Inquire of set dsindex as an output argument using
void vis_RPropGetDatasetIndex (vis_RProp *rprop, Vchar dsindex)
- Parameters:
p – Pointer to RProp object.
dsindex – Dataset index
-
void vis_RPropGetDatasetIndex(vis_RProp *p, Vint *dsindex)
get dataset index
-
void vis_RPropSetValuei(vis_RProp *p, Vint type, Vint ivalue)
set integer property
Set an integer valued property. Use
vis_RPropValueInteger()
to return integer valued properties.- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.
- Parameters:
p – Pointer to RProp object.
type – Property type
x=RPROP_LOADCASE LoadCase =RPROP_NONLINEAR Nonlinear analysis flag
ivalue – Property value
-
void vis_RPropSetValueiv(vis_RProp *p, Vint type, Vint ivalue[])
set integer properties
Set an integer valued properties. Use
vis_RPropValueInteger()
to return integer valued properties.- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if type is an improper data type or the length of type has not been defined.
- Parameters:
p – Pointer to RProp object.
type – Property type
ivalue – Property values
-
void vis_RPropSetValuef(vis_RProp *p, Vint type, Vfloat rvalue)
set real valued property
Set a real valued property. The real valued property is set for all components associated with the property type. Use
vis_RPropValueFloat()
orvis_RPropValueDouble()
to return real valued properties.- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if type is an improper data type or the length of type has not been defined.
- Parameters:
p – Pointer to RProp object.
type – Property type
x=RPROP_LOADFACTOR LoadFactor =RPROP_FREQUENCY Frequency =RPROP_EIGENVALUE Eigenvalue =RPROP_TIME Time =RPROP_TIMESTEP TimeStep =RPROP_AMPLITUDE Amplitude =RPROP_PHASE Phase =RPROP_GENERALIZEDMASS GeneralizedMass
rvalue – Property value
-
void vis_RPropSetValuefv(vis_RProp *p, Vint type, Vfloat rvalue[])
set real valued properties
Set a real valued properties. The number of properties expected in rvalue is equal to the the number of values associated with the property type. Use
vis_RPropValueParams()
to query for the number of values associated with a property type. Usevis_RPropValueFloat()
orvis_RPropValueDouble()
to return real valued properties.- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if type is an improper data type or the length of type has not been defined.
- Parameters:
p – Pointer to RProp object.
type – Property type, same as
vis_RPropSetValuef()
rvalue – Property values
-
void vis_RPropSetValued(vis_RProp *p, Vint type, Vdouble dparam)
set real valued property
-
void vis_RPropSetValuedv(vis_RProp *p, Vint type, Vdouble dparam[])
set real valued properties
-
void vis_RPropSetValuec(vis_RProp *p, Vint type, Vchar *cvalue)
set character property
Set a character valued property. The terminating null character, if present, is also set. Character valued properties are limited to 81 characters including terminating null character. If a null character is not encountered after 80 characters are copied, a terminating null is appended. Use
vis_RPropValueString()
to return character valued properties as a string.- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.
- Parameters:
p – Pointer to RProp object.
type – Property type
x=RPROP_TITLE Title =RPROP_SUBTITLE Subtitle =RPROP_SUBTITLE1 Subtitle1 =RPROP_SUBTITLE2 Subtitle2 =RPROP_SUBTITLE3 Subtitle3 =RPROP_SUBTITLE4 Subtitle4 =RPROP_LABEL Label =RPROP_SUBLABEL Sublabel =RPROP_CONTENTS Contents =RPROP_DATATYPE DataType =RPROP_COMPLEX Complex =RPROP_LINK_ROTANG Link.RotAng =RPROP_LINK_CID Link.Cid =RPROP_LINK_COMPLEX Link.Complex =RPROP_LINK_SECTION Link.Section =RPROP_LINK_LAYERS Link.Layers =RPROP_DATASOURCE DataSource =RPROP_STRAINTYPE StrainType =RPROP_CATEGORY Category
cvalue – Property value
-
void vis_RPropUnSetValue(vis_RProp *p, Vint type)
Unset property.
Unset a property.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.
- Parameters:
p – Pointer to RProp object.
type – Property type
-
void vis_RPropValueType(vis_RProp *p, Vint *ntypes, Vint type[])
query property types
Return number of property types, ntypes, and types, type, of all defined property types. The maximum number of types which may be returned is
RPROP_MAX
.- Parameters:
p – Pointer to RProp object.
ntypes – [out] Number of types of property values
type – [out] Array of property types
-
void vis_RPropValueFlag(vis_RProp *p, Vint type, Vint *flag)
query property type defined
Query if property type has been defined.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.
- Parameters:
p – Pointer to RProp object.
type – Property type
flag – [out] Flag indicating if property type defined or not
-
void vis_RPropValueParams(vis_RProp *p, Vint type, Vint *nval, Vint *dtyp)
query property parameters
Query for the number of values and the data type associated with a property type.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.
- Parameters:
p – Pointer to RProp object.
type – Property type
nval – [out] Number of components
dtyp – [out] Data type
=SYS_CHAR Character =SYS_INTEGER Integer =SYS_FLOAT Float (single or double precision)
-
void vis_RPropValueName(vis_RProp *p, Vint type, Vchar name[])
query property name
Query for the built-in name associated with a property type. The character string will not exceed 64 characters including the terminating NULL character.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.
- Parameters:
p – Pointer to RProp object.
type – Property type
name – [out] Property name
-
void vis_RPropValueFloat(vis_RProp *p, Vint type, Vfloat fparam[])
query property float value
Return a defined real valued property as float. If the value has not been defined, nothing is returned.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if a non real valued type is specified.
- Parameters:
p – Pointer to RProp object.
type – Property type
fparam – [out] Float property.
-
void vis_RPropValueDouble(vis_RProp *p, Vint type, Vdouble dparam[])
query property double value
Return a defined real valued property as double. If the value has not been defined, nothing is returned.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if a non real valued type is specified.
- Parameters:
p – Pointer to RProp object.
type – Property type
dparam – [out] Double property.
-
void vis_RPropValueString(vis_RProp *p, Vint type, Vchar cparam[])
query property character value
Return a defined character valued property as a string. A string is limited to 81 characters including the terminating null character. If the value has not been defined, nothing is returned.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if a non character valued type is specified.
- Parameters:
p – Pointer to RProp object.
type – Property type
cparam – [out] Character property.
-
void vis_RPropValueInteger(vis_RProp *p, Vint type, Vint iparam[])
query property integer value
Return a defined integer valued property. If the value has not been defined, nothing is returned.
- Errors
SYS_ERROR_ENUM
is generated if an improper type is specified.SYS_ERROR_OPERATION
is generated if a non integer valued type is specified.
- Parameters:
p – Pointer to RProp object.
type – Property type
iparam – [out] Integer property.
-
void vis_RPropCopy(vis_RProp *p, vis_RProp *q)
make a copy of an RProp object
See
vis_RPropBegin()
8.13. User Defined Properties - UProp
The UProp module manages user defined properties and is used strictly as an attribute object for other global modules such as IdTran. A UProp module is designed to hold integer, real and character values which are assigned a user defined name and are associated with a one-based index.
The functions associated with a UProp object are the following.
Begin and end an instance of an object, return object error flag
vis_UPropBegin()
- create an instance of a UProp objectvis_UPropEnd()
- destroy an instance of a UProp objectvis_UPropError()
- return UProp object error flag
Set and query user defined properties
vis_UPropSetType()
- set property name, dimension and data typevis_UPropGetType()
- get property name, dimension and data typevis_UPropSetValuei()
- set integer propertyvis_UPropSetValueiv()
- set integer propertiesvis_UPropSetValuef()
- set real valued propertyvis_UPropSetValuefv()
- set real valued propertiesvis_UPropNum()
- query number of user defined propertiesvis_UPropValueFloat()
- query defined property float valuevis_UPropValueInteger()
- query defined property integer valuevis_UPropValueDouble()
- query defined property double valuevis_UPropValueString()
- query defined property character value
Instance a UProp object initially using vis_UPropBegin()
.
Any number of user defined properties may be specified, each of which is
assigned a user defined one-based identifier. The name, number of values
and data type of a property are specified using vis_UPropSetType()
.
Specify integer or real valued property data using vis_UPropSetValuei()
,
vis_UPropSetValueiv()
, vis_UPropSetValuef()
, vis_UPropSetValuefv()
,
vis_UPropSetValued()
or vis_UPropSetValuedv()
.
Specify character valued properties using vis_UPropSetValuec()
.
The property specifications for a particular identifier may be queried
using vis_UPropGetType()
.
The property values themselves may be recovered using vis_UPropValueInteger()
,
vis_UPropValueFloat()
, vis_UPropValueDouble()
or
vis_UPropValueString()
.
8.14. Function Descriptions
The currently available UProp functions are described in detail in this section.
-
vis_UProp *vis_UPropBegin(void)
create an instance of a UProp object
Create an instance of a UProp object. Memory is allocated for the object private data and the pointer to the data is returned.
Destroy an instance of a UProp object using
void vis_UPropEnd (vis_UProp *uprop)
Return the current value of a UProp object error flag using
Vint vis_UPropError (vis_UProp *uprop)
- Returns:
The function returns a pointer to the newly created UProp object. If the object creation fails, NULL is returned.
-
void vis_UPropEnd(vis_UProp *p)
destroy an instance of a UProp object
See
vis_UPropBegin()
-
Vint vis_UPropError(vis_UProp *p)
return the current value of a UProp object error flag
See
vis_UPropBegin()
-
void vis_UPropSetType(vis_UProp *p, Vint id, Vchar *name, Vint nval, Vint datatype)
set property name, dimension and data type
Specify the name, number of values and datatype of a user defined property associated with identifier, id.
Inquire of defined name, nval, and datatype as output arguments using
void vis_UPropSetType (vis_UProp *uprop, Vint id, Vchar *name, Vint *nval, Vint *datatype)
- Errors
SYS_ERROR_VALUE
is generated if an improper id is specified.
- Parameters:
p – Pointer to UProp object.
id – Property identifier
name – Property name
nval – Number of property values
datatype – Data type of property value
=SYS_INTEGER Integer, type Vint =SYS_FLOAT Single precision, type Vfloat =SYS_CHAR Character, type Vchar =SYS_DOUBLE Double precision, type Vdouble
-
void vis_UPropGetType(vis_UProp *p, Vint id, Vchar *name, Vint *nval, Vint *dtype)
get property name, dimension and data type
-
void vis_UPropSetValuei(vis_UProp *p, Vint id, Vint ivalue)
set integer property
Set an integer valued property. Use
vis_UPropValueInteger()
to return integer valued properties.- Errors
SYS_ERROR_VALUE
is generated if an improper id is specified.
- Parameters:
p – Pointer to UProp object.
id – Property identifier
ivalue – Property value
-
void vis_UPropSetValueiv(vis_UProp *p, Vint id, Vint *ivalue)
set integer properties
Set a integer valued properties. Use
vis_UPropValueInteger()
to return integer valued properties.- Errors
SYS_ERROR_VALUE
is generated if an improper id is specified.
- Parameters:
p – Pointer to UProp object.
id – Property identifier
ivalue – Property values
-
void vis_UPropSetValuef(vis_UProp *p, Vint id, Vfloat rvalue)
set real valued property
Set a real valued property. The real valued property is set for all components associated with the property type. Use
vis_UPropValueFloat()
orvis_UPropValueDouble()
to return real valued properties.- Errors
SYS_ERROR_VALUE
is generated if an improper id is specified.
- Parameters:
p – Pointer to UProp object.
id – Property identifier
rvalue – Property value
-
void vis_UPropSetValuefv(vis_UProp *p, Vint id, Vfloat *rvalue)
set real valued properties
Set a real valued properties. The number of properties expected in rvalue is equal to the the number of values associated with the property type. Use
vis_UPropValueParams()
to query for the number of values associated with a property type. Usevis_UPropValueFloat()
orvis_UPropValueDouble()
to return real valued properties.- Errors
SYS_ERROR_VALUE
is generated if an improper id is specified.
- Parameters:
p – Pointer to UProp object.
id – Property identifier
rvalue – Property values
-
void vis_UPropSetValued(vis_UProp *p, Vint id, Vdouble val)
set real valued property
-
void vis_UPropSetValuedv(vis_UProp *p, Vint id, Vdouble *val)
set real valued properties
-
void vis_UPropSetValuec(vis_UProp *p, Vint id, Vchar *cvalue)
set character property
Set a character valued property. The terminating null character, if present, is also set. Character valued properties are limited to 81 characters including terminating null character. If a null character is not encountered after 80 characters are copied, a terminating null is appended. Use
vis_UPropValueString()
to return character valued properties as a string.- Errors
SYS_ERROR_VALUE
is generated if an improper id is specified.
- Parameters:
p – Pointer to UProp object.
id – Property identifier
cvalue – Property value
-
void vis_UPropValueInteger(vis_UProp *p, Vint id, Vint iparam[])
query defined property integer value
Return a defined integer valued property. If the value has not been defined, nothing is returned.
- Errors
SYS_ERROR_VALUE
is generated if an improper id is specified.
- Parameters:
p – Pointer to UProp object.
id – Property identifier
iparam – [out] Integer property.
-
void vis_UPropValueFloat(vis_UProp *p, Vint id, Vfloat fparam[])
query defined property float value
Return a defined real valued property as float. If the value has not been defined, nothing is returned.
- Errors
SYS_ERROR_VALUE
is generated if an improper id is specified.
- Parameters:
p – Pointer to UProp object.
id – Property identifier
fparam – [out] Float property.
-
void vis_UPropValueDouble(vis_UProp *p, Vint id, Vdouble dparam[])
query defined property double value
Return a defined real valued property as double. If the value has not been defined, nothing is returned.
- Errors
SYS_ERROR_VALUE
is generated if an improper id is specified.
- Parameters:
p – Pointer to UProp object.
id – Property identifier
dparam – [out] Double property.
-
void vis_UPropValueString(vis_UProp *p, Vint id, Vchar cparam[])
query defined property character value
Return a defined character valued property as a string. A string is limited to 81 characters including the terminating null character. If the value has not been defined, nothing is returned.
- Errors
SYS_ERROR_VALUE
is generated if an improper id is specified.
- Parameters:
p – Pointer to UProp object.
id – Property identifier
cparam – [out] Character property.