Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
ZoltanMeshPartitioner_axl.h
1/*---------------------------------------------------------------------------*/
2/*---------------------------------------------------------------------------*/
3// #WARNING#: This file has been generated automatically. Do not edit.
4// Arcane version 1.0 : 11/18/2024 02:52:35
5/*---------------------------------------------------------------------------*/
6/*---------------------------------------------------------------------------*/
7
8#ifndef ARCANE_CASEOPTION_AXLSTAR_ZOLTANMESHPARTITIONER_H
9#define ARCANE_CASEOPTION_AXLSTAR_ZOLTANMESHPARTITIONER_H
10
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13
14#include "arcane/utils/String.h"
15
16#include "arcane/CaseOptions.h"
17#include "arcane/CaseOptionsMulti.h"
18#include "arcane/CaseOptionBuildInfo.h"
19#include "arcane/XmlNodeList.h"
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24ARCANE_BEGIN_NAMESPACE
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28
31{
32public:
33
34 /*-------------------------------------------------------------------------*/
35 /*--------------------------- Complex Options -----------------------------*/
36 /*-------------------------------------------------------------------------*/
37
38 /*-------------------------------------------------------------------------*/
39 /*--------------------------- Non Complex Options -------------------------*/
40 /*-------------------------------------------------------------------------*/
41
43 : m_case_options(co)
44 , useHypergraphe(Arcane::CaseOptionBuildInfo(_configList(),
45 /* name */ "use-hypergraphe", _element(),
46 /* default */ "true",
47 /* min-occurs */ 1,
48 /* max-occurs */ 1,
49 /* optional */ false))
50 , edgeWeightMultiplier(Arcane::CaseOptionBuildInfo(_configList(),
51 /* name */ "edge-weight-multiplier", _element(),
52 /* default */ "2.",
53 /* min-occurs */ 1,
54 /* max-occurs */ 1,
55 /* optional */ false))
56 , repartFrequency(Arcane::CaseOptionBuildInfo(_configList(),
57 /* name */ "repart-frequency", _element(),
58 /* default */ "10",
59 /* min-occurs */ 1,
60 /* max-occurs */ 1,
61 /* optional */ false))
62 , model(Arcane::CaseOptionBuildInfo(_configList(),
63 /* name */ "model", _element(),
64 /* default */ "OLDHG",
65 /* min-occurs */ 1,
66 /* max-occurs */ 1,
67 /* optional */ false))
68 , imbalanceTol(Arcane::CaseOptionBuildInfo(_configList(),
69 /* name */ "imbalance-tol", _element(),
70 /* default */ "1.05",
71 /* min-occurs */ 1,
72 /* max-occurs */ 1,
73 /* optional */ false))
74 , phgRepartMultiplier(Arcane::CaseOptionBuildInfo(_configList(),
75 /* name */ "phg-repart-multiplier", _element(),
76 /* default */ "10",
77 /* min-occurs */ 1,
78 /* max-occurs */ 1,
79 /* optional */ false))
80 , phgOutputLevel(Arcane::CaseOptionBuildInfo(_configList(),
81 /* name */ "phg-output-level", _element(),
82 /* default */ "0",
83 /* min-occurs */ 1,
84 /* max-occurs */ 1,
85 /* optional */ false))
86 , debugLevel(Arcane::CaseOptionBuildInfo(_configList(),
87 /* name */ "debug-level", _element(),
88 /* default */ "0",
89 /* min-occurs */ 1,
90 /* max-occurs */ 1,
91 /* optional */ false))
92 {
93
94useHypergraphe.addAlternativeNodeName(
95 /* language */ Arcane::String("fr"),
96 /* alternative name */ Arcane::String("mode-hypergraphe"));
97addAlternativeNodeName(
98 /* language */ Arcane::String("fr"),
99 /* alternative name */ Arcane::String("zoltan"));
100 }
101
102public:
103 // Interfaces for main CaseOptions
104
105 bool getUseHypergraphe() { return useHypergraphe(); }
106 Arcane::ICaseFunction* getUseHypergrapheFunction() { return useHypergraphe.function(); }
107 Arcane::IStandardFunction* getUseHypergrapheStandardFunction() { return useHypergraphe.standardFunction(); }
108 Arcane::Real getEdgeWeightMultiplier() { return edgeWeightMultiplier(); }
109 Arcane::ICaseFunction* getEdgeWeightMultiplierFunction() { return edgeWeightMultiplier.function(); }
110 Arcane::IStandardFunction* getEdgeWeightMultiplierStandardFunction() { return edgeWeightMultiplier.standardFunction(); }
111 Arcane::Integer getRepartFrequency() { return repartFrequency(); }
112 Arcane::ICaseFunction* getRepartFrequencyFunction() { return repartFrequency.function(); }
113 Arcane::IStandardFunction* getRepartFrequencyStandardFunction() { return repartFrequency.standardFunction(); }
114 Arcane::String getModel() { return model(); }
115 Arcane::ICaseFunction* getModelFunction() { return model.function(); }
116 Arcane::IStandardFunction* getModelStandardFunction() { return model.standardFunction(); }
117 Arcane::Real getImbalanceTol() { return imbalanceTol(); }
118 Arcane::ICaseFunction* getImbalanceTolFunction() { return imbalanceTol.function(); }
119 Arcane::IStandardFunction* getImbalanceTolStandardFunction() { return imbalanceTol.standardFunction(); }
120 Arcane::Real getPhgRepartMultiplier() { return phgRepartMultiplier(); }
121 Arcane::ICaseFunction* getPhgRepartMultiplierFunction() { return phgRepartMultiplier.function(); }
122 Arcane::IStandardFunction* getPhgRepartMultiplierStandardFunction() { return phgRepartMultiplier.standardFunction(); }
123 Arcane::Integer getPhgOutputLevel() { return phgOutputLevel(); }
124 Arcane::ICaseFunction* getPhgOutputLevelFunction() { return phgOutputLevel.function(); }
125 Arcane::IStandardFunction* getPhgOutputLevelStandardFunction() { return phgOutputLevel.standardFunction(); }
126 Arcane::Integer getDebugLevel() { return debugLevel(); }
127 Arcane::ICaseFunction* getDebugLevelFunction() { return debugLevel.function(); }
128 Arcane::IStandardFunction* getDebugLevelStandardFunction() { return debugLevel.standardFunction(); }
129
130
131
132 // Interfaces for complex options
133
134
135public:
136
137 Arcane::ICaseOptions* caseOptions() const
138 {
139 return m_case_options.get();
140 }
141
142 Arcane::ICaseOptionList* configList() const
143 {
144 return m_case_options->configList();
145 }
146
147 void setCaseModule(Arcane::IModule* m)
148 {
149 m_case_options->setCaseModule(m);
150 }
151
152 void setCaseServiceInfo(Arcane::IServiceInfo* si)
153 {
154 m_case_options->setCaseServiceInfo(si);
155 }
156
157 void addAlternativeNodeName(const Arcane::String& lang,
158 const Arcane::String& name)
159 {
160 m_case_options->addAlternativeNodeName(lang,name);
161 }
162
163private:
164
165 Arcane::ICaseOptionList* _configList() const { return configList(); }
166 Arcane::XmlNode _element() const { return Arcane::XmlNode(); }
167
168private:
169
170 static Arcane::ICaseOptions* _createCaseOption(Arcane::ICaseMng* cm,Arcane::ICaseOptions* co);
171
173
174public:
175
176
177 Arcane::CaseOptionBool useHypergraphe;
178 Arcane::CaseOptionReal edgeWeightMultiplier;
179 Arcane::CaseOptionInteger repartFrequency;
181 Arcane::CaseOptionReal imbalanceTol;
182 Arcane::CaseOptionReal phgRepartMultiplier;
183 Arcane::CaseOptionInteger phgOutputLevel;
184 Arcane::CaseOptionInteger debugLevel;
185};
186
187/*---------------------------------------------------------------------------*/
188/*---------------------------------------------------------------------------*/
189
190ARCANE_END_NAMESPACE
191
192/*---------------------------------------------------------------------------*/
193/*---------------------------------------------------------------------------*/
194
195#endif
196
197
198
199/*---------------------------------------------------------------------------*/
200/*---------------------------------------------------------------------------*/
201// #WARNING#: This file has been generated automatically. Do not edit.
202// Arcane version 1.0 : 11/18/2024 02:52:35
203/*---------------------------------------------------------------------------*/
204/*---------------------------------------------------------------------------*/
205
206#ifndef ARCANE_MODULE_AXLSTAR_ZOLTANMESHPARTITIONER_H
207#define ARCANE_MODULE_AXLSTAR_ZOLTANMESHPARTITIONER_H
208
209/*---------------------------------------------------------------------------*/
210/*---------------------------------------------------------------------------*/
211
212#include "arcane/VariableTypes.h"
213#include "arcane/ServiceInfo.h"
214#include "arcane/ISubDomain.h"
215#include "arcane/ServiceBuildInfo.h"
216#include "arcane/ServiceFactory.h"
217#include "arcane/ServiceRegisterer.h"
218#include "arcane/BasicService.h"
219
220#ifndef ARCANE_HAS_SPECIFIC_BASIC_SERVICE
221// Code pour les versions de Arcane avant la 3.8 qui ne possèdent pas les
222// classes de base spécifiques pour les services
223namespace Arcane
224{
228}
229#endif
230
231/*---------------------------------------------------------------------------*/
232/*---------------------------------------------------------------------------*/
233
234namespace Arcane
235{
236
237/*---------------------------------------------------------------------------*/
238/*---------------------------------------------------------------------------*/
239
240class CaseOptionsZoltanMeshPartitioner;
241
242/*---------------------------------------------------------------------------*/
243/*---------------------------------------------------------------------------*/
244
247 : public MeshPartitionerBase
248{
249public:
250 // NOTE GG: attention code dupliqué avec 'ServiceT4CaseAndStrong'. Bien reporter les modifications
251 template <typename ServiceClassType> static void fillServiceInfo(Arcane::ServiceInfo* si)
252 {
253 si->setCaseOptionsFileName("ZoltanMeshPartitioner_arcane_std");
254 si->setAxlVersion(0.0);
255 si->setDefaultTagName("zoltan-mesh-partitioner");
256 si->setAxlContent(getAxlContent());
257 si->setTagName("zoltan","fr");
261);
262 }
263
264public:
265
269 , m_options(nullptr)
270 {
272 if (co) {
274 }
275
276 }
277
280 {
281 delete m_options;
282 }
283
284
285public:
286
289
290private:
291
294
295protected:
296
298private:
300 {
301 const Arcane::Byte* content = (const Arcane::Byte*)"";
302 Arcane::Span<const Arcane::Byte> bytes(content,0);
303 int file_version = 1;
304 return Arcane::FileContent(bytes,file_version,"");
305 }
306};
307
308/*---------------------------------------------------------------------------*/
309/*---------------------------------------------------------------------------*/
310
311#define ARCANE_REGISTER_SERVICE_ZOLTANMESHPARTITIONER(service_name,class_name) \
312 ARCANE_REGISTER_AXL_SERVICE(class_name,Arcane::ServiceProperty(#service_name,Arcane::ST_CaseOption,\
313 Arcane::SFP_None ))
314
315/*---------------------------------------------------------------------------*/
316/*---------------------------------------------------------------------------*/
317
318} // End namespace Arcane
319
320/*---------------------------------------------------------------------------*/
321/*---------------------------------------------------------------------------*/
322
323#endif
324
#define ARCANE_SERVICE_INTERFACE(ainterface)
Macro pour déclarer une interface lors de l'enregistrement d'un service.
Generation de la classe de base du Service.
CaseOptionsZoltanMeshPartitioner * m_options
Options du jeu de données du service.
CaseOptionsZoltanMeshPartitioner * options() const
Options du jeu de données du service.
static Arcane::FileContent getAxlContent()
Variables du service.
ArcaneZoltanMeshPartitionerObject(const Arcane::ServiceBuildInfo &sbi)
Constructeur.
Classe de base de service lié à un sous-domaine.
Informations pour construire une option de jeu de données.
Description et contenu d'un fichier.
Definition FileContent.h:32
Interface d'une fonction du jeu de données.
Interface du gestionnaire de cas.
Definition ICaseMng.h:56
Interface d'une liste d'options du jeu de données.
Interface d'une liste d'options du jeu de données.
Interface d'un partitionneur de maillage.
Interface d'un partitionneur de maillage.
Interface d'un module.
Definition IModule.h:39
Interface des informations d'un service ou d'un module.
Interface gérant une fonction standard.
static void registerToServiceInfo(ServiceInfo *si, const Interfaces &... args)
Enregistre dans le service les fabriques pour les interfacs Interfaces.
Informations d'un service.
Definition ServiceInfo.h:46
Classe de base d'un service d'équilibrage de charge.
ICaseOptions * caseOptions() const
Accès au ICaseOptions associé.
Structure contenant les informations pour créer un service.
Noeud d'un arbre DOM.
Definition XmlNode.h:51
Encapsulation d'un pointeur avec compteur de référence.
Vue d'un tableau d'éléments de type T.
Definition Span.h:510
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
unsigned char Byte
Type d'un octet.
Definition UtilsTypes.h:142