Arcane  v4.1.2.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
AMRPatchPositionSignature.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/* AMRPatchPositionSignature.h (C) 2000-2025 */
9/* */
10/* Calcul des signatures d'une position de patch. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CARTESIANMESH_INTERNAL_AMRPATCHPOSITIONSIGNATURE_H
13#define ARCANE_CARTESIANMESH_INTERNAL_AMRPATCHPOSITIONSIGNATURE_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/cartesianmesh/CartesianMeshGlobal.h"
18
19#include "arcane/utils/UniqueArray.h"
20
21#include "arcane/cartesianmesh/AMRPatchPosition.h"
22
23/*---------------------------------------------------------------------------*/
24/*---------------------------------------------------------------------------*/
25
26namespace Arcane
27{
28
29/*---------------------------------------------------------------------------*/
30/*---------------------------------------------------------------------------*/
31
32class AMRPatchPositionSignature
33{
34 public:
35
36 AMRPatchPositionSignature();
37 AMRPatchPositionSignature(const AMRPatchPosition& patch, ICartesianMesh* cmesh, AMRPatchPositionLevelGroup* all_patches);
38 ~AMRPatchPositionSignature() = default;
39
40 private:
41
42 AMRPatchPositionSignature(const AMRPatchPosition& patch, ICartesianMesh* cmesh, AMRPatchPositionLevelGroup* all_patches, Int32 nb_cut);
43
44 public:
45
46 void compress();
47 void fillSig();
48 bool isValid() const;
49 bool canBeCut() const;
50 void compute();
51 Real efficacity() const;
52 std::pair<AMRPatchPositionSignature, AMRPatchPositionSignature> cut(Integer dim, CartCoordType cut_point) const;
53
57 AMRPatchPosition patch() const;
58 ICartesianMesh* mesh() const;
59 bool stopCut() const;
60 void setStopCut(bool stop_cut);
61 bool isComputed() const;
62
63 private:
64
65 bool m_is_null;
66 AMRPatchPosition m_patch;
67 ICartesianMesh* m_mesh;
68 Int32 m_nb_cut;
69 bool m_stop_cut;
70
72
73 bool m_have_cells;
74 bool m_is_computed;
75
79
80 AMRPatchPositionLevelGroup* m_all_patches;
81};
82
83/*---------------------------------------------------------------------------*/
84/*---------------------------------------------------------------------------*/
85
86} // End namespace Arcane
87
88/*---------------------------------------------------------------------------*/
89/*---------------------------------------------------------------------------*/
90
91#endif
Classe permettant de définir la position d'un patch dans le maillage cartésien.
Vue constante d'un tableau de type T.
Interface de gestionnaire de numérotation pour maillage cartesian.
Interface d'un maillage cartésien.
Vecteur 1D de données avec sémantique par valeur (style STL).
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Int32 Integer
Type représentant un entier.
double Real
Type représentant un réel.
std::int32_t Int32
Type entier signé sur 32 bits.