14 #ifndef _BASIS_FUNCTION_CACHE_H
15 #define _BASIS_FUNCTION_CACHE_H
61 const std::array<int,Dim>&
nGauss(
bool reduced =
false)
66 const std::array<const double*,Dim>&
weight(
bool reduced =
false)
const
71 const std::array<const double*,Dim>&
coord(
bool reduced =
false)
const
82 virtual double getParam(
int dir,
size_t el,
size_t gp,
bool reduced =
false)
const;
92 std::array<int,Dim>
ng;
93 std::array<const double*,Dim>
xg;
94 std::array<const double*,Dim>
wg;
95 std::array<RealArray,Dim>
gpar;
115 bool reduced =
false)
const = 0;
124 virtual size_t index (
size_t el,
size_t gp,
bool reduced)
const;
129 std::array<size_t,Dim>
gpIndex(
size_t gp,
bool reduced)
const;
Basis function values container.
Base class for basis function caches.
Definition: BasisFunctionCache.h:31
BasisFunctionCache()
Default constructor.
Definition: BasisFunctionCache.C:22
std::shared_ptr< Quadrature > mainQ
Main quadrature information.
Definition: BasisFunctionCache.h:136
void setIntegrand(const Integrand *itg)
Defines the integrand to be used.
Definition: BasisFunctionCache.h:57
bool init(int nd)
Initialize the basis function cache according to policy.
Definition: BasisFunctionCache.C:36
size_t nTotalRed
Total number of reduced integration points.
Definition: BasisFunctionCache.h:140
std::shared_ptr< Quadrature > reducedQ
Reduced quadrature information.
Definition: BasisFunctionCache.h:137
void clear()
Clears the basis function cache.
Definition: BasisFunctionCache.C:62
int basis
Basis to use.
Definition: BasisFunctionCache.h:84
std::vector< BasisFunctionVals > valuesRed
Cache for reduced quadrature.
Definition: BasisFunctionCache.h:132
virtual double getParam(int dir, size_t el, size_t gp, bool reduced=false) const
Obtain a single integration point parameter.
Definition: BasisFunctionCache.C:98
const std::array< const double *, Dim > & coord(bool reduced=false) const
Return integration scheme nodes.
Definition: BasisFunctionCache.h:71
virtual bool internalInit()=0
Class-specified initialization.
const std::array< const double *, Dim > & weight(bool reduced=false) const
Return integration scheme weights.
Definition: BasisFunctionCache.h:66
virtual size_t index(size_t el, size_t gp, bool reduced) const
Obtain global integration point index.
Definition: BasisFunctionCache.C:108
virtual ~BasisFunctionCache()=default
Empty destructor.
const BasisFunctionVals & getVals(size_t el, size_t gp, bool reduced=false)
Obtain basis function values/derivatives in an integration point.
Definition: BasisFunctionCache.C:76
const std::array< int, Dim > & nGauss(bool reduced=false)
Returns number of integration points.
Definition: BasisFunctionCache.h:61
int nderiv
Number of derivatives.
Definition: BasisFunctionCache.h:134
std::array< size_t, Dim > gpIndex(size_t gp, bool reduced) const
Obtain structured integration point indices.
Definition: BasisFunctionCache.C:121
virtual BasisFunctionVals calculatePt(size_t el, size_t gp, bool reduced=false) const =0
Calculates basis function info in a single integration point.
std::vector< BasisFunctionVals > values
Cache for main quadrature.
Definition: BasisFunctionCache.h:131
virtual void calculateAll()=0
Calculates basis function info in all integration points.
bool hasReduced() const
Returns whether or not a reduced quadrature is enabled.
Definition: BasisFunctionCache.h:75
void resizeThreadBuffers()
Called if application changes number of threads.
Definition: BasisFunctionCache.C:134
size_t nTotal
Total number of main integration points.
Definition: BasisFunctionCache.h:139
const Integrand * integrand
Integrand to use.
Definition: BasisFunctionCache.h:133
Abstract base class representing a system level integrated quantity.
Definition: Integrand.h:44
Template struct holding information about a quadrature.
Definition: BasisFunctionCache.h:91
std::array< RealArray, Dim > gpar
Global integration point parameters.
Definition: BasisFunctionCache.h:95
void reset()
Clears out configured quadrature.
Definition: BasisFunctionCache.h:98
std::array< const double *, Dim > wg
Integration scheme weights.
Definition: BasisFunctionCache.h:94
std::array< int, Dim > ng
Number of integration point in each dimension.
Definition: BasisFunctionCache.h:92
std::array< const double *, Dim > xg
Integration scheme nodes.
Definition: BasisFunctionCache.h:93
Struct holding basis function values and derivatives.
Definition: BasisFunctionVals.h:25