12#ifndef ARCANE_CARTESIANMESH_CARTESIANCONNECTIVITY_H
13#define ARCANE_CARTESIANMESH_CARTESIANCONNECTIVITY_H
17#include "arcane/utils/TraceAccessor.h"
18#include "arcane/core/Item.h"
20#include "arcane/cartesianmesh/CartesianMeshGlobal.h"
92 void fill(Int32 i) { v[0] = v[1] = v[2] = v[3] = v[4] = v[5] = v[6] = v[7] = i; }
107 ePosition permutation[3][8];
226 const Permutation* permutation);
234 ARCCORE_HOST_DEVICE NodeLocalId _cellToNodeLocalId(CellLocalId c, ePosition p)
const
236 return NodeLocalId(m_cells_to_node[c].v[p]);
238 ARCCORE_HOST_DEVICE CellLocalId _nodeToCellLocalId(NodeLocalId n,
Int32 dir, ePosition p)
const
240 ARCCORE_CHECK_AT(dir, 3);
241 return _nodeToCellLocalId(n, m_permutation->permutation[dir][p]);
243 ARCCORE_HOST_DEVICE NodeLocalId _cellToNodeLocalId(CellLocalId c,
Int32 dir, ePosition p)
const
245 ARCCORE_CHECK_AT(dir, 3);
246 return _cellToNodeLocalId(c, m_permutation->permutation[dir][p]);
248 Cell _nodeToCell(Node n, ePosition p)
const {
return m_cells[m_nodes_to_cell[n.localId()].v[p]]; }
249 Node _cellToNode(Cell c, ePosition p)
const {
return m_nodes[m_cells_to_node[c.localId()].v[p]]; }
254 Index& _index(Node n) {
return m_nodes_to_cell[n.localId()]; }
255 Index& _index(Cell c) {
return m_cells_to_node[c.localId()]; }
259 ArrayView<Index> m_nodes_to_cell;
260 ArrayView<Index> m_cells_to_node;
261 CellInfoListView m_cells;
262 NodeInfoListView m_nodes;
263 const Permutation* m_permutation =
nullptr;
267 void _computeInfos2D(IMesh* mesh, VariableNodeReal3& nodes_coord, VariableCellReal3& cells_coord);
268 void _computeInfos3D(IMesh* mesh, VariableNodeReal3& nodes_coord, VariableCellReal3& cells_coord);
283 using Index = CartesianConnectivity::Index;
Classe d'accès aux connectivités cartésiennes.
Informations de connectivité d'un maillage cartésien.
__host__ __device__ NodeLocalId upperLeftId(CellLocalId c) const
Noeud en haut à gauche de la maille c.
__host__ __device__ CellLocalId topZLowerLeftId(NodeLocalId n, Int32 dir) const
En 3D, maille en bas à gauche du noeud n pour la direction dir.
__host__ __device__ CellLocalId lowerRightId(NodeLocalId n, Int32 dir) const
Maille en bas à droite du noeud n pour la direction dir.
Node topZLowerLeft(Cell c) const
En 3D, noeud au dessus en bas à gauche de la maille c.
Cell lowerRight(Node n) const
Maille en bas à droite du noeud n.
Node upperRight(Cell c) const
Noeud en haut à droite de la maille c.
__host__ __device__ NodeLocalId upperRightId(CellLocalId c, Int32 dir) const
Noeud en haut à droite de la maille c pour la direction dir.
__host__ __device__ NodeLocalId topZUpperRightId(CellLocalId c, Int32 dir) const
En 3D, noeud au dessus en haut à droite de la maille c pour la direction dir.
__host__ __device__ NodeLocalId topZUpperLeftId(CellLocalId c) const
En 3D, noeud au dessus en haut à gauche de la maille c.
__host__ __device__ NodeLocalId lowerLeftId(CellLocalId c) const
Noeud en bad à gauche de la maille c.
__host__ __device__ CellLocalId topZUpperLeftId(NodeLocalId n) const
En 3D, maille en haut à gauche du noeud n.
Cell upperLeft(Node n) const
Maille en haut à gauche du noeud n.
__host__ __device__ NodeLocalId upperRightId(CellLocalId c) const
Noeud en haut à droite de la maille c.
__host__ __device__ NodeLocalId topZLowerRightId(CellLocalId c, Int32 dir) const
En 3D, noeud au dessus en bas à droite de la maille c pour la direction dir.
Node upperLeft(Cell c) const
Noeud en haut à gauche de la maille c.
__host__ __device__ CellLocalId topZUpperLeftId(NodeLocalId n, Int32 dir) const
En 3D, maille en haut à gauche du noeud n pour la direction dir.
__host__ __device__ CellLocalId topZUpperRightId(NodeLocalId n, Int32 dir) const
En 3D, maille en haut à droite du noeud n pour la direction dir.
__host__ __device__ NodeLocalId topZLowerLeftId(CellLocalId c) const
En 3D, noeud au dessus en bas à gauche de la maille c.
Cell topZUpperRight(Node n) const
En 3D, maille en haut à droite du noeud n.
__host__ __device__ CellLocalId topZUpperRightId(NodeLocalId n) const
En 3D, maille en haut à droite du noeud n.
__host__ __device__ CellLocalId lowerLeftId(NodeLocalId n) const
Maille en bas à gauche du noeud n.
__host__ __device__ CellLocalId upperRightId(NodeLocalId n) const
Maille en haut à droite du noeud n.
__host__ __device__ NodeLocalId topZUpperRightId(CellLocalId c) const
En 3D, noeud au dessus en haut à droite de la maille c.
__host__ __device__ CellLocalId lowerRightId(NodeLocalId n) const
Maille en bas à droite du noeud n.
__host__ __device__ NodeLocalId topZLowerRightId(CellLocalId c) const
En 3D, noeud au dessus en bas à droite de la maille c.
Cell lowerLeft(Node n) const
Maille en bas à gauche du noeud n.
Cell topZLowerRight(Node n) const
En 3D, maille en bas à droite du noeud n.
__host__ __device__ NodeLocalId lowerRightId(CellLocalId c) const
Noeud en bas à droite de la maille c.
__host__ __device__ NodeLocalId lowerLeftId(CellLocalId c, Int32 dir) const
Noeud en bad à gauche de la maille c pour la direction dir.
Cell topZLowerLeft(Node n) const
En 3D, maille en bas à gauche du noeud n.
Node topZUpperRight(Cell c) const
En 3D, noeud au dessus en haut à droite de la maille c.
__host__ __device__ CellLocalId topZLowerRightId(NodeLocalId n, Int32 dir) const
En 3D, maille en bas à droite du noeud n pour la direction dir.
Node lowerLeft(Cell c) const
Noeud en bad à gauche de la maille c.
__host__ __device__ NodeLocalId topZUpperLeftId(CellLocalId c, Int32 dir) const
En 3D, noeud au dessus en haut à gauche de la maille c pour la direction dir.
Cell upperRight(Node n) const
Maille en haut à droite du noeud n.
__host__ __device__ NodeLocalId upperLeftId(CellLocalId c, Int32 dir) const
Noeud en haut à gauche de la maille c pour la direction dir.
Node topZUpperLeft(Cell c) const
En 3D, noeud au dessus en haut à gauche de la maille c.
__host__ __device__ CellLocalId lowerLeftId(NodeLocalId n, Int32 dir) const
Maille en bas à gauche du noeud n pour la direction dir.
Node lowerRight(Cell c) const
Noeud en bas à droite de la maille c.
Node topZLowerRight(Cell c) const
En 3D, noeud au dessus en bas à droite de la maille c.
__host__ __device__ NodeLocalId lowerRightId(CellLocalId c, Int32 dir) const
Noeud en bas à droite de la maille c pour la direction dir.
Cell topZUpperLeft(Node n) const
En 3D, maille en haut à gauche du noeud n.
__host__ __device__ CellLocalId upperLeftId(NodeLocalId n, Int32 dir) const
Maille en haut à gauche du noeud n pour la direction dir.
__host__ __device__ NodeLocalId topZLowerLeftId(CellLocalId c, Int32 dir) const
En 3D, noeud au dessus en bas à gauche de la maille c pour la direction dir.
__host__ __device__ CellLocalId topZLowerRightId(NodeLocalId n) const
En 3D, maille en bas à droite du noeud n.
__host__ __device__ CellLocalId topZLowerLeftId(NodeLocalId n) const
En 3D, maille en bas à gauche du noeud n.
__host__ __device__ CellLocalId upperLeftId(NodeLocalId n) const
Maille en haut à gauche du noeud n.
__host__ __device__ CellLocalId upperRightId(NodeLocalId n, Int32 dir) const
Maille en haut à droite du noeud n pour la direction dir.
Infos spécifiques à un maillage cartésien.
Référence à une instance.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-