Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
GeomShapeOperation.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 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/* GeomShapeOperation.h (C) 2000-2014 */
9/* */
10/* Opération sur une forme géométrique. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_GEOMETRIC_GEOMETRICOPERATION_H
13#define ARCANE_GEOMETRIC_GEOMETRICOPERATION_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/TraceAccessor.h"
18
19#include "arcane/AbstractItemOperationByBasicType.h"
20
21#include "arcane/geometric/GeomShapeView.h"
22#include "arcane/geometric/GeomShapeMng.h"
23
24/*---------------------------------------------------------------------------*/
25/*---------------------------------------------------------------------------*/
26
27ARCANE_BEGIN_NAMESPACE
28GEOMETRIC_BEGIN_NAMESPACE
29
30/*---------------------------------------------------------------------------*/
31/*---------------------------------------------------------------------------*/
63template<typename OperationFunction>
66{
67 public:
77 template<typename ... BuildArgs>
79 : m_shape_mng(shape_mng),
80 m_operation_function(compute_function_args ...)
81 {
82 }
83
84 template<typename ShapeType>
85 void apply(ItemVectorView cells)
86 {
87 ShapeType generic;
89 Cell cell = *i_cell;
90 m_shape_mng.initShape(generic,cell);
91 m_operation_function.apply(generic);
92 }
93 }
94
95 void applyTriangle3(ItemVectorView cells)
96 {
97 apply<TriangleShapeView>(cells);
98 }
99 void applyQuad4(ItemVectorView cells)
100 {
101 apply<QuadShapeView>(cells);
102 }
103 void applyPentagon5(ItemVectorView cells)
104 {
105 apply<PentagonShapeView>(cells);
106 }
107 void applyHexagon6(ItemVectorView cells)
108 {
109 apply<HexagonShapeView>(cells);
110 }
111
112 void applyTetraedron4(ItemVectorView cells)
113 {
114 apply<TetraShapeView>(cells);
115 }
116 void applyPyramid5(ItemVectorView cells)
117 {
118 apply<PyramidShapeView>(cells);
119 }
120 void applyPentaedron6(ItemVectorView cells)
121 {
122 apply<PentaShapeView>(cells);
123 }
124 void applyHexaedron8(ItemVectorView cells)
125 {
126 apply<HexaShapeView>(cells);
127 }
128 void applyHeptaedron10(ItemVectorView cells)
129 {
130 apply<Wedge7ShapeView>(cells);
131 }
132 void applyOctaedron12(ItemVectorView cells)
133 {
134 apply<Wedge8ShapeView>(cells);
135 }
136
137 public:
139 OperationFunction& operation() { return m_operation_function; }
141 GeomShapeMng& cellShapeMng() { return m_shape_mng; }
142 private:
143
144 GeomShapeMng m_shape_mng;
145 OperationFunction m_operation_function;
146};
147
148/*---------------------------------------------------------------------------*/
149/*---------------------------------------------------------------------------*/
150
151GEOMETRIC_END_NAMESPACE
152ARCANE_END_NAMESPACE
153
154/*---------------------------------------------------------------------------*/
155/*---------------------------------------------------------------------------*/
156
157#endif
#define ENUMERATE_CELL(name, group)
Enumérateur générique d'un groupe de mailles.
Opérateur abstrait sur des entités rangées par type.
Maille d'un maillage.
Definition Item.h:1178
Classe gérant les GeomShape des mailles d'un maillage.
Classe template pour appliquer spécifique à une vue sur une forme géométrique.
OperationFunction & operation()
Instance de l'opérateur.
GeomShapeMng & cellShapeMng()
Gestionnaire associé
GeomShapeOperation(GeomShapeMng &shape_mng, BuildArgs ... compute_function_args)
Construit l'opérateur.
Vue sur un vecteur d'entités.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120