UniformRefinerPattern(percept::PerceptMesh& eMesh, BlockNamesType block_names = BlockNamesType()) : URP<shards::ShellLine<3>, shards::ShellLine<3> >(eMesh) { m_primaryEntityRank = m_eMesh.edge_rank(); if (m_eMesh.get_spatial_dim() == 1) m_primaryEntityRank = eMesh.element_rank(); setNeededParts(eMesh, block_names, true); }
// UniformRefinerPattern(percept::PerceptMesh& eMesh, std::string fromTopoPartName="block_1", std::string toTopoPartName="block_quad_4") // { // setNeededParts(eMesh, fromTopoPartName, toTopoPartName); // } UniformRefinerPattern(percept::PerceptMesh& eMesh, BlockNamesType block_names = BlockNamesType()) : URP<shards::Quadrilateral<4>, shards::Quadrilateral<4> >(eMesh) { m_primaryEntityRank = eMesh.face_rank(); if (m_eMesh.get_spatial_dim() == 2) m_primaryEntityRank = eMesh.element_rank(); setNeededParts(eMesh, block_names, true); }
UniformRefinerPattern(percept::PerceptMesh& eMesh, BlockNamesType block_names = BlockNamesType()) : URP<shards::Beam<2>, shards::Beam<2> >(eMesh) { // m_primaryEntityRank = m_eMesh.edge_rank(); // if (m_eMesh.get_spatial_dim() == 1) m_primaryEntityRank = eMesh.element_rank(); setNeededParts(eMesh, block_names, true); Elem::StdMeshObjTopologies::bootstrap(); }
UniformRefinerPattern(percept::PerceptMesh& eMesh, BlockNamesType block_names = BlockNamesType()) : URP<shards::Tetrahedron<4> , shards::Tetrahedron<10> >(eMesh) { m_primaryEntityRank = eMesh.element_rank(); setNeededParts(eMesh, block_names, false); Elem::StdMeshObjTopologies::bootstrap(); #if FACE_BREAKER_TET4_TET10_1 m_subDim_breaker = new UniformRefinerPattern<shards::Triangle<3>, shards::Triangle<6>, 1, SierraPort > (eMesh, block_names) ; #endif }
UniformRefinerPattern(percept::PerceptMesh& eMesh, BlockNamesType block_names = BlockNamesType()) : URP<shards::Pyramid<5> , shards::Pyramid<13> >(eMesh) { m_primaryEntityRank = eMesh.element_rank(); setNeededParts(eMesh, block_names, false); Elem::StdMeshObjTopologies::bootstrap(); #if FACE_BREAKER_P5_P13_1 m_subDim_breaker = new UniformRefinerPattern<shards::Triangle<3>, shards::Triangle<6>, 1, SierraPort > (eMesh, block_names) ; m_subDim_breaker_quad = new UniformRefinerPattern<shards::Quadrilateral<4>, shards::Quadrilateral<9>, 1, SierraPort > (eMesh, block_names); #endif }
UniformRefinerPattern(percept::PerceptMesh& eMesh, BlockNamesType block_names = BlockNamesType()) : URP<shards::Wedge<6>, shards::Wedge<6> >(eMesh) { m_primaryEntityRank = eMesh.element_rank(); setNeededParts(eMesh, block_names, true); Elem::StdMeshObjTopologies::bootstrap(); #if FACE_BREAKER_W6_W6_8 m_face_breaker = new UniformRefinerPattern<shards::Quadrilateral<4>, shards::Quadrilateral<4>, 4, SierraPort > (eMesh, block_names) ; m_face_breaker_tri = new UniformRefinerPattern<shards::Triangle<3>, shards::Triangle<3>, 4, SierraPort > (eMesh, block_names); #endif }
UniformRefinerPattern(percept::PerceptMesh& eMesh, BlockNamesType block_names = BlockNamesType()) : URP<shards::Quadrilateral<4> , shards::Quadrilateral<8> >(eMesh) { m_primaryEntityRank = m_eMesh.face_rank(); if (m_eMesh.get_spatial_dim() == 2) m_primaryEntityRank = eMesh.element_rank(); setNeededParts(eMesh, block_names, false); Elem::StdMeshObjTopologies::bootstrap(); #if EDGE_BREAKER_Q4_Q8_1 m_edge_breaker = new UniformRefinerPattern<shards::Line<2>, shards::Line<3>, 1, SierraPort > (eMesh, block_names) ; #endif }
UniformRefinerPattern(percept::PerceptMesh& eMesh, BlockNamesType block_names = BlockNamesType()) : URP<shards::Triangle<6>, shards::Triangle<6> >(eMesh) { m_primaryEntityRank = m_eMesh.face_rank(); if (m_eMesh.get_spatial_dim() == 2) m_primaryEntityRank = eMesh.element_rank(); setNeededParts(eMesh, block_names, true); Elem::StdMeshObjTopologies::bootstrap(); #if EDGE_BREAKER_T6_T6 if (m_eMesh.get_spatial_dim() == 2) m_edge_breaker = new UniformRefinerPattern<shards::Line<3>, shards::Line<3>, 2, SierraPort > (eMesh, block_names) ; else m_edge_breaker = 0; #endif }
UniformRefinerPattern(percept::PerceptMesh& eMesh, BlockNamesType block_names = BlockNamesType()) : URP<shards::ShellTriangle<6>, shards::ShellTriangle<6> >(eMesh) { if (m_eMesh.get_spatial_dim() != 3) { throw std::runtime_error("can't refine shell elements in 2D"); } m_primaryEntityRank = eMesh.element_rank(); setNeededParts(eMesh, block_names, true); Elem::StdMeshObjTopologies::bootstrap(); #if EDGE_TR6_TR6_4_BREAKER //m_edge_breaker = Teuchos::rcp( new UniformRefinerPattern<shards::Line<2>, shards::Line<2>, 2, SierraPort > (eMesh, block_names) ); if (m_eMesh.get_spatial_dim() == 3) { m_edge_breaker = new UniformRefinerPattern<shards::ShellLine<3>, shards::ShellLine<3>, 2, SierraPort > (eMesh, block_names) ; m_face_breaker = new UniformRefinerPattern<shards::Triangle<6>, shards::Triangle<6>, 4, SierraPort > (eMesh, block_names) ; } #endif }