OpenCMISS-Zinc C++ API Documentation
 All Classes Namespaces Files Functions Typedefs Enumerations Enumerator Pages
Public Member Functions | List of all members
OpenCMISS::Zinc::FieldMeshIntegral Class Reference

A field calculating the integral over a mesh. More...

#include <fieldmeshoperators.hpp>

Inheritance diagram for OpenCMISS::Zinc::FieldMeshIntegral:
OpenCMISS::Zinc::Field OpenCMISS::Zinc::FieldMeshIntegralSquares

Public Member Functions

 FieldMeshIntegral (cmzn_field_mesh_integral_id field_mesh_integral_id)
 
int getNumbersOfPoints (int valuesCount, int *valuesOut)
 
int setNumbersOfPoints (int valuesCount, const int *valuesIn)
 
Element::QuadratureRule getElementQuadratureRule ()
 
int setElementQuadratureRule (Element::QuadratureRule quadratureRule)
 
- Public Member Functions inherited from OpenCMISS::Zinc::Field
 Field (cmzn_field_id field_id)
 
 Field (const Field &field)
 
Fieldoperator= (const Field &field)
 
bool isValid () const
 
cmzn_field_id getId () const
 
bool isManaged ()
 
int setManaged (bool value)
 
char * getComponentName (int componentNumber)
 
int setComponentName (int componentNumber, const char *name)
 
double getCoordinateSystemFocus ()
 
int setCoordinateSystemFocus (double focus)
 
CoordinateSystemType getCoordinateSystemType ()
 
int setCoordinateSystemType (CoordinateSystemType coordinateSystemType)
 
int getNumberOfComponents ()
 
char * getName ()
 
int setName (const char *name)
 
int getNumberOfSourceFields ()
 
Field getSourceField (int index)
 
bool isTypeCoordinate ()
 
int setTypeCoordinate (bool value)
 
ValueType getValueType ()
 
Fieldmodule getFieldmodule () const
 
int assignMeshLocation (const Fieldcache &cache, const Element &element, int coordinatesCount, const double *coordinatesIn)
 
int assignReal (const Fieldcache &cache, int valuesCount, const double *valuesIn)
 
int assignString (const Fieldcache &cache, const char *stringValue)
 
Element evaluateMeshLocation (const Fieldcache &cache, int coordinatesCount, double *coordinatesOut)
 
int evaluateReal (const Fieldcache &cache, int valuesCount, double *valuesOut)
 
char * evaluateString (const Fieldcache &cache)
 
int evaluateDerivative (const Differentialoperator&differentialOperator, const Fieldcache &cache, int valuesCount, double *valuesOut)
 
bool isDefinedAtLocation (const Fieldcache &cache)
 
int smooth (const Fieldsmoothing &fieldsmoothing)
 
FieldComponent castComponent ()
 
FieldEdgeDiscontinuity castEdgeDiscontinuity ()
 
FieldEigenvalues castEigenvalues ()
 
FieldElementGroup castElementGroup ()
 
FieldFindMeshLocation castFindMeshLocation ()
 
FieldFiniteElement castFiniteElement ()
 
FieldGroup castGroup ()
 
FieldImage castImage ()
 
FieldImagefilterBinaryThreshold castImagefilterBinaryThreshold ()
 
FieldImagefilterDiscreteGaussian castImagefilterDiscreteGaussian ()
 
FieldImagefilterHistogram castImagefilterHistogram ()
 
FieldImagefilterThreshold castImagefilterThreshold ()
 
FieldMeshIntegral castMeshIntegral ()
 
FieldNodeGroup castNodeGroup ()
 
FieldStoredMeshLocation castStoredMeshLocation ()
 
FieldStoredString castStoredString ()
 

Additional Inherited Members

- Public Types inherited from OpenCMISS::Zinc::Field
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 inherited from OpenCMISS::Zinc::Field
cmzn_field_id id
 

Detailed Description

A field calculating the integral over a mesh.

A field calculating the integral over a mesh of integrand.dV for volume in 3-D, alternatively dA for area in 2-D, or dL for length in 1-D. An integrand of constant 1.0 combined with the RC coordinate field gives the volume, area or length, depending on the mesh dimension. Note: uses absolute value of dV/dA/dL so works with right- or left- handed element local coordinate systems. However, cannot handle elements that are partly or completely inverted from expected handedness.

Member Function Documentation

Element::QuadratureRule OpenCMISS::Zinc::FieldMeshIntegral::getElementQuadratureRule ( )
inline

Get element quadrature rule for numerical integration.

Returns
The element quadrature rule, or CMZN_ELEMENT_QUADRATURE_RULE_INVALID if bad argument.
int OpenCMISS::Zinc::FieldMeshIntegral::getNumbersOfPoints ( int  valuesCount,
int *  valuesOut 
)
inline

Get the numbers of quadrature points in each element axis.

See Also
FieldMeshIntegral::setNumbersOfPoints
Parameters
valuesOutCountSize of the values array i.e. the requested count. Pass 0 to request the number of values set.
valuesOutArray to receive numbers of quadrature points. Values for dimensions beyond the size set use the last value set.
Returns
The actual count of quadrature point numbers that have been explicitly set using FieldMeshIntegral::setNumbersOfPoints. This can be more than the number requested, so a second call may be needed with a larger array. Returns 0 on error.
int OpenCMISS::Zinc::FieldMeshIntegral::setElementQuadratureRule ( Element::QuadratureRule  quadratureRule)
inline

Set element quadrature rule for numerical integration. The current numbers of quadrature points remains unchanged, and can be set by a separate API method.

See Also
Element::QuadratureRule
FieldMeshIntegral::setNumbersOfPoints
Parameters
quadratureRuleThe quadrature rule to use.
Returns
Status OpenCMISS::Zinc::OK on success, otherwise OpenCMISS::Zinc::ERROR_ARGUMENT.
int OpenCMISS::Zinc::FieldMeshIntegral::setNumbersOfPoints ( int  valuesCount,
const int *  valuesIn 
)
inline

Set the numbers of quadrature points in each element axis. The numbers are applied on the top-level-element with the appropriate values inherited on faces and lines; this is only important if different numbers are used in each element axis. Simplex elements use the maximum number set on any linked dimension. For 1-D Gaussian quadrature, N points exactly integrates a polynomial of degree 2N - 1, however 1 more point than the degree is often needed to avoid spurious modes in many numerical solutions. Simplex elements use specialised point arrangements that are sufficient for integrating a polynomial with the same degree as the number of points. The maximum number of Gauss points on each element axis is currently 4; if a higher number is supplied, only 4 are used. There is no upper limit on the numbers of points with midpoint quadrature.

Parameters
valuesInCountSize of the values array, at least 1.
valuesInArray containing numbers of quadrature points >=1, applied on the corresponding element axis, with the last value in the arrray applying on all subsequent element axes. For example [1, 2, 3] gives 1 point on xi1, 2 points on xi2 and 3 points on xi3; [2] gives 2 points on all axes. Use of different numbers is generally only applicable to meshes with particular functions or geometries aligned with the same element local xi direction in all elements; for example a tubular mesh with bicubic elements around the exterior (xi1 and xi2) and linear through the thickness (x3) would benefit from using [4, 4, 2] points for full integration.
Returns
Status OpenCMISS::Zinc::OK on success, otherwise OpenCMISS::Zinc::ERROR_ARGUMENT.

The documentation for this class was generated from the following file: