19 : d_quadOrder(order), d_elemType(element_type){};
23 const std::vector<util::Point> &nodes) {
24 throw std::runtime_error(
26 <<
"Error: For element type = " << d_elemType <<
" the map from "
27 <<
"element to reference element is not available.\n"
28 <<
"Therefore, shape function evaluation at any arbitrary point "
29 "in the element is not possible.\n");
32std::vector<std::vector<double>>
34 const std::vector<util::Point> &nodes) {
35 throw std::runtime_error(
37 <<
"Error: For element type = " << d_elemType <<
" the map from "
38 <<
"element to reference element is not available.\n"
39 <<
"Therefore, derivatives of shape function at any "
40 "arbitrary point in the element can not be computed.\n");
45 const std::vector<util::Point> &nodes) {
46 throw std::runtime_error(
48 <<
"Error: For element type = " << d_elemType <<
" the map from "
49 <<
"element to reference element is not available.\n");
54 throw std::runtime_error(
56 <<
"Error: init() of BaseElem must be implemented in inheriting "
60std::vector<fe::QuadData>
67std::vector<fe::QuadData>
virtual util::Point mapPointToRefElem(const util::Point &p, const std::vector< util::Point > &nodes)
Maps point p in a given element to the reference element and returns the mapped point.
std::vector< fe::QuadData > getQuadDatas(const std::vector< util::Point > &nodes)
Get quadrature data mapped to the physical element (N, dN/dx, x, w, J). Shared isoparametric map; typ...
BaseElem(size_t order, size_t element_type)
Constructor.
virtual std::vector< std::vector< double > > getDerShapes(const util::Point &p, const std::vector< util::Point > &nodes)
Returns the values of derivative of shape function at point p.
std::vector< fe::QuadData > getQuadPoints(const std::vector< util::Point > &nodes)
Same as getQuadDatas without transforming dN/dξ to dN/dx.
virtual std::vector< double > getShapes(const util::Point &p, const std::vector< util::Point > &nodes)
Returns the values of shape function at point p.
virtual void init()=0
Compute the quadrature points.
Collects a message with stream syntax for use in an exception.
void mapToPhysical(std::vector< QuadData > &qds, const std::vector< util::Point > &nodes, bool derivatives)
A structure to represent 3d vectors.