21 #ifndef fiber_shapeset_hpp
22 #define fiber_shapeset_hpp
24 #include "../common/common.hpp"
26 #include "scalar_traits.hpp"
29 #include "../common/armadillo_fwd.hpp"
35 template <
typename ValueType>
struct BasisData;
40 template <
typename ValueType>
44 typedef typename ScalarTraits<ValueType>::RealType CoordinateType;
46 virtual ~Shapeset() {}
49 virtual int size()
const = 0;
51 virtual int order()
const = 0;
90 const arma::Mat<CoordinateType>& points,
91 LocalDofIndex localDofIndex,
92 BasisData<ValueType>& data)
const = 0;
98 virtual std::pair<const char*,int>
clCodeString (
bool isTestShapeset)
const {
99 throw std::runtime_error(
"Basis: clCodeString not implemented yet");
virtual int size() const =0
Return the number of shape functions.
virtual int order() const =0
Return the maximum polynomial order of shape functions.
virtual std::pair< const char *, int > clCodeString(bool isTestShapeset) const
Returns an OpenCL code snippet for shape function evaluation.
Definition: shapeset.hpp:98
virtual void evaluate(size_t what, const arma::Mat< CoordinateType > &points, LocalDofIndex localDofIndex, BasisData< ValueType > &data) const =0
Evaluate the shape functions making up this shapeset and/or their derivatives at specified points...