Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
GeometryServiceBase.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#ifndef ARCGEOSIM_GEOMETRY_GEOMETRYSERVICEBASE_H
8#define ARCGEOSIM_GEOMETRY_GEOMETRYSERVICEBASE_H
9/* Author : havep at Thu Apr 3 09:09:09 2008
10 * Generated by createNew
11 */
12
13#include "arcane/geometry/IGeometryMng.h"
14#include "arcane/geometry/impl/ItemGroupGeometryProperty.h"
15
16namespace Arcane
17{
18 class ISubDomain;
19}
20
21ARCANE_BEGIN_NAMESPACE
22NUMERICS_BEGIN_NAMESPACE
23
25 : public IGeometryMng
26{
27public:
30
32 virtual ~GeometryServiceBase();
33
34public:
36
38 void addItemGroupProperty(ItemGroup group, Integer property, Integer storage = IGeometryProperty::PVariable);
39
41 void addItemGroupProperty(ItemGroup group, IGeometryProperty::eProperty property, RealVariable var);
42
44 void addItemGroupProperty(ItemGroup group, IGeometryProperty::eProperty property, Real3Variable var);
45
48
50 bool hasItemGroupProperty(ItemGroup group, Integer property);
51
53 Integer getItemGroupPropertyStorage(ItemGroup group, IGeometryProperty::eProperty property);
54
56
58
59 const RealVariable & getRealVariableProperty(ItemGroup group, IGeometryProperty::eProperty property);
60
62 const Real3Variable & getReal3VariableProperty(ItemGroup group, IGeometryProperty::eProperty property);
64
66
68 void update(ItemGroup group, Integer property);
69
71 void reset(ItemGroup group, Integer property);
72
74
76
78 virtual void update(ItemGroup group) = 0;
79
81 virtual void reset(ItemGroup group) = 0;
82
84
86
88 void update();
89
91 void reset();
92
94
95protected:
97
99 virtual ITraceMng * traceMng() = 0;
100
102 virtual IMesh * mesh() = 0;
103
104 template<typename GeometryT>
105 void updateGroup(ItemGroup group,GeometryT & geometry);
106
108 virtual const char * className() const = 0;
109
111
112protected:
113 typedef std::map<ItemGroupImpl*, ItemGroupGeometryProperty> PropertyMap;
114 PropertyMap m_group_property_map;
116
119 IGeometryProperty::eProperty property,
120 IGeometryProperty::eStorage storage);
121 void _resetComputeFlags();
122 void _checkItemGroupUsage();
125 void setSuffix(const String & suffix) { m_suffix = suffix; }
126};
127
128NUMERICS_END_NAMESPACE
129ARCANE_END_NAMESPACE
130
131#include "GeometryServiceBaseT.h"
132
133#endif /* ARCGEOSIM_GEOMETRY_GEOMETRYSERVICEBASE_H */
void addItemGroupProperty(ItemGroup group, Integer property, Integer storage=IGeometryProperty::PVariable)
Set geometric properties on a ItemGroup.
void update()
Update property values for all ItemGroups.
Integer getItemGroupPropertyStorage(ItemGroup group, IGeometryProperty::eProperty property)
Check if a storage is available on an ItemGroup.
Integer getItemGroupProperty(ItemGroup group)
Get set of properties of an ItemGroup.
virtual IMesh * mesh()=0
Access to mesh.
ItemGroupGeometryProperty::StorageInfo & _checkItemGroupProperty(ItemGroupImpl *group, IGeometryProperty::eProperty property, IGeometryProperty::eStorage storage)
Return ItemGroupGeometryProperty if requested property and storage are available.
const Real3Variable & getReal3VariableProperty(ItemGroup group, IGeometryProperty::eProperty property)
Get geometric property values for a Real3 field.
const RealVariable & getRealVariableProperty(ItemGroup group, IGeometryProperty::eProperty property)
Get geometric property values for a Real field.
virtual void reset(ItemGroup group)=0
Reset property for an ItemGroup.
String m_suffix
suffix for internal variable names
void reset()
Reset property for all ItemGroups.
virtual const char * className() const =0
Name of instancied class.
virtual ITraceMng * traceMng()=0
Access to traceMng.
bool hasItemGroupProperty(ItemGroup group, Integer property)
Check is a property is activated on an ItemGroup.
void setSuffix(const String &suffix)
virtual void update(ItemGroup group)=0
Update property values for an ItemGroup.
Interface du gestionnaire d'un sous-domaine.
Definition ISubDomain.h:74
Implémentation d'un groupe d'entités de maillage.
Groupe d'entités de maillage.
Definition ItemGroup.h:49
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Gestionnaire des calculs géométriques.
virtual IGeometry * geometry()=0
Get underlying geometry.
Interface du gestionnaire de traces.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Int32 Integer
Type représentant un entier.