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.
- GPROP_PERMANENT_GLUE, integer, Activates Permanent Glue method where contact status is kept from the first step throughout the complete analysis.
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.Parameters:
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.