13#include "Phalanx_KokkosDeviceTypes.hpp"
29class BasisCoordsGenerator :
30 public PointGenerator {
32 BasisCoordsGenerator(
const int basis_order,
const std::string & basis_type)
35 virtual ~BasisCoordsGenerator() =
default;
37 virtual Kokkos::DynRankView<double> getPoints(
const shards::CellTopology & topo)
const override
39 Teuchos::RCP<Intrepid2::Basis<PHX::Device::execution_space,double,double> >
40 intrepid_basis = createIntrepid2Basis<PHX::Device::execution_space,double,double>(_basis_type,_basis_order,topo);
42 Kokkos::DynRankView<double> view(_basis_type+
"_ref_coords",intrepid_basis->getCardinality(),topo.getDimension());
44 intrepid_basis->getDofCoords(view);
49 virtual int numPoints(
const shards::CellTopology & topo)
const override
51 Teuchos::RCP<Intrepid2::Basis<PHX::Device::execution_space,double,double> >
52 intrepid_basis = createIntrepid2Basis<PHX::Device::execution_space,double,double>(_basis_type,_basis_order,topo);
53 return intrepid_basis->getCardinality();
56 virtual bool hasPoints(
const shards::CellTopology & topo)
const override
67 BasisCoordsGenerator();
68 BasisCoordsGenerator(
const BasisCoordsGenerator &);
78 _key = std::hash<BasisDescriptor>{}(*this);
85 _key = std::hash<BasisDescriptor>{}(*this);
117 std::size_t seed = 0;
int getOrder() const
Get order of basis.
std::string _basis_type
Basis type (HGrad, HDiv, HCurl, HVol)
const std::string & getType() const
Get type of basis.
PointDescriptor getPointDescriptor() const
Build a point descriptor that builds reference points for the DOF locations. This method throws if no...
BasisDescriptor()
Constructor for empty basis.
bool operator==(const panzer::BasisDescriptor &left, const panzer::BasisDescriptor &right)
void hash_combine(std::size_t &seed, const T &v)