Solution Properties

Overview

This class manages solution properties such as load case identifiers, convergence tolerances, and other analysis configuration parameters. It is designed to hold properties for a defined solution class such as static, vibration, transient, etc. Each solution property of a given class has an associated number of components and data type such as integer, real, or character. For example the number of eigenvalues property of a vibration analysis solution has 1 integer valued component.

The functions associated with a SolutionProperty object are the following:

Instance a SolutionProperty object initially using the constructor. The solution property class is defined using define(). The property class is the type of solution for which the properties are applicable such as static, vibration, transient, etc. See SolutionType for available types.

Specify integer, double, or character valued solution properties using setPropertyIntegerValue, setPropertyIntegerArray, setPropertyDoubleValue(), setPropertyDoubleArray(), or setPropertyStringValue(). Each solution property type is identified by a defined enum. See IntegerProperty, DoubleProperty and StringProperty for available property types. The user queries for the number of solution properties defined using getPropertyCount(). The data type and number of components associated with a solution property type are queried using getPropertyInformation(). A long descriptive name which is hard-wired to each property type may be queried using getPropertyName(). Finally the property values themselves may be recovered using getPropertyIntegerValue, getPropertyDoubleValue(), or getPropertyStringValue().

The number of values associated with a property type may be dependent upon the value of another property. The function getPropertyFlag() is used to determine how a property has been defined, if at all. There are three possibilities:

Class Members Descriptions

The currently available SolutionProperty enumerations and functions are described in detail in this section.

class SolutionProperty

Solution property class for defining and managing analysis solution parameters and settings.

Public Types

enum class SolutionType

Solution type.

Values:

enumerator NONE

No solution type.

enumerator STATIC

Static or steady state solution (fluid steady state)

enumerator VIBRATION

Vibration solution.

enumerator BUCKLING

Buckling solution.

enumerator TRANSIENT

Transient or unsteady solution.

enumerator SUPERELEMENT

Superelement solution.

enumerator FREQUENCYRESPONSE

Frequency response solution.

enumerator COMPLEXEIGENVALUE

Complex eigenvalue solution.

enumerator QUASISTATIC

Quasistatic solution.

enumerator OUTPUT

Compute output given degree of freedom solution.

enumerator SINGULARMODES

Singular mode solution.

enum class AnalysisType

Analysis type.

Values:

enumerator NONE

No analysis type.

enumerator STRUCTURAL

Structural analysis.

enumerator THERMAL

Thermal analysis.

enumerator ELECTRIC

Electric analysis.

enumerator MAGNETIC

Magnetic analysis.

enumerator FLUID

Fluid analysis.

enumerator ACOUSTIC

Acoustic analysis.

enumerator DIFFUSION

Diffusion analysis.

enumerator ELECTROCHEMICAL

Electrochemical analysis.

enum class EigenIntervalType

Eigenvalue interval type.

Values:

enumerator NONE

No eigenvalue interval.

enumerator ALL

All eigenvalues.

enumerator LOWEST

Lowest eigenvalues.

enumerator NEAREST

Nearest eigenvalues to shift.

enum class EigenSolverType

Eigenvalue solver type.

Values:

enumerator SUBSPACE

Subspace iteration solver.

enumerator LANCZOS

Lanczos solver.

enumerator AMLS

Automatic Multi-Level Substructuring solver.

enum class EigenNormType

Eigenvalue normalization type.

Values:

enumerator MASS

Mass normalization.

enumerator MAX

Maximum component normalization.

enum class PropertyFlag

Solution property value flag.

Values:

enumerator UNDEFINED

Property value is undefined.

enumerator VALUE

Property is specified by direct value.

enumerator IDENTIFIER

Property is specified by identifier reference.

enum class IntegerProperty

Solution property integer type identifiers.

Values:

enumerator ANALYSIS

Analysis type (structural, thermal, etc.)

enumerator CASEID

Case Id.

enumerator EIGEN_NUM

Number of eigenvalues.

enumerator EIGEN_TYPE

Eigenvalue interval type (none, all, lowest, nearest)

enumerator EIGEN_SOLVER

Eigenvalue solver (subspace, Lanczos)

enumerator EIGEN_CASE

Eigenvalue case.

enumerator LCASE_NUM

Number of load cases.

enumerator LCASE

Load case Id [LCASE_NUM].

enumerator LCASE_SENSORNODE

Load case sensor node [LCASE_NUM].

enumerator LCASE_SENSORDOF

Load case sensor node degree of freedom tag [LCASE_NUM].

enumerator EIGEN_NORM

Eigenvalue normalization (mass, largest vector component)

enumerator EIGEN_SIZE

Eigenvalue block or subspace size.

enumerator EIGEN_STEPS

Eigenvalue steps or iterations.

enumerator LCASE_TCURVE

Load case curve Id.

enumerator LCASE_TREF

Load case temperature reference.

enumerator LCASE_MODE

Include load cases as superelement modes.

enumerator LCASE_UNIT

Treat load cases as individual unit loads.

enumerator LCASE_INITIAL_TEMPERATURE

Id of the initial temperature loading if any.

enumerator TIME_STEPFIXED

Time step fixed flag.

enumerator RCASE

Restraint case Id.

enumerator MCASE

Multipoint constraint case Id.

enumerator ICASE

Initial condition case Id.

enumerator THERMALSTRAIN

Thermal strain flag.

enumerator LARGESTRAIN

Large strain flag.

enumerator NONLINEAR

Nonlinear analysis flag.

enumerator MASSDIAG

Diagonal mass flag.

enumerator INERTIARELIEF

Inertial relief flag.

enumerator PRESTRESS

Prestress flag.

enumerator PERTURBATION

Perturbation flag.

enumerator SAVE_FREQ

Save frequency.

enumerator RESFILE_FREQ

Result file save frequency.

enumerator HISTFILE_FREQ

History file save frequency.

enumerator COUPLED_NUM

Number of additional coupled analyses.

enumerator COUPLED

Coupled analysis type [COUPLED_NUM].

enumerator RESFILE_NUM

Number of result quantities.

enumerator RESFILE

Result types [RESFILE_NUM].

enumerator RESFILE_QUA1

Result file qualifier 1 [RESFILE_NUM].

enumerator RESFILE_QUA2

Result file qualifier 2 [RESFILE_NUM].

enumerator RESFILE_NSET

Result node set.

enumerator RESFILE_ESET

Result element set.

enumerator RESPRINT_NUM

Number of printed result quantities.

enumerator RESPRINT

Printed result types [RESPRINT_NUM].

enumerator RESPRINT_QUA1

Result print qualifier 1 [RESPRINT_NUM].

enumerator RESPRINT_QUA2

Result print qualifier 2 [RESPRINT_NUM].

enumerator LHSITER_FREQ

Matrix reformation iteration frequency.

enumerator LHSSTEP_FREQ

Matrix reformation step frequency.

enumerator LHSFORM

Left hand side formation.

enumerator ITERMAX

Iteration maximum.

enumerator ESET_DELETE

Element set of deleted elements.

enumerator HISTFILE_NUM

Number of history quantities.

enumerator HISTFILE

History types [HISTFILE_NUM].

enumerator HISTFILE_SET

History entity sets [HISTFILE_NUM].

enumerator MODALDAMP_TCURVE

Modal damping frequency curve Id.

enumerator MODALDAMP_TYPE

Modal damping type (critical fraction, Rayleigh)

enumerator FREQ_TYPE

Frequency interval type (range, eigenvalue, random)

enumerator FREQ_NUM

Number of frequency intervals.

enumerator FREQ_NPNTS

Frequency number of points [FREQ_NUM].

enumerator FREQRESPONSE_MODAL

Frequency response modal flag.

enumerator FOURIER_NUM

Number of Fourier harmonics.

enumerator FOURIER

Fourier harmonics [FOURIER_NUM].

enumerator NSM_ID

Non-structural mass Id.

enumerator MAX_INCREMENT_STEP

Maximum increment step.

enumerator CONTACT_NUM

Number of contact cases.

enumerator CONTACT_CASE

Contact case Ids [CONTACT_NUM].

enumerator RESEXPORT_NUM

Number of exported result quantities.

enumerator RESEXPORT

Exported result quantities [RESEXPORT_NUM].

enumerator RESIMPORT_NUM

Number of result quantities to import.

enumerator RESIMPORT

Result quantities to import with step Id [RESIMPORT_NUM].

enumerator USER_NUM

Number of user defined properties.

enum class DoubleProperty

Solution property real type identifiers.

Values:

enumerator EIGEN_LOWER

Eigenvalue lower bound.

enumerator EIGEN_UPPER

Eigenvalue upper bound.

enumerator EIGEN_SHIFT

Eigenvalue shift.

enumerator LCASE_FACTOR

Load case factor [LCASE_NUM].

enumerator TIME_INIT

Time initial.

enumerator TIME_STEP

Time step.

enumerator TIME_TERM

Time termination.

enumerator TIME_STEPMIN

Time step minimum.

enumerator TIME_STEPMAX

Time step maximum.

enumerator RCASE_FACTOR

Restraint case factor.

enumerator MASS_FACTOR

Mass factor.

enumerator DAMP_ALPHA

Stiffness proportional damping factor (Rayleigh alpha)

enumerator DAMP_BETA

Mass proportional damping factor (Rayleigh beta)

enumerator FTOL

Force convergence tolerance.

enumerator UTOL

Displacement convergence tolerance.

enumerator ETOL

Energy convergence tolerance.

enumerator FREQ_LOWER

Frequency lower bound [FREQ_NUM].

enumerator FREQ_UPPER

Frequency upper bound [FREQ_NUM].

enumerator FREQ_BIAS

Frequency bias [FREQ_NUM].

enumerator TEMPMAXVARIATION

Temperature maximum variation.

enumerator DRILLFACTOR

Drill stiffness scale factor.

enum class StringProperty

Solution property char type identifiers.

Values:

enumerator TITLE

Title.

enumerator SUBTITLE

Subtitle.

enumerator LABEL

Label.

enumerator SUBLABEL

Sublabel.

enumerator RESFILE_CQUA

Result file combined qualifier [RESFILE_NUM].

enumerator RESPRINT_CQUA

Result print combined qualifier [RESPRINT_NUM].

enumerator DESTINATIONFILE

Name of destination file.

enumerator RESIMPORT_FILE

File name containing result quantities to import.

Public Functions

ErrorCode getErrorCode()

Return the current ErrorCode of the SolutionProperty object.

Returns: ErrorCode - The current error code, or NONE if no error.
Status define(SolutionType type)

Define the solution property type to be stored.

See Also inquire()

Parameters:type SolutionType - Solution property type
Returns:Status
Status inquire(SolutionType *type)

Inquire of defined solution property type as output argument.

See Also define()

Parameters:type[out] SolutionType
Returns:Status
Status redefine(SolutionType type)

Redefine the solution property type. This changes the solution type without clearing existing property values.

See Also define()

Parameters:type SolutionType
Returns:Status
Status setPropertyDoubleValue(DoubleProperty type, double value)

Set a real valued property. The real valued property is set for all components associated with the property type.

See Also getPropertyDoubleValue()

Errors
  • OPERATION is generated if type is an improper data type or the length of type has not been defined.

Parameters:
Returns:

Status

Status setPropertyDoubleArray(DoubleProperty type, double values[])

Set real valued properties. The number of properties expected in values is equal to the number of values associated with the property type. Use getPropertyInformation() to query for the number of values associated with a property type.

See Also getPropertyDoubleValue()

Errors
  • OPERATION is generated if type is an improper data type or the length of type has not been defined.

Parameters:
Returns:

Status

Status setPropertyStringValue(StringProperty type, const char *value)

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.

See Also getPropertyStringValue()

Errors
  • OPERATION is generated if type is an improper data type.

Parameters:
Returns:

Status

Status unsetProperty(IntegerProperty type)

Unset an integer valued property. This removes the property value definition.

Parameters:type IntegerProperty - Property type to unset
Returns:Status
Status unsetProperty(DoubleProperty type)

Unset a real valued property. This removes the property value definition.

Parameters:type DoubleProperty - Property type to unset
Returns:Status
Status unsetProperty(StringProperty type)

Unset a char valued property. This removes the property value definition.

Parameters:type StringProperty - Property type to unset
Returns:Status
Status getPropertyCount(int *count)

Return number of defined solution property types.

Parameters:count[out] Number of types of property values
Returns:Status
Status getPropertyFlag(IntegerProperty type, PropertyFlag *flag)

Query if an integer valued solution property type has been defined.

Errors

Parameters:
Returns:

Status

Status getPropertyFlag(DoubleProperty type, PropertyFlag *flag)

Query if a real valued solution property type has been defined.

Errors

Parameters:
Returns:

Status

Status getPropertyFlag(StringProperty type, PropertyFlag *flag)

Query if a char valued solution property type has been defined.

Errors

Parameters:
Returns:

Status

Status getPropertyInformation(IntegerProperty type, int *componentCount)

Query for the number of values associated with an integer valued property type.

Parameters:
  • type IntegerProperty - Property type
  • componentCount[out] Number of components
Returns:

Status

Status getPropertyInformation(DoubleProperty type, int *componentCount)

Query for the number of values associated with a real valued property type.

Parameters:
  • type DoubleProperty - Property type
  • componentCount[out] Number of components
Returns:

Status

Status getPropertyInformation(StringProperty type, int *componentCount)

Query for the number of values associated with a char valued property type.

Parameters:
  • type StringProperty - Property type
  • componentCount[out] Number of components
Returns:

Status

Status getPropertyName(IntegerProperty type, char name[])

Query for the built-in name associated with an integer valued property type. The character string will not exceed 64 characters including the terminating NULL character.

Parameters:
  • type IntegerProperty - Property type
  • name[out] Property name string
Returns:

Status

Status getPropertyName(DoubleProperty type, char name[])

Query for the built-in name associated with a real valued property type. The character string will not exceed 64 characters including the terminating NULL character.

Parameters:
  • type DoubleProperty - Property type
  • name[out] Property name string
Returns:

Status

Status getPropertyName(StringProperty type, char name[])

Query for the built-in name associated with a char valued property type. The character string will not exceed 64 characters including the terminating NULL character.

Parameters:
  • type StringProperty - Property type
  • name[out] Property name string
Returns:

Status

Status getPropertyDoubleValue(DoubleProperty type, double values[])

Return a defined real valued property as double. If the value has not been defined, nothing is returned.

See Also setPropertyDoubleValue() , setPropertyDoubleArray()

Errors
  • OPERATION is generated if a non real valued type is specified.

Parameters:
  • type DoubleProperty - Property type
  • values[out] Double property values array
Returns:

Status

Status getPropertyStringValue(StringProperty type, char values[])

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.

See Also setPropertyStringValue()

Errors
  • OPERATION is generated if a non character type is specified.

Parameters:
  • type StringProperty - Property type
  • values[out] Character property string
Returns:

Status

Status setId(int id)

Set the solution property identifier.

See Also getId()

Parameters:id – Solution property identifier
Returns:Status
Status getId(int *id)

Get the solution property identifier.

See Also setId()

Parameters:id[out] Solution property identifier
Returns:Status
Status setName(const char *name)

Attach a name to the solution property.

See Also getName()

Parameters:name – String with solution property name
Returns:Status
Status getName(char name[])

Get the solution property name string.

See Also setName()

Parameters:name[out] Solution property name string
Returns:Status
Status copy(SolutionProperty *from)

Make a copy of a SolutionProperty object. The private data from the from object is copied to this object. Any previous private data in this object is lost.

Parameters:from – Pointer to SolutionProperty object to copy from
Returns:Status
Status print()

Print the contents of the SolutionProperty object to standard output. This displays the solution type, number of defined properties, identifier, name, and all property values.

Returns:Status
template<auto IntegerPropertyType, typename typeValue>
Status setPropertyIntegerValue(typeValue value)

Set an integer valued property with compile-time type specification. Supports both enum class types and plain int values.

See Also getPropertyIntegerValue()

Errors
  • OPERATION is generated if the property type is an improper data type or the length has not been defined.
Example
// Set with enum type
sprop.setPropertyIntegerValue<IntegerProperty::ANALYSIS>(AnalysisType::STRUCTURAL);
// Set with int type
sprop.setPropertyIntegerValue<IntegerProperty::CASEID>(123);

Template Parameters:
 
  • IntegerPropertyType IntegerProperty The property type identifier
  • typeValue – The value type (automatically deduced from value parameter)
Parameters:

value – Property value (enum or int)

Returns:

Status

template<auto IntegerPropertyType, typename typeValue>
Status getPropertyIntegerValue(typeValue values[])

Return a defined integer valued property with compile-time type specification. If the value has not been defined, nothing is returned.

See Also setPropertyIntegerValue(), setPropertyIntegerArray()

Errors
  • OPERATION is generated if a non integer valued property type is specified.
Example
int values[10];
sprop.getPropertyIntegerValue<IntegerProperty::CASEID>(values);

Template Parameters:
 
  • IntegerPropertyType IntegerProperty The property type identifier
  • typeValue – The value type (int array or pointer)
Parameters:

values[out] Integer property values array

Returns:

Status

template<auto IntegerPropertyType, typename typeValue>
Status setPropertyIntegerArray(typeValue values[])

Set integer valued properties with compile-time type specification. The number of properties expected in values is equal to the number of values associated with the property type. Use getPropertyInformation() to query the number of values.

See Also getPropertyInformation()

Errors
  • OPERATION is generated if the property type is an improper data type.
Example
int values[] = {1, 2, 3};
sprop.setPropertyIntegerArray<IntegerProperty::LCASE>(values);

Template Parameters:
 
  • IntegerPropertyType IntegerProperty The property type identifier
  • typeValue – The value type (int array or pointer)
Parameters:

values – Property values array

Returns:

Status