|
IFEM
90A354
|
Base class for basis function caches. More...
#include <BasisFunctionCache.h>

Classes | |
| struct | Quadrature |
| Template struct holding information about a quadrature. More... | |
Public Member Functions | |
| BasisFunctionCache () | |
| Default constructor. | |
| BasisFunctionCache (const BasisFunctionCache &rhs) | |
| Copy-constructor. | |
| virtual | ~BasisFunctionCache ()=default |
| Empty destructor. | |
| void | clear () |
| Clears the basis function cache. | |
| bool | init (int nd) |
| Initialize the basis function cache according to policy. More... | |
| const BasisFunctionVals & | getVals (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. | |
Public Attributes | |
| int | basis = 1 |
| Basis to use. | |
Protected Member Functions | |
| virtual bool | internalInit ()=0 |
| Class-specified initialization. | |
| virtual BasisFunctionVals | calculatePt (size_t el, size_t gp, bool reduced=false) const =0 |
| Calculates basis function info in a single integration point. More... | |
| virtual void | calculateAll ()=0 |
| Calculates basis function info in all integration points. | |
| 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 | |
| std::vector< BasisFunctionVals > | values |
| Cache for main quadrature. | |
| std::vector< BasisFunctionVals > | valuesRed |
| Cache for reduced quadrature. | |
| const Integrand * | integrand = nullptr |
| Integrand to use. | |
| int | nderiv = 0 |
| Number of derivatives. | |
| std::shared_ptr< Quadrature > | mainQ |
| Main quadrature information. | |
| std::shared_ptr< Quadrature > | reducedQ |
| Reduced quadrature information. | |
| size_t | nTotal = 0 |
| Total number of main integration points. | |
| size_t | nTotalRed = 0 |
| Total number of reduced integration points. | |
Base class for basis function caches.
|
protectedpure virtual |
Calculates basis function info in a single integration point.
| el | Element of integration point (0-indexed) |
| gp | Integratin point on element (0-indexed) |
| reduced | If true, returns values for reduced integration scheme |
Implemented in ASMs3DmxLag::BasisFunctionCache, ASMs3DLag::BasisFunctionCache, ASMs2DmxLag::BasisFunctionCache, ASMs2DLag::BasisFunctionCache, ASMu3D::BasisFunctionCache, ASMu2D::BasisFunctionCache, ASMs3D::BasisFunctionCache, and ASMs2D::BasisFunctionCache.
|
inline |
Return integration scheme nodes.
| reduced | True to return reduced quadrature |
References BasisFunctionCache< Dim >::mainQ, and BasisFunctionCache< Dim >::reducedQ.
Referenced by ASMs2D::integrate(), ASMs2Dmx::integrate(), ASMs2DmxLag::integrate(), ASMs3D::integrate(), ASMs3DLag::integrate(), ASMs3Dmx::integrate(), ASMs3DmxLag::integrate(), ASMu2D::integrate(), ASMu2Dmx::integrate(), ASMu3D::integrate(), ASMu3Dmx::integrate(), and ASMs2DLag::integrateElm().
|
virtual |
Obtain a single integration point parameter.
| dir | Direction of for integration point |
| el | Element number in given direction |
| gp | Integration point in given direction |
| reduced | True to return parameter for reduced quadrature |
Reimplemented in ASMu2DLag::BasisFunctionCache, ASMs3DLag::BasisFunctionCache, and ASMs2DLag::BasisFunctionCache.
References BasisFunctionCache< Dim >::Quadrature::gpar, and BasisFunctionCache< Dim >::Quadrature::ng.
Referenced by ASMs2DLag::assembleL2matrices(), ASMs2D::integrate(), ASMs2Dmx::integrate(), ASMs2DmxLag::integrate(), ASMs3D::integrate(), ASMs3DLag::integrate(), ASMs3Dmx::integrate(), ASMs3DmxLag::integrate(), ASMu2D::integrate(), ASMu2Dmx::integrate(), ASMu3D::integrate(), ASMu3Dmx::integrate(), and ASMs2DLag::integrateElm().
| const BasisFunctionVals & BasisFunctionCache< Dim >::getVals | ( | size_t | el, |
| size_t | gp, | ||
| bool | reduced = false |
||
| ) |
Obtain basis function values/derivatives in an integration point.
| el | Element of integration point (0-indexed) |
| gp | Integratin point on element (0-indexed) |
| reduced | If true, returns values for reduced integration scheme |
References ASM::cachePolicy, and ASM::NO_CACHE.
Referenced by ASMs2DLag::assembleL2matrices(), ASMs3DLag::assembleL2matrices(), ASMs2D::integrate(), ASMs3D::integrate(), ASMs3DLag::integrate(), ASMu2D::integrate(), ASMu3D::integrate(), and ASMs2DLag::integrateElm().
|
protected |
Obtain structured integration point indices.
| gp | Global integration point |
| reduced | If true, returns values for reduced integration scheme |
|
protectedvirtual |
Obtain global integration point index.
| el | Element of integration point (0-indexed) |
| gp | Integration point on element (0-indexed) |
| reduced | If true return index for reduced integration scheme |
Reimplemented in ASMs3DLag::BasisFunctionCache, ASMs2DLag::BasisFunctionCache, ASMs3D::BasisFunctionCache, and ASMs2D::BasisFunctionCache.
References BasisFunctionCache< Dim >::Quadrature::ng.
| bool BasisFunctionCache< Dim >::init | ( | int | nd | ) |
Initialize the basis function cache according to policy.
| nd | Number of derivatives |
Referenced by ASMs2DLag::assembleL2matrices(), ASMs3DLag::assembleL2matrices(), ASMs2D::integrate(), ASMs2DLag::integrate(), ASMs3D::integrate(), ASMs3DLag::integrate(), ASMu2DLag::integrate(), ASMu2D::integrate(), and ASMu3D::integrate().
|
inline |
Returns number of integration points.
| reduced | True to return reduced quadrature |
References BasisFunctionCache< Dim >::mainQ, and BasisFunctionCache< Dim >::reducedQ.
Referenced by ASMs2DLag::assembleL2matrices(), ASMs3DLag::assembleL2matrices(), ASMs2D::integrate(), ASMs2Dmx::integrate(), ASMs2DmxLag::integrate(), ASMs3D::integrate(), ASMs3DLag::integrate(), ASMs3Dmx::integrate(), ASMs3DmxLag::integrate(), ASMu2D::integrate(), ASMu2Dmx::integrate(), ASMu3D::integrate(), ASMu3Dmx::integrate(), and ASMs2DLag::integrateElm().
|
inline |
Defines the integrand to be used.
| itg | Integrand to use |
References BasisFunctionCache< Dim >::integrand.
Referenced by ASMs2D::integrate(), ASMs2DLag::integrate(), ASMs3D::integrate(), ASMs3DLag::integrate(), ASMu2DLag::integrate(), ASMu2D::integrate(), and ASMu3D::integrate().
|
inline |
Return integration scheme weights.
| reduced | True to return reduced quadrature |
References BasisFunctionCache< Dim >::mainQ, and BasisFunctionCache< Dim >::reducedQ.
Referenced by ASMs2DLag::assembleL2matrices(), ASMs3DLag::assembleL2matrices(), ASMs2D::integrate(), ASMs2Dmx::integrate(), ASMs2DmxLag::integrate(), ASMs3D::integrate(), ASMs3DLag::integrate(), ASMs3Dmx::integrate(), ASMs3DmxLag::integrate(), ASMu2D::integrate(), ASMu2Dmx::integrate(), ASMu3D::integrate(), ASMu3Dmx::integrate(), and ASMs2DLag::integrateElm().