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.

Instance a GProp object initially using vis_GPropBegin(). Specify integer valued properties using vis_GPropSetValuei(). Specify character valued properties using vis_GPropSetValuec(). Each property type is identified by a defined constant. The user queries for the number and type of properties defined using vis_GPropValueType(). The data type and number of components associated with a property type is queried using vis_GPropValueParams(). A long descriptive name which is hard-wired to each property type may be queried using vis_GPropValueName(). Finally the property values themselves may be recovered using vis_GPropValueInteger(), vis_GPropValueFloat() or vis_GPropValueDouble().

The function vis_GPropValueFlag() is used to determine if a property has been defined.

Each property has an associated data type, integer, character or real. There is assumed to be a single property value unless the C-language style dimensions are indicated. The full set of global properties are the following:

  • GPROP_2DPLANE, integer, 2D plane orientation The supported plane orientations are:

    • SYS_XYPLANE, xy plane

    • SYS_XZPLANE, xz plane

  • GPROP_2DAXIS, integer, 2D axis of rotation The supported axes are:

    • SYS_XAXIS, x axis

    • SYS_YAXIS, y axis

    • SYS_ZAXIS, z axis

  • GPROP_2DTYPE, integer, 2D analysis type The supported types are:

    • SYS_PLANESTRAIN, plane strain

    • SYS_PLANESTRESS, plane stress

    • SYS_AXISYMMETRIC, axisymmetric

    • SYS_AXISYMFOURIER, axisymmetric with Fourier modes

  • GPROP_AUTOSPC, integer, Auto SPC flag

  • GPROP_TITLE, character, Title

  • GPROP_SUBTITLE, character, Subtitle

  • GPROP_ORIGCODE, character, Originating code

  • GPROP_ORIGVERSION, character, Originating code version

  • GPROP_ORIGTIME, character, Originating time

  • GPROP_ORIGDATE, character, Originating date

  • GPROP_LIBRARY, integer, VdmTools importing library

  • GPROP_CYCLIC_NSEC, integer, Number of Cyclic Sectors

  • GPROP_CYCLIC_ORIG, [3], real, Origin of Cyclic Coordinate System (x,y,z)

  • GPROP_CYCLIC_AXIS, [3], real, Axis of Cyclic Coordinate System (x,y,z)

  • GPROP_STEFAN_BOLTZMANN, real, Stefan Boltzmann constant

  • GPROP_ABSOLUTE_ZERO, real, Absolute Zero Temperature

  • GPROP_STIFF_DAMP, real, Structural Damping Coefficient

  • GPROP_SYMM_NUM, integer, Number of symmetry groups

  • GPROP_SYMM_ID, [GPROP_SYMM_NUM], integer, symmetry group identifier.

  • GPROP_SYMM_CID, [GPROP_SYMM_NUM], integer, symmetry group coordinate system identifier.

  • GPROP_SYMM_NSEC, [GPROP_SYMM_NUM], integer, symmetry group number of sectors.

  • GPROP_SYMM_ESET, [GPROP_SYMM_NUM], integer, symmetry group embedded element set id.

  • GPROP_SYMM_ORIG, [GPROP_SYMM_NUM][3], real, Origin of symmetry Coordinate System (x,y,z)

  • GPROP_SYMM_AXIS, [GPROP_SYMM_NUM][3], real, Axis of symmetry Coordinate System (x,y,z)

  • GPROP_SYMM_STAGEID, [GPROP_SYMM_NUM], integer, Symmetry group stage id

  • GPROP_IMPORT_VENDOR, integer, import vendor

  • GPROP_EXPORT_VENDOR, integer, target export vendor The supported vendors are:

    • SYS_VENDOR_UNKNOWN, unknown or not set

    • SYS_VENDOR_VKI, Visual Kinematics

    • SYS_VENDOR_MSC_NASTRAN, MSC Nastran

    • SYS_VENDOR_ANSYS, Ansys

    • SYS_VENDOR_ABAQUS, Abaqus

    • SYS_VENDOR_LS_DYNA3D, LS-Dyna

    • SYS_VENDOR_ALTAIR_OPTISTRUCT, Altair Optistruct

    • SYS_VENDOR_NX_NASTRAN, NX Nastran

  • GPROP_USER_NUM, integer, Number of user defined properties

  • GPROP_USERDIMENUM, integer, Number of dimensions of user defined property.

  • GPROP_USERDIME, [GPROP_USERDIMENUM], integer, Dimensions of user defined property.

  • GPROP_USERNAME, character, Name of user defined property.

  • GPROP_USERDATATYPE, integer, Data type of user defined property.

  • GPROP_USERDATA, [product of GPROP_USERDIME], real, Data of user defined property.

Note that the GProp object supports a general set of user defined properties. Use GPROP_USER_NUM with GPropSetValuei to set the number of user defined properties. This number may be repeated increased as user defined properties are entered. The user defined properties are referenced using the defined constants GPROP_USERDIMENUM, GPROP_USERDIME, GPROP_USERNAME, GPROP_USERDATATYPE and GPROP_USERDATA plus the ith-1 user defined property where 0 <= ith-1 < GPROP_USER_NUM. For example, the name of the 2nd user defined property is referenced with GPROP_USERNAME+1.

Each user defined property is a multidimensional array of integer, real or character values. Specify the number of dimensions using GPROP_USERDIMENUM and the size of each dimension using GPROP_USERDIME. The name of the user defined property is entered using GPROP_USERNAME. The datatype is specified using GPROP_USERDATATYPE and must be one of the values SYS_INTEGER, SYS_REAL and SYS_CHAR. A character valued user defined property must be a single dimension in which the dimension size is the length of the character data. The data associated with a user defined property is entered with GPROP_USERDATA. The number of data items required is the product of the specified dimensions.

8.2. Function Descriptions

The currently available GProp functions are described in detail in this section.

vis_GProp *vis_GPropBegin(void)

create an instance of a GProp object

Create an instance of a GProp object. Memory is allocated for the object private data and the pointer to the data is returned.

Destroy an instance of a GProp object using

void vis_GPropEnd (vis_GProp *gprop)

Return the current value of a GProp object error flag using

Vint vis_GPropError (vis_GProp *gprop)

Returns

The function returns a pointer to the newly created GProp object. If the object creation fails, NULL is returned.

void vis_GPropEnd(vis_GProp *p)

destroy an instance of a GProp object

See vis_GPropBegin()

Vint vis_GPropError(vis_GProp *p)

return the current value of a GProp object error flag

See vis_GPropBegin()

void vis_GPropSetValuei(vis_GProp *p, Vint type, Vint ivalue)

set integer property

Set an integer valued property. Use vis_GPropValueInteger() to return integer valued properties.

Errors

  • SYS_ERROR_ENUM is generated if an improper type is specified.

  • SYS_ERROR_OPERATION is generated if a non integer valued type is specified.

Parameters
  • p – Pointer to GProp object.

  • type – Global property type

    x=GPROP_2DPLANE           2D orientation plane
     =GPROP_2DTYPE            2D analysis type
     =GPROP_AUTOSPC           Auto SPC flag
     =GPROP_LIBRARY           VdmTools import library type
     =GPROP_USER_NUM          Number of user properties
     =GPROP_USERDIMENUM       Number of user dimensions
     =GPROP_USERDIME          Dimensions of user properties
     =GPROP_USERDATATYPE      Data type of user properties
     =GPROP_USERDATA          Data of user properties
     =GPROP_CYCLIC_NSEC       Number of cyclic sectors
    

  • 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() or vis_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

See vis_GPropSetValuefv()

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 then GPROP_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.

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, real, Stiffness translation

  • EPROP_STIFFROT, real, Stiffness rotation

  • EPROP_DAMP, real, Viscous damping coefficient

  • EPROP_DAMPTRA, real, Viscous damping translation

  • EPROP_DAMPROT, real, Viscous damping rotation

  • EPROP_SDAMP, real, Structural damping coefficient

  • EPROP_SDAMPTRA, real, Structural damping translation

  • EPROP_SDAMPROT, 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 coefficient translation

  • EPROP_STRSCOEFROT, real, Stress coefficient rotation

  • EPROP_STRNCOEFTRA, real, Strain coefficient translation

  • EPROP_STRNCOEFROT, real, Strain 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_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.

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
    

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 the EPROP_DOFFLAG_DEP and EPROP_DOFFLAG_IND properties.

If used with super elements, The EPROP_DOFFLAG_NUM integer property determines the number of locations for the EPROP_DOFFLAG_IND properties.

The EPROP_BEAMPNTS_NUM integer property determines the number of points for the EPROP_BEAMPNTS and EPROP_BEAMLOOP_PNTS properties. The EPROP_BEAMLOOP_NUM integer property determines the number of loops for the EPROP_BEAMLOOP_PNTSNUM, EPROP_BEAMLOOP_TYPE and EPROP_BEAMLOOP_MID properties.

The EPROP_BEAMSEGS_NUM integer property determines the number of segments for the EPROP_BEAMSEGS_THICK and EPROP_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
    

  • 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() or vis_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
    

  • 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. Use vis_EPropValueParams() to query for the number of locations and components assumed for a property type. Use vis_EPropValueFloat() or vis_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
void vis_EPropSetValued(vis_EProp *p, Vint type, Vdouble dparam)

set real valued property

See vis_EPropSetValuef()

void vis_EPropSetValuedv(vis_EProp *p, Vint type, Vdouble dparam[])

set real valued properties

See vis_EPropSetValuefv()

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
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 using vis_EPropSetValuef() or vis_EPropSetValuefv() then EPROP_VALUE is returned, if the property is defined by an identifier value using vis_EPropSetValueId() then EPROP_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.

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

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() or vis_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
    

  • 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. Use vis_MPropValueParams() to query for the number of components assumed for a property type. Use vis_MPropValueFloat() or vis_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
void vis_MPropSetValued(vis_MProp *p, Vint type, Vdouble dparam)

set real valued property

See vis_MPropSetValuef()

void vis_MPropSetValuedv(vis_MProp *p, Vint type, Vdouble dparam[])

set real valued properties

See vis_MPropSetValuefv()

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
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 using vis_MPropSetValuef() or vis_MPropSetValuefv() then MPROP_VALUE is returned, if the property is defined by an identifier value using vis_MPropSetValueId() then MPROP_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.

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_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_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_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
    

  • 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
    

  • 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() or vis_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. Use vis_SPropValueFloat() or vis_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
void vis_SPropSetValued(vis_SProp *p, Vint type, Vdouble dparam)

set real valued property

See vis_SPropSetValuef()

void vis_SPropSetValuedv(vis_SProp *p, Vint type, Vdouble dparam[])

set real valued properties

See vis_SPropSetValuefv()

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.

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

See vis_TCurveBegin()

Vint vis_TCurveError(vis_TCurve *p)

return the current value of a TCurve object error flag

See vis_TCurveBegin()

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. Use vis_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:

f = Scale*CURVE((t - Offset)/Divisor) - Shift
By default TCURVE_SCALE is set to 1., TCURVE_SHIFT is set to 0., TCURVE_DIVISOR is set to 1. and TCURVE_OFFSET is set to 0.

Errors

  • VIS_ERROR_ENUM is generated if an improper type is specified.

  • VIS_ERROR_VALUE is generated if a zero TCURVE_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

See vis_TCurveSetFactor()

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 function vis_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 default TCURVE_EXTRAPOLATE is set to SYS_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

See vis_TCurveIndep()

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
  • p – Pointer to TCurve object.

  • num – Number of functions to merge

  • tcurvex – Array of pointers to TCurve objects to merge

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.

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 \docref{ResultData} 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

See vis_RPropSetType()

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

See vis_RPropSetIds()

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

See vis_RPropSetMode()

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

See vis_RPropSetAnalysis()

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

See vis_RPropSetSolution()

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

See vis_RPropSetHist()

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

See vis_RPropSetCplx()

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 \docref{ResultData} 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

See vis_RPropSetQual()

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

See vis_RPropSetDatasetName()

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

See vis_RPropSetDatasetIndex()

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
    

  • 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() or vis_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. Use vis_RPropValueFloat() or vis_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
void vis_RPropSetValued(vis_RProp *p, Vint type, Vdouble dparam)

set real valued property

See vis_RPropSetValuef()

void vis_RPropSetValuedv(vis_RProp *p, Vint type, Vdouble dparam[])

set real valued properties

See vis_RPropSetValuefv()

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.

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

See vis_UPropSetType()

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() or vis_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. Use vis_UPropValueFloat() or vis_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

See vis_UPropSetValuef()

void vis_UPropSetValuedv(vis_UProp *p, Vint id, Vdouble *val)

set real valued properties

See vis_UPropSetValuefv()

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.

void vis_UPropNum(vis_UProp *p, Vint *num)

query number of user defined properties

Return number of user defined properties.

Parameters
  • p – Pointer to UProp object.

  • num[out] Number of user defined properties