Go to the documentation of this file.
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>
307 void getValues_HGRAD_Args(ArrayScalar & outputValues,
308 const ArrayScalar & inputPoints,
309 const EOperator operatorType,
310 const shards::CellTopology& cellTopo,
311 const int basisCard);
323 template<
class Scalar,
class ArrayScalar>
324 void getValues_HCURL_Args(ArrayScalar & outputValues,
325 const ArrayScalar & inputPoints,
326 const EOperator operatorType,
327 const shards::CellTopology& cellTopo,
328 const int basisCard);
340 template<
class Scalar,
class ArrayScalar>
341 void getValues_HDIV_Args(ArrayScalar & outputValues,
342 const ArrayScalar & inputPoints,
343 const EOperator operatorType,
344 const shards::CellTopology& cellTopo,
345 const int basisCard);
352 template<
class ArrayScalar>
367 virtual void getDofCoords(ArrayScalar & DofCoords)
const = 0;
virtual const shards::CellTopology getBaseCellTopology() const
Returns the base cell topology for which the basis is defined. See Shards documentation http://trilin...
std::vector< std::vector< std::vector< int > > > tagToOrdinal_
DoF tag to ordinal lookup table.
virtual int getCardinality() const
Returns cardinality of the basis.
ECoordinates
Enumeration of coordinate systems for geometrical entities (cells, points).
virtual const std::vector< std::vector< int > > & getAllDofTags()
Retrieves all DoF tags.
Contains definitions of custom data types in Intrepid.
EBasis basisType_
Type of the basis.
EBasis
Enumeration of basis types for discrete spaces in Intrepid.
virtual ECoordinates getCoordinateSystem() const
Returns the type of coordinate system for which the basis is defined.
ECoordinates basisCoordinates_
The coordinate system for which the basis is defined.
Implementation file for the abstract base class Intrepid::Basis.
An abstract base class that defines interface for concrete basis implementations for Finite Element (...
bool basisTagsAreSet_
"true" if tagToOrdinal_ and ordinalToTag_ have been initialized
virtual void getDofCoords(ArrayScalar &DofCoords) const =0
Returns spatial locations (coordinates) of degrees of freedom on a reference cell; defined for interp...
virtual void getValues(ArrayScalar &outputValues, const ArrayScalar &inputPoints, const EOperator operatorType) const =0
Evaluation of a FEM basis on a reference cell.
virtual EBasis getBasisType() const
Returns the basis type.
shards::CellTopology basisCellTopology_
Base topology of the cells for which the basis is defined. See the Shards package http://trilinos....
std::vector< std::vector< int > > ordinalToTag_
DoF ordinal to tag lookup table.
virtual int getDegree() const
Returns the degree of the basis.
virtual ~DofCoordsInterface()=0
Pure virtual destructor (gives warnings if not included). Following "Effective C++: 3rd Ed....
EOperator
Enumeration of primitive operators available in Intrepid. Primitive operators act on reconstructed fu...
int basisDegree_
Degree of the largest complete polynomial space that can be represented by the basis.
int basisCardinality_
Cardinality of the basis, i.e., the number of basis functions/degrees-of-freedom.
virtual int getDofOrdinal(const int subcDim, const int subcOrd, const int subcDofOrd)
DoF tag to ordinal lookup.
virtual const std::vector< std::vector< std::vector< int > > > & getDofOrdinalData()
DoF tag to ordinal data structure.
virtual const std::vector< int > & getDofTag(const int dofOrd)
DoF ordinal to DoF tag lookup.
This is an interface class for bases whose degrees of freedom can be associated with spatial location...
virtual void initializeTags()=0
Initializes tagToOrdinal_ and ordinalToTag_ lookup arrays.
virtual ~Basis()
Destructor.