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++)
103 loc_part =
new LongIdx[init_edge_ds.lsize()];
109 unsigned int i_edg = edg.idx();
111 e_idx = edg.side(0)->element().idx();
112 if (init_edge_ds.is_local(i_edg)) {
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++) {
139 loc_part =
new LongIdx[init_side_ds.lsize()];
145 for(
SideIter side = ele.side(0); side->
side_idx() < ele->n_sides(); ++side) {
147 if (init_side_ds.is_local(is)) {
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 OLD_ASSERT( solution != NULL,
"Empty solution.\n");
231 unsigned int i_edg = side.
edge_idx();
unsigned int get_proc(unsigned int idx) const
get processor of the given index
void make_row_numberings()
LongIdx * get_row_4_el() const
unsigned int side_idx() const
Returns local index of the side on the element.
unsigned int edge_idx() const
Returns global index of the edge connected to the side.
virtual unsigned int n_elements() const
Returns count of boundary or bulk elements.
SideIter side(const unsigned int loc_index)
ElementAccessor< 3 > element() const
Returns iterator to the element of the side.
virtual ElementAccessor< 3 > element_accessor(unsigned int idx) const
Create and return ElementAccessor to element of given idx.
std::unordered_map< unsigned int, unsigned int > edge_new_local_4_mesh_idx_
void set_solution(double time, double *solution)
vector< vector< unsigned int > > elem_side_to_global
double element_scalar(ElementAccessor< 3 > &ele) const
temporary replacement for DofHandler accessor, scalar (pressure) on element
const Mesh * mesh() const
Returns pointer to the mesh.
unsigned int begin(int proc) const
get starting local index
#define START_TIMER(tag)
Starts a timer with specified tag.
unsigned int side_dof(const SideIter side) const
virtual Range< ElementAccessor< 3 > > elements_range() const
Returns range of bulk elements.
unsigned int np() const
get num of processors
unsigned int n_sides() const
Distribution * get_el_ds() const
void id_maps(int n_ids, LongIdx *id_4_old, Distribution *&new_ds, LongIdx *&id_4_loc, LongIdx *&new_4_id)
double side_flux(const Side &side) const
temporary replacement for DofHandler accessor, flux through given side
int LongIdx
Define type that represents indices of large arrays (elements, nodes, dofs etc.)
unsigned int n_edges() const
double side_scalar(const Side &side) const
temporary replacement for DofHandler accessor, scalar (pressure) on edge of the side ...
unsigned int idx() const
Return local idx of element in boundary / bulk part of element vector.
LongIdx * get_el_4_loc() const
Range< Edge > edge_range() const
Returns range of edges.
Implementation of range helper class.
unsigned int lsize(int proc) const
get local size