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

Implementation of basis function cache. More...

#include <ASMs2D.h>

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

Public Member Functions

 BasisFunctionCache (const ASMs2D &pch)
 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.
 
const std::array< size_t, 2 > & noElms () const
 Returns number of elements in each direction.
 
- Public Member Functions inherited from BasisFunctionCache< 2 >
 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...
 
void calculateAll () override
 Calculates basis function info in all integration points.
 
size_t index (size_t el, size_t gp, bool reduced) const override
 Obtain global integration point index. More...
 
virtual void setupParameters ()
 Setup integration point parameters.
 
bool setupQuadrature ()
 Configure quadratures.
 
- Protected Member Functions inherited from BasisFunctionCache< 2 >
std::array< size_t, Dim > gpIndex (size_t gp, bool reduced) const
 Obtain structured integration point indices. More...
 

Protected Attributes

const ASMs2Dpatch
 Reference to patch cache is for.
 
std::array< size_t, 2 > nel {}
 Number of elements in each direction.
 
- Protected Attributes inherited from BasisFunctionCache< 2 >
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

std::array< size_t, 2 > elmIndex (size_t el) const
 Obtain structured element indices. More...
 

Additional Inherited Members

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

Detailed Description

Implementation of basis function cache.

Constructor & Destructor Documentation

◆ BasisFunctionCache() [1/2]

ASMs2D::BasisFunctionCache::BasisFunctionCache ( const ASMs2D pch)

The constructor initializes the class.

Parameters
pchPatch the cache is for

References nel, patch, and ASMs2D::surf.

◆ BasisFunctionCache() [2/2]

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

Constructor reusing quadrature info from another instance.

Parameters
cacheInstance holding quadrature information
bBasis to use

References BasisFunctionCache< 2 >::basis.

Member Function Documentation

◆ calculatePt()

BasisFunctionVals ASMs2D::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< 2 >.

Reimplemented in ASMs2DmxLag::BasisFunctionCache, and ASMs2DLag::BasisFunctionCache.

References BasisFunctionVals::d2Ndu2, BasisFunctionVals::d3Ndu3, BasisFunctionVals::dNdu, SplineUtils::extractBasis(), BasisFunctionVals::N, and PROFILE2.

◆ elmIndex()

std::array< size_t, 2 > ASMs2D::BasisFunctionCache::elmIndex ( size_t  el) const
private

Obtain structured element indices.

Parameters
elGlobal element index

References ASMbase::nel.

◆ index()

size_t ASMs2D::BasisFunctionCache::index ( size_t  el,
size_t  gp,
bool  reduced 
) const
overrideprotectedvirtual

Obtain global integration point index.

Parameters
elElement of integration point (0-indexed)
gpIntegration point on element (0-indexed)
reducedTrue to return index for reduced quadrature

Reimplemented from BasisFunctionCache< 2 >.

Reimplemented in ASMs2DLag::BasisFunctionCache.

References ASMbase::nel.


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