33 : _pane(*p), _with_ghost(with_ghost) {
35 if ( p->dimension()==2 && p->is_structured())
38 assert( !p->is_structured());
44 std::vector<int>& elists) {
47 elists.insert( elists.begin(), &
_eids[
_offsets[node_id-1]], &
_eids[_offsets[node_id]]);
52 "Not yet implemented for structured mesh with ghosts");
56 std::vector<char> nielems(n);
57 std::fill_n( nielems.begin(),
n, 4);
61 std::fill_n( nielems.begin(),
ni, 2);
62 std::fill_n( nielems.begin()+ni*(
nj-1), ni, 2);
64 for (
int i=ni;
i<ni*(
nj-1);
i+=
ni)
65 nielems[i] = nielems[i+ni-1] = 2;
67 nielems[0] = nielems[ni-1] = 1;
68 nielems[ni*
nj-
ni] = nielems[ni*
nj-1] = 1;
80 for (
int i=1,size=
_pane.size_of_elements();
i<=size; ++
i, ene.
next())
81 for (
int k=0;
k<nn; ++
k)
95 nnodes=
_pane.size_of_nodes();
96 nelems=
_pane.size_of_elements();
99 nnodes=
_pane.size_of_real_nodes();
100 nelems=
_pane.size_of_real_elements();
104 std::vector<char> nielems(nnodes);
105 std::fill_n( nielems.begin(), nnodes, 0);
108 for (
int i=1;
i<=nelems; ++
i, ene.next())
109 for (
int k=0, nn=ene.size_of_nodes();
k<nn; ++
k)
110 ++nielems[ ene[
k]-1];
122 for (
int i=1;
i<=nelems; ++
i, ene.
next())
#define MAP_END_NAMESPACE
#define COM_assertion(EX)
Error checking utility similar to the assert macro of the C language.
#define COM_assertion_msg(EX, msg)
void incident_elements(int node_id, std::vector< int > &elists)
Obtain the IDs of the elements incident on a given node.
int size_of_nodes() const
std::vector< int > _offsets
Pane_dual_connectivity(const COM::Pane *p, bool with_ghost=true)
Constructs the dual connectivity for a given pane.
#define MAP_BEGIN_NAMESPACE
void int int REAL REAL REAL *z blockDim dim * ni
Optimized version for unstructured meshes.
void construct_connectivity_unstr()
Construct dual connectivity for unstructured meshes.
void construct_connectivity_str_2()
Construct dual connectivity for 2-D structured meshes.
Optimized version for 2-D structured meshes.