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:
- Define and query solution property type
define()- Define class of solution propertyinquire()- Inquire class of solution propertyredefine()- Redefine solution property type
- Set solution property values
setPropertyIntegerValue- Set integer propertysetPropertyIntegerArray- Set integer propertiessetPropertyDoubleValue()- Set real valued propertysetPropertyDoubleArray()- Set real valued propertiessetPropertyStringValue()- Set character propertyunsetProperty()- Unset property
- Query solution property information
getPropertyCount()- Query number of property typesgetPropertyInformation()- Query property parametersgetPropertyFlag()- Query property definedgetPropertyName()- Query property name
- Get solution property values
getPropertyDoubleValue()- Query property double valuegetPropertyStringValue()- Query property character valuegetPropertyIntegerValue- Query property integer value
- General functions
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:
- Not defined -
UNDEFINED - Values defined -
VALUE - Identifier defined -
IDENTIFIER
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.
-
enumerator
-
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.
-
enumerator
-
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.
-
enumerator
-
enum class
EigenSolverType Eigenvalue solver type.
Values:
-
enumerator
SUBSPACE Subspace iteration solver.
-
enumerator
LANCZOS Lanczos solver.
-
enumerator
AMLS Automatic Multi-Level Substructuring solver.
-
enumerator
-
enum class
EigenNormType Eigenvalue normalization type.
Values:
-
enumerator
MASS Mass normalization.
-
enumerator
MAX Maximum component normalization.
-
enumerator
-
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.
-
enumerator
-
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.
-
enumerator
-
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.
-
enumerator
-
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.
-
enumerator
Public Functions
-
ErrorCode
getErrorCode() Return the current
ErrorCodeof the SolutionProperty object.Returns: ErrorCode- The current error code, orNONEif no error.
-
Status
define(SolutionType type) Define the solution property type to be stored.
See Also
inquire()Parameters: type – SolutionType- Solution property typeReturns: Status
-
Status
inquire(SolutionType *type) Inquire of defined solution property type as output argument.
See Also
define()Parameters: type – [out] SolutionTypeReturns: 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 – SolutionTypeReturns: 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
-
OPERATIONis generated if type is an improper data type or the length of type has not been defined.
-
Parameters: - type –
DoubleProperty - value – Property value
Returns:
-
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
-
OPERATIONis generated if type is an improper data type or the length of type has not been defined.
-
Parameters: - type –
DoubleProperty - values – Property values array
Returns:
-
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
-
OPERATIONis generated if type is an improper data type.
-
Parameters: - type –
StringProperty - value – Property value string
Returns:
-
Status
unsetProperty(IntegerProperty type) Unset an integer valued property. This removes the property value definition.
Parameters: type – IntegerProperty- Property type to unsetReturns: Status
-
Status
unsetProperty(DoubleProperty type) Unset a real valued property. This removes the property value definition.
Parameters: type – DoubleProperty- Property type to unsetReturns: Status
-
Status
unsetProperty(StringProperty type) Unset a char valued property. This removes the property value definition.
Parameters: type – StringProperty- Property type to unsetReturns: 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
-
NULLOBJECTis generated if flag is NULL.
-
Parameters: - type –
IntegerProperty- Property type - flag – [out]
PropertyFlag- Flag indicating if property type defined or not
Returns:
-
Status
getPropertyFlag(DoubleProperty type, PropertyFlag *flag) Query if a real valued solution property type has been defined.
- Errors
-
NULLOBJECTis generated if flag is NULL.
-
Parameters: - type –
DoubleProperty- Property type - flag – [out]
PropertyFlag- Flag indicating if property type defined or not
Returns:
-
Status
getPropertyFlag(StringProperty type, PropertyFlag *flag) Query if a char valued solution property type has been defined.
- Errors
-
NULLOBJECTis generated if flag is NULL.
-
Parameters: - type –
StringProperty- Property type - flag – [out]
PropertyFlag- Flag indicating if property type defined or not
Returns:
-
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: - type –
-
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: - type –
-
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: - type –
-
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: - type –
-
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: - type –
-
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: - type –
-
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
-
OPERATIONis generated if a non real valued type is specified.
-
Parameters: - type –
DoubleProperty- Property type - values – [out] Double property values array
Returns:
-
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
-
OPERATIONis generated if a non character type is specified.
-
Parameters: - type –
StringProperty- Property type - values – [out] Character property string
Returns:
-
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, typenametypeValue>
StatussetPropertyIntegerValue(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
-
OPERATIONis 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 –
IntegerPropertyThe property type identifier - typeValue – The value type (automatically deduced from value parameter)
Parameters: value – Property value (enum or int)
Returns:
-
template<auto
IntegerPropertyType, typenametypeValue>
StatusgetPropertyIntegerValue(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
-
OPERATIONis generated if a non integer valued property type is specified.
-
- Example
int values[10]; sprop.getPropertyIntegerValue<IntegerProperty::CASEID>(values);
Template Parameters: - IntegerPropertyType –
IntegerPropertyThe property type identifier - typeValue – The value type (int array or pointer)
Parameters: values – [out] Integer property values array
Returns:
-
template<auto
IntegerPropertyType, typenametypeValue>
StatussetPropertyIntegerArray(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
-
OPERATIONis generated if the property type is an improper data type.
-
- Example
int values[] = {1, 2, 3}; sprop.setPropertyIntegerArray<IntegerProperty::LCASE>(values);
Template Parameters: - IntegerPropertyType –
IntegerPropertyThe property type identifier - typeValue – The value type (int array or pointer)
Parameters: values – Property values array
Returns:
-
enum class