DNDSR 0.2.1
Distributed Numeric Data Structure for CFV
Loading...
Searching...
No Matches
DNDS::Geom::InterpolateResultT< p2e_rs, e2n_rs, e2p_rs > Struct Template Reference

#include <MeshConnectivity.hpp>

Collaboration diagram for DNDS::Geom::InterpolateResultT< p2e_rs, e2n_rs, e2p_rs >:
[legend]

Public Attributes

ArrayAdjacencyPair< p2e_rs > parent2entity
 parent → entities. Father-only. Slot j = sub-entity j.
 
ArrayAdjacencyPair< e2n_rs > entity2node
 entity → nodes. Father-only. First-parent extraction order.
 
ArrayAdjacencyPair< e2p_rs > entity2parent
 
std::vector< ElemInfoentityElemInfo
 Per-entity element info (zone=0, type from SubEntityDesc::typeTag).
 
std::vector< std::vector< NodePeriodicBits > > parent2entityPbi
 
index nEntities {0}
 Total number of unique entities created.
 

Detailed Description

template<rowsize p2e_rs = NonUniformSize, rowsize e2n_rs = NonUniformSize, rowsize e2p_rs = NonUniformSize>
struct DNDS::Geom::InterpolateResultT< p2e_rs, e2n_rs, e2p_rs >

Result of interpolating (extracting) sub-entities from parent→node connectivity.

Given parent→node (e.g., cell→node), Interpolate creates intermediate entities (e.g., faces or edges) by extracting sub-entities from element topology, deduplicating by sorted vertex comparison, and building both parent→entity and entity→node adjacencies.

All indices are local (0-based within the input arrays). No MPI communication is performed — the caller is responsible for providing a complete view (local + ghost cells) and for subsequent ownership resolution / ghost exchange. Result of local (rank-only) sub-entity interpolation.

Given parent→node (e.g., cell→node), Interpolate creates intermediate entities (e.g., faces or edges) by extracting sub-entities from element topology, deduplicating by sorted vertex comparison (+ optional matchExtra for periodic), and building both parent→entity and entity→node adjacencies.

All indices are local (0-based within the input arrays). No MPI communication is performed. The caller provides a complete view (local + ghost cells) and handles subsequent ownership resolution / ghost exchange.

Ordering guarantees

  • parent2entity[iParent][j] corresponds to sub-entity j of parent iParent as defined by query.numSubEntities / query.describe / query.extractNodes.
  • entity2node[iEnt] stores nodes in the order extracted by the first parent that created entity iEnt. Later parents that find the same entity do not alter the node order.
  • entity2parent[iEnt] lists parents in discovery order (first parent first).
Template Parameters
p2e_rsRow-size of parent2entity (NonUniformSize = variable).
e2n_rsRow-size of entity2node (NonUniformSize = variable).
e2p_rsRow-size of entity2parent (NonUniformSize = variable).

Definition at line 758 of file MeshConnectivity.hpp.

Member Data Documentation

◆ entity2node

template<rowsize p2e_rs = NonUniformSize, rowsize e2n_rs = NonUniformSize, rowsize e2p_rs = NonUniformSize>
ArrayAdjacencyPair<e2n_rs> DNDS::Geom::InterpolateResultT< p2e_rs, e2n_rs, e2p_rs >::entity2node

entity → nodes. Father-only. First-parent extraction order.

Definition at line 761 of file MeshConnectivity.hpp.

◆ entity2parent

template<rowsize p2e_rs = NonUniformSize, rowsize e2n_rs = NonUniformSize, rowsize e2p_rs = NonUniformSize>
ArrayAdjacencyPair<e2p_rs> DNDS::Geom::InterpolateResultT< p2e_rs, e2n_rs, e2p_rs >::entity2parent

entity → parents. Father-only. Variable-width: 1 for boundary faces, 2 for internal faces, N for edges. Discovery order (first parent first).

Definition at line 762 of file MeshConnectivity.hpp.

◆ entityElemInfo

template<rowsize p2e_rs = NonUniformSize, rowsize e2n_rs = NonUniformSize, rowsize e2p_rs = NonUniformSize>
std::vector<ElemInfo> DNDS::Geom::InterpolateResultT< p2e_rs, e2n_rs, e2p_rs >::entityElemInfo

Per-entity element info (zone=0, type from SubEntityDesc::typeTag).

Definition at line 765 of file MeshConnectivity.hpp.

◆ nEntities

template<rowsize p2e_rs = NonUniformSize, rowsize e2n_rs = NonUniformSize, rowsize e2p_rs = NonUniformSize>
index DNDS::Geom::InterpolateResultT< p2e_rs, e2n_rs, e2p_rs >::nEntities {0}

Total number of unique entities created.

Definition at line 771 of file MeshConnectivity.hpp.

◆ parent2entity

template<rowsize p2e_rs = NonUniformSize, rowsize e2n_rs = NonUniformSize, rowsize e2p_rs = NonUniformSize>
ArrayAdjacencyPair<p2e_rs> DNDS::Geom::InterpolateResultT< p2e_rs, e2n_rs, e2p_rs >::parent2entity

parent → entities. Father-only. Slot j = sub-entity j.

Definition at line 760 of file MeshConnectivity.hpp.

◆ parent2entityPbi

template<rowsize p2e_rs = NonUniformSize, rowsize e2n_rs = NonUniformSize, rowsize e2p_rs = NonUniformSize>
std::vector<std::vector<NodePeriodicBits> > DNDS::Geom::InterpolateResultT< p2e_rs, e2n_rs, e2p_rs >::parent2entityPbi

Per-parent, per-sub pbi. Parallel to parent2entity. Populated by InterpolateGlobal Step 2b, not by InterpolateLocal itself. Empty if not periodic or if InterpolateLocal was called directly.

Definition at line 766 of file MeshConnectivity.hpp.


The documentation for this struct was generated from the following file: