Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
GeometryServiceBase.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 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
16/*---------------------------------------------------------------------------*/
17/*---------------------------------------------------------------------------*/
18
19namespace Arcane
20{
21class ISubDomain;
22}
23
24/*---------------------------------------------------------------------------*/
25/*---------------------------------------------------------------------------*/
26
27namespace Arcane::Numerics
28{
29
30/*---------------------------------------------------------------------------*/
31/*---------------------------------------------------------------------------*/
32
34: public IGeometryMng
35{
36 public:
37
40
42 virtual ~GeometryServiceBase();
43
44 public:
45
47
49 void addItemGroupProperty(ItemGroup group, Integer property, Integer storage = IGeometryProperty::PVariable);
50
52 void addItemGroupProperty(ItemGroup group, IGeometryProperty::eProperty property, RealVariable var);
53
55 void addItemGroupProperty(ItemGroup group, IGeometryProperty::eProperty property, Real3Variable var);
56
59
61 bool hasItemGroupProperty(ItemGroup group, Integer property);
62
64 Integer getItemGroupPropertyStorage(ItemGroup group, IGeometryProperty::eProperty property);
65
67
69
70 const RealVariable& getRealVariableProperty(ItemGroup group, IGeometryProperty::eProperty property);
71
73 const Real3Variable& getReal3VariableProperty(ItemGroup group, IGeometryProperty::eProperty property);
75
77
79 void update(ItemGroup group, Integer property);
80
82 void reset(ItemGroup group, Integer property);
83
85
87
89 virtual void update(ItemGroup group) = 0;
90
92 virtual void reset(ItemGroup group) = 0;
93
95
97
99 void update();
100
102 void reset();
103
105
106 protected:
107
109
111 virtual ITraceMng* traceMng() = 0;
112
114 virtual IMesh* mesh() = 0;
115
116 template <typename GeometryT>
117 void updateGroup(ItemGroup group, GeometryT& geometry);
118
120 virtual const char* className() const = 0;
121
123
124 protected:
125
126 typedef std::map<ItemGroupImpl*, ItemGroupGeometryProperty> PropertyMap;
127 PropertyMap m_group_property_map;
129
132 IGeometryProperty::eProperty property,
133 IGeometryProperty::eStorage storage);
134 void _resetComputeFlags();
135 void _checkItemGroupUsage();
138 void setSuffix(const String& suffix) { m_suffix = suffix; }
139};
140
141/*---------------------------------------------------------------------------*/
142/*---------------------------------------------------------------------------*/
143
144} // namespace Arcane::Numerics
145
146/*---------------------------------------------------------------------------*/
147/*---------------------------------------------------------------------------*/
148
149#include "GeometryServiceBaseT.h"
150
151/*---------------------------------------------------------------------------*/
152/*---------------------------------------------------------------------------*/
153
154#endif
Interface of the subdomain manager.
Definition ISubDomain.h:75
Brief: Implementation of a mesh entity group.
Mesh entity group.
Definition ItemGroup.h:51
String m_suffix
suffix for internal variable names
Integer getItemGroupProperty(ItemGroup group)
Get set of properties of an ItemGroup.
void addItemGroupProperty(ItemGroup group, Integer property, Integer storage=IGeometryProperty::PVariable)
Set geometric properties on an ItemGroup.
virtual IMesh * mesh()=0
Access to mesh.
void reset()
Reset property for all ItemGroups.
virtual const char * className() const =0
Name of instantiated class.
virtual void reset(ItemGroup group)=0
Reset property for an ItemGroup.
virtual ITraceMng * traceMng()=0
Access to traceMng.
virtual void update(ItemGroup group)=0
Update property values for an ItemGroup.
const Real3Variable & getReal3VariableProperty(ItemGroup group, IGeometryProperty::eProperty property)
Get geometric property values for a Real3 field.
bool hasItemGroupProperty(ItemGroup group, Integer property)
Check if a property is activated on an ItemGroup.
Integer getItemGroupPropertyStorage(ItemGroup group, IGeometryProperty::eProperty property)
Check if storage is available on an ItemGroup.
const RealVariable & getRealVariableProperty(ItemGroup group, IGeometryProperty::eProperty property)
Get geometric property values for a Real field.
void update()
Update property values for all ItemGroups.
ItemGroupGeometryProperty::StorageInfo & _checkItemGroupProperty(ItemGroupImpl *group, IGeometryProperty::eProperty property, IGeometryProperty::eStorage storage)
Return ItemGroupGeometryProperty if requested property and storage are available.
virtual IGeometry * geometry()=0
Get underlying geometry.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Int32 Integer
Type representing an integer.