49 #ifndef INTREPID_BASIS_HPP 50 #define INTREPID_BASIS_HPP 51 #include "Intrepid_ConfigDefs.hpp" 54 #include "Shards_CellTopology.hpp" 88 template<
class Scalar,
class ArrayScalar>
174 virtual void getValues(ArrayScalar & outputValues,
175 const ArrayScalar & inputPoints,
198 virtual void getValues(ArrayScalar & outputValues,
199 const ArrayScalar & inputPoints,
200 const ArrayScalar & cellVertices,
201 const EOperator operatorType = OPERATOR_VALUE)
const = 0;
249 const int subcDofOrd);
252 virtual const std::vector<std::vector<std::vector<int> > > &
getDofOrdinalData( );
265 virtual const std::vector<int>&
getDofTag(
const int dofOrd);
276 virtual const std::vector<std::vector<int> >&
getAllDofTags();
306 template<
class Scalar,
class ArrayScalar>
308 const ArrayScalar & inputPoints,
310 const shards::CellTopology& cellTopo,
311 const int basisCard);
323 template<
class Scalar,
class ArrayScalar>
325 const ArrayScalar & inputPoints,
327 const shards::CellTopology& cellTopo,
328 const int basisCard);
340 template<
class Scalar,
class ArrayScalar>
342 const ArrayScalar & inputPoints,
344 const shards::CellTopology& cellTopo,
345 const int basisCard);
352 template<
class ArrayScalar>
367 virtual void getDofCoords(ArrayScalar & DofCoords)
const = 0;
virtual int getCardinality() const
Returns cardinality of the basis.
virtual ~Basis()
Destructor.
virtual const std::vector< int > & getDofTag(const int dofOrd)
DoF ordinal to DoF tag lookup.
void getValues_HDIV_Args(ArrayScalar &outputValues, const ArrayScalar &inputPoints, const EOperator operatorType, const shards::CellTopology &cellTopo, const int basisCard)
Runtime check of the arguments for the getValues method in an HDIV-conforming FEM basis...
This is an interface class for bases whose degrees of freedom can be associated with spatial location...
EBasis basisType_
Type of the basis.
virtual const std::vector< std::vector< int > > & getAllDofTags()
Retrieves all DoF tags.
void getValues_HCURL_Args(ArrayScalar &outputValues, const ArrayScalar &inputPoints, const EOperator operatorType, const shards::CellTopology &cellTopo, const int basisCard)
Runtime check of the arguments for the getValues method in an HCURL-conforming FEM basis...
Contains definitions of custom data types in Intrepid.
virtual ECoordinates getCoordinateSystem() const
Returns the type of coordinate system for which the basis is defined.
bool basisTagsAreSet_
"true" if tagToOrdinal_ and ordinalToTag_ have been initialized
EOperator
Enumeration of primitive operators available in Intrepid. Primitive operators act on reconstructed fu...
void getValues_HGRAD_Args(ArrayScalar &outputValues, const ArrayScalar &inputPoints, const EOperator operatorType, const shards::CellTopology &cellTopo, const int basisCard)
Runtime check of the arguments for the getValues method in an HGRAD-conforming FEM basis...
ECoordinates basisCoordinates_
The coordinate system for which the basis is defined.
virtual EBasis getBasisType() const
Returns the basis type.
ECoordinates
Enumeration of coordinate systems for geometrical entities (cells, points).
Implementation file for the abstract base class Intrepid::Basis.
An abstract base class that defines interface for concrete basis implementations for Finite Element (...
shards::CellTopology basisCellTopology_
Base topology of the cells for which the basis is defined. See the Shards package http://trilinos...
virtual int getDegree() const
Returns the degree of the basis.
virtual int getDofOrdinal(const int subcDim, const int subcOrd, const int subcDofOrd)
DoF tag to ordinal lookup.
virtual void getValues(ArrayScalar &outputValues, const ArrayScalar &inputPoints, const EOperator operatorType) const =0
Evaluation of a FEM basis on a reference cell.
virtual const shards::CellTopology getBaseCellTopology() const
Returns the base cell topology for which the basis is defined. See Shards documentation http://trilin...
int basisDegree_
Degree of the largest complete polynomial space that can be represented by the basis.
virtual void initializeTags()=0
Initializes tagToOrdinal_ and ordinalToTag_ lookup arrays.
std::vector< std::vector< std::vector< int > > > tagToOrdinal_
DoF tag to ordinal lookup table.
int basisCardinality_
Cardinality of the basis, i.e., the number of basis functions/degrees-of-freedom. ...
virtual const std::vector< std::vector< std::vector< int > > > & getDofOrdinalData()
DoF tag to ordinal data structure.
std::vector< std::vector< int > > ordinalToTag_
DoF ordinal to tag lookup table.
EBasis
Enumeration of basis types for discrete spaces in Intrepid.