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,
176 const EOperator operatorType)
const = 0;
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;
485 #if defined(Intrepid_SHOW_DEPRECATED_WARNINGS)
487 #warning "The Intrepid package is deprecated"
virtual ~Basis()
Destructor.
virtual EBasis getBasisType() const
Returns the basis type.
virtual const std::vector< int > & getDofTag(const int dofOrd)
DoF ordinal to DoF tag lookup.
virtual int getCardinality() const
Returns cardinality of the 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.
virtual ECoordinates getCoordinateSystem() const
Returns the type of coordinate system for which the basis is defined.
Contains definitions of custom data types in Intrepid.
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...
ECoordinates basisCoordinates_
The coordinate system for which the basis is defined.
virtual ~DofCoordsInterface()=0
Pure virtual destructor (gives warnings if not included). Following "Effective C++: 3rd Ed...
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.