43 #include "PanzerDiscFE_config.hpp"
52 using Teuchos::rcp_dynamic_cast;
61 std::vector<std::string> elementBlockIds;
62 std::vector<shards::CellTopology> elementBlockTopologies;
68 numElementBlocks != static_cast<int>(elementBlockIds.size()) &&
69 numElementBlocks != static_cast<int>(elementBlockTopologies.size()),
71 "panzer::buildIntrepidOrientation: Number of element blocks does not match to element block meta data");
74 const auto cellTopo = elementBlockTopologies.at(0);
75 const int numVertexPerCell = cellTopo.getVertexCount();
82 for (
int i=0;i<numElementBlocks;++i) {
86 orientation.resize(total_elems);
88 for (
int i=0;i<numElementBlocks;++i) {
90 const auto &elementBlock = connMgr.
getElementBlock(elementBlockIds.at(i));
92 const int numElementsPerBlock = elementBlock.size();
95 for (
int c=0;c<numElementsPerBlock;++c) {
96 const int localCellId = elementBlock.at(c);
97 Kokkos::View<const panzer::GlobalOrdinal*, Kokkos::DefaultHostExecutionSpace>
99 orientation[localCellId] = (Intrepid2::Orientation::getOrientation(cellTopo, nodes));
107 using Teuchos::rcp_dynamic_cast;
111 auto orientation =
rcp(
new std::vector<Intrepid2::Orientation>);
117 if (ugi!=Teuchos::null) {
118 const auto connMgr = ugi->
getConnManager()->noConnectivityClone();
121 "panzer::buildIntrepidOrientation: ConnManager is null!");
129 "panzer::buildIntrepidOrientation: Could not cast GlobalIndexer");
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
void buildIntrepidOrientation(std::vector< Intrepid2::Orientation > &orientation, panzer::ConnManager &connMgr)
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
virtual const std::vector< LocalOrdinal > & getElementBlock(const std::string &blockID) const =0
virtual void getElementBlockIds(std::vector< std::string > &elementBlockIds) const =0
virtual Teuchos::RCP< const ConnManager > getConnManager() const =0
Returns the connection manager currently being used.
Pure virtual base class for supplying mesh connectivity information to the DOF Manager.
virtual void getElementBlockTopologies(std::vector< shards::CellTopology > &elementBlockTopologies) const =0
virtual std::size_t numElementBlocks() const =0
virtual void buildConnectivity(const FieldPattern &fp)=0
virtual const GlobalOrdinal * getConnectivity(LocalOrdinal localElmtId) const =0