|
IFEM
90A354
|
Class for mixed spline-based finite element vector fields in 2D. More...
#include <SplineFields2Dmx.h>


Public Member Functions | |
| SplineFields2Dmx (const ASMs2Dmx *patch, const RealArray &v, char basis=12, const char *name=nullptr) | |
| The constructor sets the number of space dimensions and fields. More... | |
| virtual | ~SplineFields2Dmx () |
| Empty destructor. | |
| bool | valueNode (size_t node, Vector &vals) const |
| Computes the value in a given node/control point. More... | |
| virtual bool | valueCoor (const Vec4 &x, Vector &vals) const |
| Computes the value at a given global coordinate. More... | |
| bool | valueFE (const ItgPoint &x, Vector &vals) const |
| Computes the value at a given local coordinate. More... | |
| bool | gradFE (const ItgPoint &x, Matrix &grad) const |
| Computes the gradient for a given local coordinate. More... | |
| virtual bool | hessianFE (const ItgPoint &x, Matrix3D &H) const |
| Computes the hessian for a given local coordinate. More... | |
Public Member Functions inherited from Fields | |
| 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 | gradCoor (const Vec4 &x, Matrix &grad) const |
| Computes the gradient for a given global coordinate. More... | |
Protected Attributes | |
| const ASMs2Dmx * | surf |
| Patch description. | |
| std::set< int > | bases |
| Bases to use. | |
Protected Attributes inherited from Fields | |
| 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. | |
Additional Inherited Members | |
Static Public Member Functions inherited from Fields | |
| 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 inherited from Fields | |
| Fields (const char *name=nullptr) | |
| The constructor sets the field name. More... | |
Class for mixed spline-based finite element vector fields in 2D.
This class implements the methods required to evaluate a 2D mixed spline vector field at a given point in parametrical or physical coordinates.
| SplineFields2Dmx::SplineFields2Dmx | ( | const ASMs2Dmx * | patch, |
| const RealArray & | v, | ||
| char | basis = 12, |
||
| const char * | name = nullptr |
||
| ) |
The constructor sets the number of space dimensions and fields.
| [in] | patch | The spline patch on which the field is to be defined |
| [in] | v | Array of control point field values |
| [in] | basis | Bases to use from patch |
| [in] | name | Name of spline field |
References bases, utl::vector< T >::begin(), ASMs2Dmx::getNoFields(), ASMs2Dmx::getNoNodes(), Fields::nf, Fields::nno, utl::vector< T >::resize(), and Fields::values.
Computes the gradient for a given local coordinate.
| [in] | x | Local coordinate of evaluation point |
| [out] | grad | Gradient of solution in a given local coordinate |
Implements Fields.
References bases, utl::vector< T >::begin(), SplineField::evalBasis(), SplineField::evalMapping(), utl::gather(), ASMs2Dmx::getBasis(), ASMs2Dmx::getNoFields(), ASMs2Dmx::getNoNodes(), ASMbase::getNoSpaceDim(), ASMmxBase::itgBasis, utl::matrix< T >::multiply(), utl::matrix< T >::resize(), surf, ASMs2Dmx::usePiola(), and Fields::values.
Computes the hessian for a given local coordinate.
| [in] | x | Local coordinate of evaluation point |
| [out] | H | Hessian of solution in a given local coordinate |
Reimplemented from Fields.
References bases, utl::vector< T >::begin(), SplineField::evalBasis(), SplineField::evalMapping(), utl::gather(), ASMs2Dmx::getBasis(), ASMs2Dmx::getNoFields(), ASMs2Dmx::getNoNodes(), ASMbase::getNoSpaceDim(), ASMmxBase::itgBasis, utl::matrix3d< T >::multiply(), utl::matrix3d< T >::resize(), surf, ASMs2Dmx::usePiola(), and Fields::values.
Computes the value at a given global coordinate.
| [in] | x | Global/physical coordinate for point |
| [out] | vals | Values in given physical coordinate |
Reimplemented from Fields.
References ASMs2Dmx::getBasis(), ASMmxBase::itgBasis, surf, Vec4::u, valueFE(), Vec3::x, Vec3::y, and Vec3::z.
Computes the value at a given local coordinate.
| [in] | x | Local coordinate of evaluation point |
| [out] | vals | Values in local point in given element |
Implements Fields.
References bases, utl::vector< T >::begin(), ASMs2Dmx::evalSolutionPiola(), utl::gather(), ASMs2Dmx::getBasis(), ASMs2Dmx::getNoNodes(), utl::matrix< T >::multiply(), utl::vector< T >::resize(), ASMs2D::scatterInd(), surf, ItgPoint::u, ASMs2Dmx::usePiola(), ItgPoint::v, and Fields::values.
Referenced by valueCoor().
|
virtual |
Computes the value in a given node/control point.
| [in] | node | Node number |
| [out] | vals | Node values |
Reimplemented from Fields.