14#include "arcane/cartesianmesh/NodeDirectionMng.h"
16#include "arcane/utils/FatalErrorException.h"
17#include "arcane/utils/ArgumentException.h"
18#include "arcane/utils/ITraceMng.h"
19#include "arcane/utils/Real3.h"
20#include "arcane/utils/PlatformUtils.h"
22#include "arcane/IItemFamily.h"
23#include "arcane/ItemGroup.h"
24#include "arcane/IMesh.h"
25#include "arcane/VariableTypes.h"
26#include "arcane/UnstructuredMeshConnectivity.h"
28#include "arcane/cartesianmesh/ICartesianMesh.h"
29#include "arcane/cartesianmesh/CellDirectionMng.h"
54 Integer m_patch_index = -1;
82 m_p->m_cartesian_mesh =
cm;
103 m_infos_view = m_p->m_infos.view();
116 Integer
mesh_dim = m_p->m_cartesian_mesh->
mesh()->dimension();
156 Int32
i1 = m_infos_view[
lid].m_next_lid;
157 Int32
i2 = m_infos_view[
lid].m_previous_lid;
158 if (
i1==NULL_ITEM_LOCAL_ID ||
i2==NULL_ITEM_LOCAL_ID)
163 int dir = (
int)m_direction;
165 if (m_p->m_patch_index>=0)
217void NodeDirectionMng::
227 IMesh* mesh = m_p->m_cartesian_mesh->mesh();
244 indexes.fill(DirNode::NULL_CELL);
245 for( Integer i=0; i<
nb_cell; ++i ){
305 return m_p->m_all_items;
314 return m_p->m_inner_all_items;
323 return m_p->m_outer_all_items;
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
Infos sur les mailles d'une direction spécifique X,Y ou Z d'un maillage structuré.
Maille avec info directionnelle des noeuds.
Interface d'un maillage cartésien.
virtual IMesh * mesh() const =0
Maillage associé à ce maillage cartésien.
Interface d'une famille d'entités.
virtual ItemGroup createGroup(const String &name, Int32ConstArrayView local_ids, bool do_override=false)=0
Créé un groupe d'entités de nom name contenant les entités local_ids.
virtual Integer dimension()=0
Dimension du maillage (1D, 2D ou 3D).
virtual VariableNodeReal3 & nodesCoordinates()=0
Coordonnées des noeuds.
constexpr Int32 localId() const
Identifiant local de l'entité dans le sous-domaine du processeur.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Infos sur les noeuds d'une direction spécifique X,Y ou Z d'un maillage structuré.
void _internalComputeInfos(const CellDirectionMng &cell_dm, const NodeGroup &all_nodes, const VariableCellReal3 &cells_center)
Calcule les informations sur les noeuds associées aux mailles de la direction cell_dm....
void _filterNodes()
Filtre les noeuds devant/derrière pour ne garder que les noeuds de notre patch.
NodeDirectionMng()
Créé une instance vide.
void _internalInit(ICartesianMesh *cm, eMeshDirection dir, Integer patch_index)
void _computeNodeCellInfos(const CellDirectionMng &cell_dm, const VariableCellReal3 &cells_center)
Calcul des connectivités noeuds/mailles par direction.
NodeGroup allNodes() const
Groupe de tous les noeuds dans la direction.
void _internalResizeInfos(Int32 new_size)
Redimensionne le conteneur contenant les ItemDirectionInfo.
Vue sur les informations des noeuds.
Cell cell(Int32 i) const
i-ème maille du noeud
Int32 nbCell() const
Nombre de mailles connectées au noeud.
Classe gérant un vecteur de réel de dimension 3.
Vue sur les connectivités standards d'un maillage non structuré.
Chaîne de caractères unicode.
Vecteur 1D de données avec sémantique par valeur (style STL).
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
eMeshDirection
Type de la direction pour un maillage structuré
@ MD_DirInvalid
Direction invalide ou non initialisée.
Real y
deuxième composante du triplet
Real z
troisième composante du triplet
Real x
première composante du triplet