11 void AssemblyValsCache::init(
const bool is_volume,
const std::vector<ElementBases> &bases,
const std::vector<ElementBases> &gbases,
const bool is_mass)
14 const int n_bases = bases.size();
15 cache.resize(n_bases);
19 for (
int e = start; e < end; ++e)
28 cache[e].compute(e, is_volume, bases[e], gbases[e]);
41 vals.compute(el_index, is_volume,
quadrature.points, basis, gbasis);
44 vals.compute(el_index, is_volume, basis, gbasis);
ElementAssemblyValues vals
void init(const bool is_volume, const std::vector< basis::ElementBases > &bases, const std::vector< basis::ElementBases > &gbases, const bool is_mass=false)
computes the basis evaluation and geometric mapping for each of the given ElementBases in bases initi...
std::vector< ElementAssemblyValues > cache
vector of basis values and geometric mapping with one entry per element
void compute(const int el_index, const bool is_volume, const basis::ElementBases &basis, const basis::ElementBases &gbasis, ElementAssemblyValues &vals) const
retrieves cached basis evaluation and geometric for the given element if it doesn't exist,...
stores per element basis values at given quadrature points and geometric mapping
Stores the basis functions for a given element in a mesh (facet in 2d, cell in 3d).
void compute_mass_quadrature(quadrature::Quadrature &quadrature) const
void maybe_parallel_for(int size, const std::function< void(int, int, int)> &partial_for)