Arcane  4.1.12.0
User documentation
Loading...
Searching...
No Matches
Arcane::NodeDirectionMng Class Reference

Info about nodes in a specific direction X, Y, or Z of a structured mesh. More...

#include <arcane/cartesianmesh/NodeDirectionMng.h>

Classes

class  Impl

Public Member Functions

 NodeDirectionMng ()
 Creates an empty instance.
DirNode node (Node n) const
 Direction node corresponding to node n.
DirNode node (NodeLocalId n) const
 Direction node corresponding to node n.
DirNode dirNode (NodeLocalId n) const
 Direction node corresponding to node n.
__host__ __device__ DirNodeLocalId dirNodeId (NodeLocalId n) const
 Direction node ID corresponding to node n.
NodeGroup allNodes () const
 Group of all nodes in the direction.
NodeGroup overlapNodes () const
 Group of all overlap nodes in the direction.
NodeGroup inPatchNodes () const
 Group of all patch nodes in the direction.
NodeGroup innerNodes () const
 Group of all inner nodes in the direction.
NodeGroup outerNodes () const
 Group of all outer nodes in the direction.
DirNode operator[] (Node n)
 Direction node corresponding to node n.
DirNode operator[] (NodeLocalId n) const
 Direction node corresponding to node n.
DirNode operator[] (NodeEnumerator inode) const
 Direction node corresponding to the node iterator inode.
eMeshDirection direction () const
 Direction value.

Protected Member Functions

void _internalComputeInfos (const CellDirectionMng &cell_dm, const NodeGroup &all_nodes, const VariableCellReal3 &cells_center)
void _internalComputeInfos (const CellDirectionMng &cell_dm, const NodeGroup &all_nodes)
void _internalInit (ICartesianMesh *cm, eMeshDirection dir, Integer patch_index)
void _internalDestroy ()
void _internalResizeInfos (Int32 new_size)
 Resizes the container holding the ItemDirectionInfo.

Detailed Description

Info about nodes in a specific direction X, Y, or Z of a structured mesh.

Definition at line 255 of file src/arcane/cartesianmesh/NodeDirectionMng.h.

Constructor & Destructor Documentation

◆ NodeDirectionMng()

Arcane::NodeDirectionMng::NodeDirectionMng ( )

Creates an empty instance.

The instance is not valid until _internalInit() has been called.

Definition at line 67 of file NodeDirectionMng.cc.

References Arcane::MD_DirInvalid.

Member Function Documentation

◆ _internalComputeInfos() [1/2]

void Arcane::NodeDirectionMng::_internalComputeInfos ( const CellDirectionMng & cell_dm,
const NodeGroup & all_nodes )
protected

Definition at line 190 of file NodeDirectionMng.cc.

◆ _internalComputeInfos() [2/2]

void Arcane::NodeDirectionMng::_internalComputeInfos ( const CellDirectionMng & cell_dm,
const NodeGroup & all_nodes,
const VariableCellReal3 & cells_center )
protected

Definition at line 115 of file NodeDirectionMng.cc.

◆ _internalDestroy()

void Arcane::NodeDirectionMng::_internalDestroy ( )
protected

Definition at line 95 of file NodeDirectionMng.cc.

◆ _internalInit()

void Arcane::NodeDirectionMng::_internalInit ( ICartesianMesh * cm,
eMeshDirection dir,
Integer patch_index )
protected

Definition at line 80 of file NodeDirectionMng.cc.

◆ _internalResizeInfos()

void Arcane::NodeDirectionMng::_internalResizeInfos ( Int32 new_size)
protected

Resizes the container holding the ItemDirectionInfo.

This invalidates current instances of NodeDirectionMng.

Definition at line 105 of file NodeDirectionMng.cc.

References Arccore::Array< T >::resize().

◆ allNodes()

NodeGroup Arcane::NodeDirectionMng::allNodes ( ) const

Group of all nodes in the direction.

Definition at line 547 of file NodeDirectionMng.cc.

◆ direction()

eMeshDirection Arcane::NodeDirectionMng::direction ( ) const
inline

Direction value.

Definition at line 405 of file src/arcane/cartesianmesh/NodeDirectionMng.h.

◆ dirNode()

DirNode Arcane::NodeDirectionMng::dirNode ( NodeLocalId n) const
inline

Direction node corresponding to node n.

Definition at line 321 of file src/arcane/cartesianmesh/NodeDirectionMng.h.

◆ dirNodeId()

__host__ __device__ DirNodeLocalId Arcane::NodeDirectionMng::dirNodeId ( NodeLocalId n) const
inline

Direction node ID corresponding to node n.

Definition at line 327 of file src/arcane/cartesianmesh/NodeDirectionMng.h.

◆ innerNodes()

NodeGroup Arcane::NodeDirectionMng::innerNodes ( ) const

Group of all inner nodes in the direction.

A node is considered inner if its previous or next node is not null.

Definition at line 574 of file NodeDirectionMng.cc.

◆ inPatchNodes()

NodeGroup Arcane::NodeDirectionMng::inPatchNodes ( ) const

Group of all patch nodes in the direction.

Patch nodes are nodes that do not have all their cells as overlap cells. TODO reformulate (innerNodes() + outerNodes() or simply !overlapNodes())

Warning
Nodes at the domain boundary (i.e., having only "outer" cells) are included in this group.

Definition at line 565 of file NodeDirectionMng.cc.

◆ node() [1/2]

DirNode Arcane::NodeDirectionMng::node ( Node n) const
inline

Direction node corresponding to node n.

Definition at line 309 of file src/arcane/cartesianmesh/NodeDirectionMng.h.

References Arcane::Item::localId().

◆ node() [2/2]

DirNode Arcane::NodeDirectionMng::node ( NodeLocalId n) const
inline

Direction node corresponding to node n.

Definition at line 315 of file src/arcane/cartesianmesh/NodeDirectionMng.h.

◆ operator[]() [1/3]

DirNode Arcane::NodeDirectionMng::operator[] ( Node n)
inline

Direction node corresponding to node n.

Definition at line 387 of file src/arcane/cartesianmesh/NodeDirectionMng.h.

References Arcane::Item::localId().

◆ operator[]() [2/3]

DirNode Arcane::NodeDirectionMng::operator[] ( NodeEnumerator inode) const
inline

Direction node corresponding to the node iterator inode.

Definition at line 399 of file src/arcane/cartesianmesh/NodeDirectionMng.h.

References Arcane::ItemEnumeratorBase::itemLocalId().

◆ operator[]() [3/3]

DirNode Arcane::NodeDirectionMng::operator[] ( NodeLocalId n) const
inline

Direction node corresponding to node n.

Definition at line 393 of file src/arcane/cartesianmesh/NodeDirectionMng.h.

◆ outerNodes()

NodeGroup Arcane::NodeDirectionMng::outerNodes ( ) const

Group of all outer nodes in the direction.

A node is considered outer if its previous or next node is overlap or is null (if it is at the domain boundary or if there are no overlap cell layers).

Note
Nodes between patches are not duplicated. Therefore, some nodes in this group may also be in an outerNodes() of another patch.

Definition at line 583 of file NodeDirectionMng.cc.

◆ overlapNodes()

NodeGroup Arcane::NodeDirectionMng::overlapNodes ( ) const

Group of all overlap nodes in the direction.

An overlap node is a node that only has overlap cells around it.

0 1 2 3 4 ┌───┬──┬──┬──┬──┐ │ │ │ │ │ │ │ ├──┼──┼──┼──┤ │ │ │ │ │ │ └───┴──┴──┴──┴──┘

0 : level -1 1 and 2 : Overlap cells (overlapCells) 3 : Outer cells (outerCells) 4 : Inner cells (innerCells)

The overlap cell layer designates the layer of cells of the same level around the patch. These cells may belong to one or more patches.

Definition at line 556 of file NodeDirectionMng.cc.


The documentation for this class was generated from the following files: