25 size_t Nf = cell.
faces_.size();
34 hp = (v1-v0).Norm()/2.0;
45 const auto& v0 =
grid_ptr_->vertices[v0i];
46 const auto& v1 =
grid_ptr_->vertices[v1i];
48 double perimeter = (v1 - v0).Norm();
51 for (
int i=0; i<fe_intgrl_values.
NumNodes(); i++)
75 for (
int i=0; i<fe_intgrl_values.
NumNodes(); i++)
79 for (
int fr=0; fr<Nf; fr++)
80 for (
int i=0; i<Nv; i++)
85 else if (Nf == 6 && Nv == 8)
93 <<
"Unsupported cell type in call to HPerpendicular";
105 uint64_t node_global_id)
108 bool map_found =
false;
109 for (
size_t ai=0; ai < cell.
vertex_ids_.size(); ai++)
120 throw std::logic_error(std::string(__FUNCTION__)+
": Mapping failure.");
133 const auto& ccface = cur_cell.
faces_[f];
134 std::set<uint64_t> ccface_vids;
135 for (
auto vid : ccface.vertex_ids_) ccface_vids.insert(vid);
138 bool map_found =
false;
139 for (
size_t af=0; af < adj_cell.
faces_.size(); af++)
141 const auto& acface = adj_cell.
faces_[af];
143 std::set<uint64_t> acface_vids;
144 for (
auto vid : acface.vertex_ids_) acface_vids.insert(vid);
146 if (acface_vids == ccface_vids)
155 throw std::logic_error(std::string(__FUNCTION__)+
": Mapping failure.");
157 return (
unsigned int)fmap;
static void Exit(int error_code)
static uint64_t MapCellLocalNodeIDFromGlobalID(const chi_mesh::Cell &cell, uint64_t node_global_id)
static unsigned int MapCellFace(const chi_mesh::Cell &cur_cell, const chi_mesh::Cell &adj_cell, unsigned int f)
chi_mesh::MeshContinuumPtr grid_ptr_
double HPerpendicular(const chi_mesh::Cell &cell, const UnitIntegralContainer &fe_intgrl_values, unsigned int f)
double IntV_shapeI(unsigned int i) const
double IntS_shapeI(unsigned int face, unsigned int i) const
std::vector< uint64_t > vertex_ids_
std::vector< CellFace > faces_
std::vector< uint64_t > vertex_ids_