|
IFEM
90A354
|
Base class for vector fields. More...
#include <Fields.h>


Public Member Functions | |
| virtual | ~Fields () |
| Empty destructor. | |
| unsigned char | getNoFields () const |
| Returns the number of field components. | |
| size_t | getNoElm () const |
| Returns the number of elements. | |
| size_t | getNoNodes () const |
| Returns the number of nodal/control points. | |
| const char * | getFieldName () const |
| Returns the name of field. | |
| virtual bool | valueNode (size_t node, Vector &vals) const |
| Computes the value at a given node/control point. More... | |
| virtual bool | valueFE (const ItgPoint &x, Vector &vals) const =0 |
| Computes the value for a given local coordinate. More... | |
| virtual bool | valueCoor (const Vec4 &x, Vector &vals) const |
| Computes the value for a given global coordinate. More... | |
| virtual bool | gradFE (const ItgPoint &x, Matrix &grad) const =0 |
| Computes the gradient for a given local coordinate. More... | |
| virtual bool | gradCoor (const Vec4 &x, Matrix &grad) const |
| Computes the gradient for a given global coordinate. More... | |
| virtual bool | hessianFE (const ItgPoint &x, Matrix3D &H) const |
| Computes the hessian for a given local coordinate. More... | |
Static Public Member Functions | |
| static Fields * | create (const ASMbase *pch, const RealArray &v, char basis=1, int nf=0, const char *name=nullptr) |
| Creates a dynamically allocated field object. More... | |
Protected Member Functions | |
| Fields (const char *name=nullptr) | |
| The constructor sets the field name. More... | |
Protected Attributes | |
| unsigned char | nf |
| Number of field components. | |
| size_t | nelm |
| Number of elements/knot-spans. | |
| size_t | nno |
| Number of nodes/control points. | |
| std::string | fname |
| Name of the field. | |
| Vector | values |
| Field values. | |
Base class for vector fields.
This class incapsulates the data and methods needed to store and evaluate a vector field. This is an abstract base class, and the fields associated with a specific field type are implemented as subclasses, for instance 1D, 2D and 3D spline formulations or Lagrange formulations.
|
inlineexplicitprotected |
|
static |
Creates a dynamically allocated field object.
| [in] | pch | The spline patch on which the field is to be defined on |
| [in] | v | Array of nodal/control point field values |
| [in] | basis | Basis to use from patch |
| [in] | nf | Number of components in field |
| [in] | name | Name of field |
References nf.
Referenced by FieldsFuncBase::addPatchField(), and SIMdependency::extractPatchDependencies().
Computes the gradient for a given global coordinate.
| [in] | x | Global coordinate of evaluation point |
| [out] | grad | Gradient at given global coordinate |
Computes the gradient for a given local coordinate.
| [in] | x | Local coordinate of evaluation point |
| [out] | grad | Gradient at local point in given element |
Implemented in SplineFields3Dmx, SplineFields3D, SplineFields2Dmx, SplineFields2D, SplineFields1D, LRSplineFields3Dmx, LRSplineFields3D, LRSplineFields2Dmx, LRSplineFields2D, LagrangeFields3D, and LagrangeFields2D.
Computes the hessian for a given local coordinate.
| [in] | x | Local coordinate of evaluation point |
| [out] | H | Hessian at local point in given element |
Reimplemented in SplineFields3Dmx, SplineFields3D, SplineFields2Dmx, SplineFields2D, SplineFields1D, LRSplineFields3Dmx, LRSplineFields3D, LRSplineFields2Dmx, and LRSplineFields2D.
Computes the value for a given global coordinate.
| [in] | x | Global/physical coordinate for point |
| [out] | vals | Values at given global coordinate |
Reimplemented in SplineFields3Dmx, SplineFields3D, SplineFields2Dmx, SplineFields2D, LRSplineFields3Dmx, LRSplineFields3D, LRSplineFields2Dmx, and LRSplineFields2D.
Computes the value for a given local coordinate.
| [in] | x | Local coordinate of evaluation point |
| [out] | vals | Values at local point in given element |
Implemented in SplineFields3Dmx, SplineFields3D, SplineFields2Dmx, SplineFields2D, SplineFields1D, LRSplineFields3Dmx, LRSplineFields3D, LRSplineFields2Dmx, LRSplineFields2D, LagrangeFields3D, and LagrangeFields2D.
Referenced by ASMs2D::evalProjSolution(), ASMs3D::evalProjSolution(), ASMu2D::evalProjSolution(), ASMu3D::evalProjSolution(), and ASMs1D::evalProjSolution().
|
virtual |
Computes the value at a given node/control point.
| [in] | node | 1-based node/control point index |
| [out] | vals | Values at given node/control point |
Reimplemented in SplineFields3Dmx, SplineFields3D, SplineFields2Dmx, SplineFields2D, LRSplineFields3Dmx, LRSplineFields3D, LRSplineFields2Dmx, LRSplineFields2D, LagrangeFields3D, and LagrangeFields2D.
References utl::vector< T >::fill(), nf, nno, utl::vector< T >::ptr(), utl::vector< T >::resize(), and values.