18 #include "flow/mh_dofhandler.hh"
32 side_id_4_loc(nullptr),
33 side_row_4_id(nullptr),
61 unsigned int i_side_global=0;
63 for(
unsigned int i_lside=0; i_lside < ele->n_sides(); i_lside++)
109 unsigned int i_edg = edg.idx();
111 e_idx = edg.side(0)->element().idx();
117 id_4_old[i_edg] = i_edg;
125 unsigned int loc_edge_idx=0;
126 for (
unsigned int i_el_loc = 0; i_el_loc <
el_ds->
lsize(); i_el_loc++) {
128 for (
unsigned int i = 0; i < ele->n_sides(); i++) {
145 for(
SideIter side = ele.side(0); side->
side_idx() < ele->n_sides(); ++side) {
177 int edge_shift[np], el_shift[np], side_shift[np];
185 for (i = 0; i < np; i++) {
194 for (i = 0; i < side_n_id; i++) {
199 for (i = 0; i < el_n_id; i++) {
205 for (i = 0; i < edge_n_id; i++) {
219 ASSERT_PTR( solution ).error(
"Empty solution.\n");
231 unsigned int i_edg = side.
edge_idx();
#define ASSERT_PTR(ptr)
Definition of assert macro checking non-null pointer (PTR) only for debug mode.
bool is_local(unsigned int idx) const
identify local index
unsigned int begin(int proc) const
get starting local index
unsigned int lsize(int proc) const
get local size
unsigned int get_proc(unsigned int idx) const
get processor of the given index
unsigned int np() const
get num of processors
SideIter side(const unsigned int loc_index)
unsigned int idx() const
We need this method after replacing Region by RegionIdx, and movinf RegionDB instance into particular...
double element_scalar(ElementAccessor< 3 > &ele) const
temporary replacement for DofHandler accessor, scalar (pressure) on element
std::unordered_map< unsigned int, unsigned int > edge_new_local_4_mesh_idx_
vector< vector< unsigned int > > elem_side_to_global
void set_solution(double time, double *solution)
void make_row_numberings()
double side_flux(const Side &side) const
temporary replacement for DofHandler accessor, flux through given side
double side_scalar(const Side &side) const
temporary replacement for DofHandler accessor, scalar (pressure) on edge of the side
unsigned int side_dof(const SideIter side) const
LongIdx * get_el_4_loc() const
Range< Edge > edge_range() const
Return range of edges.
unsigned int n_edges() const
LongIdx * get_row_4_el() const
Distribution * get_el_ds() const
unsigned int n_elements() const
Range< ElementAccessor< 3 > > elements_range() const
Returns range of mesh elements.
ElementAccessor< 3 > element_accessor(unsigned int idx) const
Create and return ElementAccessor to element of given idx.
unsigned int n_sides() const
void id_maps(int n_ids, LongIdx *id_4_old, Distribution *&new_ds, LongIdx *&id_4_loc, LongIdx *&new_4_id)
unsigned int side_idx() const
Returns local index of the side on the element.
const MeshBase * mesh() const
Returns pointer to the mesh.
ElementAccessor< 3 > element() const
Returns iterator to the element of the side.
unsigned int edge_idx() const
Returns global index of the edge connected to the side.
int LongIdx
Define type that represents indices of large arrays (elements, nodes, dofs etc.)
Implementation of range helper class.
#define START_TIMER(tag)
Starts a timer with specified tag.