IFEM  90A354
Public Member Functions | Protected Attributes | List of all members
SplineFields3Dmx Class Reference

Class for mixed spline-based finite element vector fields in 3D. More...

#include <SplineFields3Dmx.h>

Inheritance diagram for SplineFields3Dmx:
Inheritance graph
[legend]
Collaboration diagram for SplineFields3Dmx:
Collaboration graph
[legend]

Public Member Functions

 SplineFields3Dmx (const ASMs3Dmx *patch, const RealArray &v, char basis=12, const char *name=nullptr)
 The constructor sets the number of space dimensions and fields. More...
 
virtual ~SplineFields3Dmx ()
 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 ASMs3Dmxsvol
 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 Fieldscreate (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...
 

Detailed Description

Class for mixed spline-based finite element vector fields in 3D.

This class implements the methods required to evaluate a 3D mixed spline vector field at a given point in parametrical or physical coordinates.

Constructor & Destructor Documentation

◆ SplineFields3Dmx()

SplineFields3Dmx::SplineFields3Dmx ( const ASMs3Dmx patch,
const RealArray v,
char  basis = 12,
const char *  name = nullptr 
)

The constructor sets the number of space dimensions and fields.

Parameters
[in]patchThe spline patch on which the field is to be defined
[in]vArray of control point field values
[in]basisBases to use from patch
[in]nameName of spline field

References bases, utl::vector< T >::begin(), ASMs3Dmx::getNoFields(), ASMs3Dmx::getNoNodes(), Fields::nf, Fields::nno, utl::vector< T >::resize(), and Fields::values.

Member Function Documentation

◆ gradFE()

bool SplineFields3Dmx::gradFE ( const ItgPoint x,
Matrix grad 
) const
virtual

Computes the gradient for a given local coordinate.

Parameters
[in]xLocal coordinate of evaluation point
[out]gradGradient of solution in a given local coordinate

Implements Fields.

References bases, utl::vector< T >::begin(), SplineField::evalBasis(), SplineField::evalMapping(), utl::gather(), ASMs3Dmx::getBasis(), ASMs3Dmx::getNoFields(), ASMs3Dmx::getNoNodes(), ASMmxBase::itgBasis, utl::matrix< T >::multiply(), utl::matrix< T >::resize(), svol, and Fields::values.

◆ hessianFE()

bool SplineFields3Dmx::hessianFE ( const ItgPoint x,
Matrix3D H 
) const
virtual

Computes the hessian for a given local coordinate.

Parameters
[in]xLocal coordinate of evaluation point
[out]HHessian of solution in a given local coordinate

Reimplemented from Fields.

References bases, utl::vector< T >::begin(), SplineField::evalBasis(), SplineField::evalMapping(), utl::gather(), ASMs3Dmx::getBasis(), ASMs3Dmx::getNoFields(), ASMs3Dmx::getNoNodes(), ASMmxBase::itgBasis, utl::matrix3d< T >::multiply(), utl::matrix3d< T >::resize(), svol, and Fields::values.

◆ valueCoor()

bool SplineFields3Dmx::valueCoor ( const Vec4 x,
Vector vals 
) const
virtual

Computes the value at a given global coordinate.

Parameters
[in]xGlobal/physical coordinate for point
[out]valsValues in given physical coordinate

Reimplemented from Fields.

References ASMs3Dmx::getBasis(), ASMmxBase::itgBasis, svol, Vec4::u, valueFE(), Vec3::x, Vec3::y, and Vec3::z.

◆ valueFE()

bool SplineFields3Dmx::valueFE ( const ItgPoint x,
Vector vals 
) const
virtual

Computes the value at a given local coordinate.

Parameters
[in]xLocal coordinate of evaluation point
[out]valsValues in local point in given element

Implements Fields.

References bases, utl::vector< T >::begin(), utl::gather(), ASMs3Dmx::getBasis(), ASMs3Dmx::getNoNodes(), utl::matrix< T >::multiply(), utl::vector< T >::resize(), ASMs3D::scatterInd(), svol, ItgPoint::u, ItgPoint::v, Fields::values, and ItgPoint::w.

Referenced by valueCoor().

◆ valueNode()

bool SplineFields3Dmx::valueNode ( size_t  node,
Vector vals 
) const
virtual

Computes the value in a given node/control point.

Parameters
[in]nodeNode number
[out]valsNode values

Reimplemented from Fields.


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