Arcane  v3.16.0.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
AMRZonePosition.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2025 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* AMRZonePosition.h (C) 2000-2025 */
9/* */
10/* Definition d'une zone 2D ou 3D d'un maillage. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CARTESIANMESH_AMRBOXPOSITION_H
13#define ARCANE_CARTESIANMESH_AMRBOXPOSITION_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/Real3.h"
18#include "arcane/core/VariableTypes.h"
19#include "arcane/cartesianmesh/CartesianMeshGlobal.h"
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane
25{
26
27class ICartesianMesh;
28
29/*---------------------------------------------------------------------------*/
30/*---------------------------------------------------------------------------*/
31
32/*!
33 * \brief Classe permettant de définir une zone d'un maillage.
34 */
35class ARCANE_CARTESIANMESH_EXPORT AMRZonePosition
36{
37 public:
38
39 /*!
40 * \brief Constructeur de zone 3D.
41 * \param position La position géométrique de la zone.
42 * \param length La taille de la zone.
43 */
45 : m_position(position)
46 , m_length(length)
47 , m_is_3d(true)
48 {}
49
50 /*!
51 * \brief Constructeur de zone 2D.
52 * \param position La position géométrique de la zone.
53 * \param length La taille de la zone.
54 */
56 : m_position(position)
57 , m_length(length)
58 , m_is_3d(false)
59 {}
60
61 public:
62
63 /*!
64 * \brief Méthode permettant de retrouver la position de la zone.
65 * \return La position géométrique de la zone.
66 */
68 {
69 return m_position;
70 }
71
72 /*!
73 * \brief Méthode permettant de retrouver la taille de la zone.
74 * \return La taille de la zone.
75 */
76 Real3 length() const
77 {
78 return m_length;
79 }
80
81 /*!
82 * \brief Méthode permettant de savoir si c'est une zone 2D ou 3D.
83 * \return True si c'est une zone 3D.
84 */
85 bool is3d() const
86 {
87 return m_is_3d;
88 }
89
90 /*!
91 * \brief Méthode permettant de retrouver les mailles incluses dans la zone.
92 * \param mesh Le maillage.
93 * \param cells_local_id Le tableau qui contiendra les localIds des mailles de la zone.
94 * Attention : le tableau sera d'abord effacé.
95 */
96 void cellsInPatch(IMesh* mesh, SharedArray<Int32> cells_local_id) const;
97
98 private:
99 Real3 m_position;
100 Real3 m_length;
101 bool m_is_3d;
102};
103
104/*---------------------------------------------------------------------------*/
105/*---------------------------------------------------------------------------*/
106
107} // End namespace Arcane
108
109/*---------------------------------------------------------------------------*/
110/*---------------------------------------------------------------------------*/
111
112#endif
113
Real3 length() const
Méthode permettant de retrouver la taille de la zone.
bool is3d() const
Méthode permettant de savoir si c'est une zone 2D ou 3D.
AMRZonePosition(const Real3 &position, const Real3 &length)
Constructeur de zone 3D.
Real3 position() const
Méthode permettant de retrouver la position de la zone.
AMRZonePosition(const Real2 &position, const Real2 &length)
Constructeur de zone 2D.
Interface d'un maillage cartésien.
Classe gérant un vecteur de réel de dimension 2.
Definition Real2.h:121
Classe gérant un vecteur de réel de dimension 3.
Definition Real3.h:132
Vecteur 1D de données avec sémantique par référence.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-