IFEM  90A354
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
ASMu3D::BasisFunctionCache Class Reference

Implementation of basis function cache. More...

#include <ASMu3D.h>

Inheritance diagram for ASMu3D::BasisFunctionCache:
Inheritance graph
[legend]
Collaboration diagram for ASMu3D::BasisFunctionCache:
Collaboration graph
[legend]

Classes

struct  BezierExtract
 Struct holding bezier extraction matrices. More...
 

Public Member Functions

 BasisFunctionCache (const ASMu3D &pch, bool useBezier=true)
 The constructor initializes the class. More...
 
 BasisFunctionCache (const BasisFunctionCache &cache, int b)
 Constructor reusing quadrature info from another instance. More...
 
virtual ~BasisFunctionCache ()=default
 Empty destructor.
 
- Public Member Functions inherited from BasisFunctionCache< 3 >
 BasisFunctionCache ()
 Default constructor.
 
 BasisFunctionCache (const BasisFunctionCache &rhs)
 Copy-constructor.
 
void clear ()
 Clears the basis function cache.
 
bool init (int nd)
 Initialize the basis function cache according to policy. More...
 
const BasisFunctionValsgetVals (size_t el, size_t gp, bool reduced=false)
 Obtain basis function values/derivatives in an integration point. More...
 
void setIntegrand (const Integrand *itg)
 Defines the integrand to be used. More...
 
const std::array< int, Dim > & nGauss (bool reduced=false)
 Returns number of integration points. More...
 
const std::array< const double *, Dim > & weight (bool reduced=false) const
 Return integration scheme weights. More...
 
const std::array< const double *, Dim > & coord (bool reduced=false) const
 Return integration scheme nodes. More...
 
bool hasReduced () const
 Returns whether or not a reduced quadrature is enabled.
 
virtual double getParam (int dir, size_t el, size_t gp, bool reduced=false) const
 Obtain a single integration point parameter. More...
 
void resizeThreadBuffers ()
 Called if application changes number of threads.
 

Protected Member Functions

bool internalInit () override
 Implementation specific initialization.
 
BasisFunctionVals calculatePt (size_t el, size_t gp, bool reduced) const override
 Calculates basis function info in a single integration point. More...
 
BasisFunctionVals calculatePrm (FiniteElement &fe, const std::array< double, 3 > &du, size_t el, size_t gp, bool reduced) const
 Calculates basis function info in a single integration point. More...
 
void calculateAll () override
 Calculates basis function info in all integration points.
 
- Protected Member Functions inherited from BasisFunctionCache< 3 >
virtual size_t index (size_t el, size_t gp, bool reduced) const
 Obtain global integration point index. More...
 
std::array< size_t, Dim > gpIndex (size_t gp, bool reduced) const
 Obtain structured integration point indices. More...
 

Protected Attributes

bool bezierEnabled
 True to enable Bezier extraction.
 
BezierExtract mainB
 Bezier extraction for main basis.
 
BezierExtract reducedB
 Bezier extraction for reduced basis.
 
const ASMu3Dpatch
 Reference to patch cache is for.
 
- Protected Attributes inherited from BasisFunctionCache< 3 >
std::vector< BasisFunctionValsvalues
 Cache for main quadrature.
 
std::vector< BasisFunctionValsvaluesRed
 Cache for reduced quadrature.
 
const Integrandintegrand
 Integrand to use.
 
int nderiv
 Number of derivatives.
 
std::shared_ptr< Quadrature > mainQ
 Main quadrature information.
 
std::shared_ptr< Quadrature > reducedQ
 Reduced quadrature information.
 
size_t nTotal
 Total number of main integration points.
 
size_t nTotalRed
 Total number of reduced integration points.
 

Private Member Functions

bool setupQuadrature ()
 Configure quadratures.
 

Additional Inherited Members

- Public Attributes inherited from BasisFunctionCache< 3 >
int basis
 Basis to use.
 

Detailed Description

Implementation of basis function cache.

Constructor & Destructor Documentation

◆ BasisFunctionCache() [1/2]

ASMu3D::BasisFunctionCache::BasisFunctionCache ( const ASMu3D pch,
bool  useBezier = true 
)

The constructor initializes the class.

Parameters
pchPatch the cache is for
useBezierTrue to use bezier extraction

◆ BasisFunctionCache() [2/2]

ASMu3D::BasisFunctionCache::BasisFunctionCache ( const BasisFunctionCache cache,
int  b 
)

Constructor reusing quadrature info from another instance.

Parameters
cacheInstance holding quadrature information
bBasis to use

References BasisFunctionCache< 3 >::basis.

Member Function Documentation

◆ calculatePrm()

BasisFunctionVals ASMu3D::BasisFunctionCache::calculatePrm ( FiniteElement fe,
const std::array< double, 3 > &  du,
size_t  el,
size_t  gp,
bool  reduced 
) const
protected

Calculates basis function info in a single integration point.

Parameters
feFinite element information in integration point
elElement of integration point (0-indexed)
duElement size in parameter space
gpIntegration point on element (0-indexed)
reducedIf true, returns values for reduced integration scheme

References BasisFunctionVals::d2Ndu2, BasisFunctionVals::dNdu, ASMu3D::BasisFunctionCache::BezierExtract::dNdu, ASMu3D::BasisFunctionCache::BezierExtract::dNdv, ASMu3D::BasisFunctionCache::BezierExtract::dNdw, utl::matrix< T >::fill(), utl::matrix< T >::fillColumn(), utl::matrix< T >::getColumn(), BasisFunctionVals::N, ASMu3D::BasisFunctionCache::BezierExtract::N, utl::matrix< T >::resize(), utl::matrix< T >::rows(), ItgPoint::u, ItgPoint::v, and ItgPoint::w.

◆ calculatePt()

BasisFunctionVals ASMu3D::BasisFunctionCache::calculatePt ( size_t  el,
size_t  gp,
bool  reduced 
) const
overrideprotectedvirtual

Calculates basis function info in a single integration point.

Parameters
elElement of integration point (0-indexed)
gpIntegration point on element (0-indexed)
reducedIf true, returns values for reduced integration scheme

Implements BasisFunctionCache< 3 >.

References PROFILE2, ItgPoint::u, ItgPoint::v, and ItgPoint::w.


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