OpenCMISS-Zinc C++ API Documentation
|
Base field type: an abstraction of a mathematical field. More...
#include <field.hpp>
Public Types | |
enum | ChangeFlag { CHANGE_FLAG_NONE = CMZN_FIELD_CHANGE_FLAG_NONE, CHANGE_FLAG_ADD = CMZN_FIELD_CHANGE_FLAG_ADD, CHANGE_FLAG_REMOVE = CMZN_FIELD_CHANGE_FLAG_REMOVE, CHANGE_FLAG_IDENTIFIER = CMZN_FIELD_CHANGE_FLAG_IDENTIFIER, CHANGE_FLAG_DEFINITION = CMZN_FIELD_CHANGE_FLAG_DEFINITION, CHANGE_FLAG_FULL_RESULT = CMZN_FIELD_CHANGE_FLAG_FULL_RESULT, CHANGE_FLAG_PARTIAL_RESULT = CMZN_FIELD_CHANGE_FLAG_PARTIAL_RESULT, CHANGE_FLAG_RESULT = CMZN_FIELD_CHANGE_FLAG_RESULT, CHANGE_FLAG_FINAL = CMZN_FIELD_CHANGE_FLAG_FINAL } |
enum | CoordinateSystemType { COORDINATE_SYSTEM_TYPE_INVALID = CMZN_FIELD_COORDINATE_SYSTEM_TYPE_INVALID, COORDINATE_SYSTEM_TYPE_RECTANGULAR_CARTESIAN = CMZN_FIELD_COORDINATE_SYSTEM_TYPE_RECTANGULAR_CARTESIAN, COORDINATE_SYSTEM_TYPE_CYLINDRICAL_POLAR = CMZN_FIELD_COORDINATE_SYSTEM_TYPE_CYLINDRICAL_POLAR, COORDINATE_SYSTEM_TYPE_SPHERICAL_POLAR = CMZN_FIELD_COORDINATE_SYSTEM_TYPE_SPHERICAL_POLAR, COORDINATE_SYSTEM_TYPE_PROLATE_SPHEROIDAL = CMZN_FIELD_COORDINATE_SYSTEM_TYPE_PROLATE_SPHEROIDAL, COORDINATE_SYSTEM_TYPE_OBLATE_SPHEROIDAL = CMZN_FIELD_COORDINATE_SYSTEM_TYPE_OBLATE_SPHEROIDAL, COORDINATE_SYSTEM_TYPE_FIBRE = CMZN_FIELD_COORDINATE_SYSTEM_TYPE_FIBRE } |
enum | DomainType { DOMAIN_TYPE_INVALID = CMZN_FIELD_DOMAIN_TYPE_INVALID, DOMAIN_TYPE_POINT = CMZN_FIELD_DOMAIN_TYPE_POINT, DOMAIN_TYPE_NODES = CMZN_FIELD_DOMAIN_TYPE_NODES, DOMAIN_TYPE_DATAPOINTS = CMZN_FIELD_DOMAIN_TYPE_DATAPOINTS, DOMAIN_TYPE_MESH1D = CMZN_FIELD_DOMAIN_TYPE_MESH1D, DOMAIN_TYPE_MESH2D = CMZN_FIELD_DOMAIN_TYPE_MESH2D, DOMAIN_TYPE_MESH3D = CMZN_FIELD_DOMAIN_TYPE_MESH3D, DOMAIN_TYPE_MESH_HIGHEST_DIMENSION = CMZN_FIELD_DOMAIN_TYPE_MESH_HIGHEST_DIMENSION } |
enum | ValueType { VALUE_TYPE_INVALID = CMZN_FIELD_VALUE_TYPE_INVALID, VALUE_TYPE_REAL = CMZN_FIELD_VALUE_TYPE_REAL, VALUE_TYPE_STRING = CMZN_FIELD_VALUE_TYPE_STRING, VALUE_TYPE_MESH_LOCATION = CMZN_FIELD_VALUE_TYPE_MESH_LOCATION } |
typedef int | ChangeFlags |
typedef int | DomainTypes |
Protected Attributes | |
cmzn_field_id | id |
Base field type: an abstraction of a mathematical field.
Base field type: an abstraction of a mathematical field, a function giving values at locations in a domain (mesh, nodeset, over time). Instances of derived field types give the actual expression in terms of other fields or locations in the domain, all from the same region.
typedef int OpenCMISS::Zinc::Field::ChangeFlags |
Type for passing logical OR of ChangeFlag
typedef int OpenCMISS::Zinc::Field::DomainTypes |
Type for passing logical OR of DomainType
Bit flags summarising changes to a field or fields in a fieldmodule.
Field attribute describing the type of space that its values are to be interpreted in. Although it is usually set for all fields (default is rectangular cartesian, RC), the attribute is only relevant when field is used to supply coordinates or vector values, e.g. to graphics, where it prompts automatic conversion to the underlying RC coordinate system.
Enumerator | |
---|---|
COORDINATE_SYSTEM_TYPE_INVALID |
Unspecified coordinate system type |
COORDINATE_SYSTEM_TYPE_RECTANGULAR_CARTESIAN |
Default rectangular Cartesian coordinate system |
COORDINATE_SYSTEM_TYPE_CYLINDRICAL_POLAR |
Cylindrical polar coordinate system with components r, theta, z. Converts to rectangular Cartesian via: x = r*cos(theta) y = r*sin(theta) z = z |
COORDINATE_SYSTEM_TYPE_SPHERICAL_POLAR |
Spherical polar coordinate system with components r, theta, phi. Converts to rectangular Cartesian via: x = r*cos(phi)*cos(theta) y = r*cos(phi)*sin(theta) z = r*sin(phi) |
COORDINATE_SYSTEM_TYPE_PROLATE_SPHEROIDAL |
Prolate spheroidal coordinate system with components lambda, mu, theta, with a focus value giving scale. Converts to rectangular Cartesian via: x = focus*cosh(lambda)*cos(mu) y = focus*sinh(lambda)*sin(mu)*cos(theta) z = focus*sinh(lambda)*sin(mu)*sin(theta)
|
COORDINATE_SYSTEM_TYPE_OBLATE_SPHEROIDAL |
Oblate spheroidal coordinate system with components lambda, mu, theta, with a focus value giving scale. Converts to rectangular Cartesian via: x = focus*cosh(lambda)*cos(mu)*sin(theta) y = focus*sinh(lambda)*sin(mu) z = focus*cosh(lambda)*cos(mu)*cos(theta)
|
COORDINATE_SYSTEM_TYPE_FIBRE |
A fibre/material orthonormal reference coordinate system defined within elements by Euler angle rotations of a coordinate system initially oriented with the derivatives of RC coordinates w.r.t. element 'xi' coordinates: initial fibre vector = normalised dx/dxi1. initial sheet vector = unit vector normal to fibre in xi1-xi2 plane, calculated as: normal (x) fibre. initial normal vector = unit vector normal to xi1-xi2 plane, calculated as: dx/dxi1 (x) dx/dxi2, then normalised. Up to three fibre angles (components of fibre field) are applied as rotations in radians in the following sequence (later steps omitted for fewer components):
|
An enumeration specifying the field domain (without domain objects) Also used as bit flags.
The types of values fields may produce.
Enumerator | |
---|---|
VALUE_TYPE_INVALID |
Unspecified value type |
VALUE_TYPE_REAL |
Real value type |
VALUE_TYPE_STRING |
String value type |
VALUE_TYPE_MESH_LOCATION |
Mesh location value type |
|
inline |
Assign mesh_location field values at location specified in cache. Only supported by stored_mesh_location field type.
cache | Store of location to assign at and intermediate field values. |
element | The element to set. |
coordinatesCount | Size of following element local coordinates array. Must be at least the dimension of the element. |
coordinatesIn | Array containing location to set in element's local 'xi' coordinate chart. |
|
inline |
Assign real values to field at location specified in cache. Only supported for some field types, notably finite_element, node_value, and field operators where only one operand is assignable: these back-calculate value of that operand and assign to it (includes types: offset, scale, coordinate_transformation, vector_coordinate_transformation; latter assumes coordinate field is not assignable.) Only supported for some cache locations: node, or anywhere for constants.
cache | Store of location to assign at and intermediate field values. |
valuesInCount | Size of values array. Checked that it equals or exceeds the number of components of field. |
valuesIn | Array of real values to assign to field. |
|
inline |
Assign a string value to a field at location specified in cache. Only supported for legacy stored 'finite element' string at node locations, and string_constant at any cache location.
cache | Store of location to assign at and intermediate field values. |
stringValue | The string value to assign to field. |
|
inline |
If the field is of component type, then this function returns the derived component field handle.
|
inline |
If the field is edge discontinuity type then returns the derived edge discontinuity field handle.
|
inline |
If the field is a eigenvalues type field, return the derived field handle.
|
inline |
If field can be cast to an element group return a handle to the derived field.
|
inline |
If the field is of type find_mesh_location then this function returns the derived find mesh location field handle.
|
inline |
If the field is real-valued interpolated finite element then this function returns the derived finite element field handle.
|
inline |
If the field is of group type, then this function returns the derived group field handle.
|
inline |
If the image_field is of type image field then this function returns the derived image field handle.
|
inline |
If field can be cast to an imagefilter binary threshold do so and return a handle to the derived field.
|
inline |
If field can be cast to an imagefilter discrete gaussian do so and return a handle to the derived field.
|
inline |
If field can be cast to an imagefilter histogram do so and return a handle to the derived field.
|
inline |
If field can be cast to an imagefilter threshold do so and return a handle to the derived field.
|
inline |
If the field is a mesh integral type field, return the derived field handle.
|
inline |
If field can be cast to a node group return a handle to the derived field.
|
inline |
If the field is stored_mesh_location type, return type-specific handle to it.
|
inline |
If the field is stored_string type, return type-specific handle to it.
|
inline |
Create a field assignment object for assigning values of the target field, from values of the source field.
sourceField | The source field to assign values from. |
|
inline |
Evaluate derivatives of a real-valued field. CURRENT LIMITATIONS:
differentialOperator | The differential operator identifying which derivative to evaluate. Currently must be obtained from mesh owning element from element location in cache. |
cache | Store of location to evaluate at and intermediate field values. Only element locations are supported by this function. |
valuesOutCount | Size of values array, must equal number of components of field. |
valuesOut | Array of real values to evaluate derivatives into. |
|
inline |
Evaluate mesh_location field values at location specified in cache.
cache | Store of location to evaluate at and intermediate field values. |
coordinatesCount | Size of following element local coordinates array. Must be at least the dimension of the returned element. |
coordinatesOut | Array to receive the location in the element's local 'xi' coordinate chart. |
|
inline |
Evaluate real field values at location specified in cache.
cache | Store of location to evaluate at and intermediate field values. |
valuesOutCount | Size of values array. Checked that it equals or exceeds the number of components of field. |
valuesOut | Array of real values to evaluate into. |
|
inline |
Evaluate field as string at location specified in cache. Numerical valued fields are written to a string with comma separated components. Caller must free returned string with cmzn_deallocate().
cache | Store of location to evaluate at and intermediate field values. |
|
inline |
Get the name of a component of the field. This is only meaningful for finite element fields; all other fields' component names are the string equivalent of the component number, e.g. 1 -> "1" etc. Also, node_value and basis_derivative fields return the base finite element field component names.
componentNumber | Component number from 1 to number of components. |
|
inline |
Get the coordinate system focus value, used for prolate and oblate spheroidal coordinate system types only.
|
inline |
Get the coordinate system type to interpret field values in.
|
inline |
Returns a handle to the field module which owns this field.
|
inline |
|
inline |
Return the name of the field.
|
inline |
Get the number of components of the field.
|
inline |
Get the number of source fields of this field.
|
inline |
Return a source field of this field at a given index. Source fields are in the order presented in the field constructor followed by any optional source fields set by type-specific API.
index | The index from 1 to number of source fields. |
|
inline |
Gets the type of values produced by the field.
|
inline |
Determines if the field is defined at the location specified in the field cache, and hence can be evaluated there. Note that a finite element field will return false for this function at a node location where it has parameters, but cannot be evaluated due to not having a complete set of VALUE parameters for all components. The finite element field has a special function for querying whether it has parameters at a location.
cache | Store of location to check, and intermediate field values. |
|
inline |
Get managed status of field in its owning field module.
|
inline |
Get whether the field is marked as coordinate type i.e. appropriate for giving geometric location of a domain.
|
inline |
Check if this is a valid Field object.
|
inline |
Set the name of a component of the field. This is only meaningful for finite element fields, which can be serialised.
componentNumber | Component number from 1 to number of components. |
name | The new name of the field component. |
|
inline |
Get the coordinate system focus value, used for prolate and oblate spheroidal coordinate system types only.
focus | The new focus value, > 0. |
|
inline |
Set the coordinate system type to interpret field values in. Note PROLATE_SPHEROIDAL and OBLATE_SPHEROIDAL coordinate system types also require the focus to be set to a positive value.
coordinateSystemType | The type of coordinate system. |
|
inline |
Set managed status of field in its owning field module. If set (managed) the field will remain indefinitely in the field module even if no external references are held. If not set (unmanaged) the field will be automatically removed from the module when no longer referenced externally, effectively marking it as pending destruction. All new objects are unmanaged unless stated otherwise.
value | The new value for the managed flag: true or false. |
|
inline |
Set the name of the field. Fails if the new name is in use by any other field in the same field module.
name | The new name for the field. |
|
inline |
Set whether the field is marked as coordinate type i.e. appropriate for giving geometric location of a domain. Can only be set for some fields e.g. finite_element where its default is false. Other fields may be fixed at either state.
value | The new state of the coordinate type flag. |
|
inline |
Smooth the field according to the supplied smoothing specification.
are supported by this function.