Arcane  4.2.1.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// Axlstar version 1.0
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
30class CaseOptionsZoltanMeshPartitioner
31{
32public:
33
34 /*-------------------------------------------------------------------------*/
35 /*--------------------------- Complex Options -----------------------------*/
36 /*-------------------------------------------------------------------------*/
37
38 /*-------------------------------------------------------------------------*/
39 /*--------------------------- Non Complex Options -------------------------*/
40 /*-------------------------------------------------------------------------*/
41
42 CaseOptionsZoltanMeshPartitioner(Arcane::ICaseOptions* co)
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;
180 Arcane::CaseOptionString model;
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// Axlstar version 1.0
203/*---------------------------------------------------------------------------*/
204/*---------------------------------------------------------------------------*/
205#ifndef ARCANE_SERVICE_AXLSTAR_ZOLTANMESHPARTITIONER_H
206#define ARCANE_SERVICE_AXLSTAR_ZOLTANMESHPARTITIONER_H
207/*---------------------------------------------------------------------------*/
208/*---------------------------------------------------------------------------*/
209
210#include "arcane/core/VariableTypes.h"
211#include "arcane/core/ServiceInfo.h"
212#include "arcane/core/ISubDomain.h"
213#include "arcane/core/ServiceBuildInfo.h"
215#include "arcane/core/ServiceRegisterer.h"
216#include "arcane/core/BasicService.h"
217
218#ifndef ARCANE_HAS_SPECIFIC_BASIC_SERVICE
219// Code pour les versions de Arcane avant la 3.8 qui ne possèdent pas les
220// classes de base spécifiques pour les services
221namespace Arcane
222{
223using BasicCaseOptionService = BasicService;
224using BasicSubDomainService = BasicService;
225using BasicMeshService = BasicService;
226}
227#endif
228
229/*---------------------------------------------------------------------------*/
230/*---------------------------------------------------------------------------*/
231
232namespace Arcane
233{
234
235/*---------------------------------------------------------------------------*/
236/*---------------------------------------------------------------------------*/
237
238class CaseOptionsZoltanMeshPartitioner;
239
240/*---------------------------------------------------------------------------*/
241/*---------------------------------------------------------------------------*/
242
245 : public MeshPartitionerBase
246{
247public:
248 // NOTE GG: attention code dupliqué avec 'ServiceT4CaseAndStrong'. Bien reporter les modifications
249 template <typename ServiceClassType> static void fillServiceInfo(Arcane::ServiceInfo* si)
250 {
251 si->setCaseOptionsFileName("ZoltanMeshPartitioner_arcane_std");
252 si->setAxlVersion(0.0);
253 si->setDefaultTagName("zoltan-mesh-partitioner");
254 si->setAxlContent(getAxlContent());
255 si->setTagName("zoltan","fr");
259);
260 }
261
262public:
263
266 : MeshPartitionerBase(sbi)
267 , m_options(nullptr)
268 {
270 if (co) {
272 }
273
274 }
275
278 {
279 delete m_options;
280 }
281
282
283public:
284
287
288private:
289
292
293protected:
294
296private:
298 {
299 const Arcane::Byte* content = (const Arcane::Byte*)"";
300 Arcane::Span<const Arcane::Byte> bytes(content,0);
301 int file_version = 1;
302 return Arcane::FileContent(bytes,file_version,"");
303 }
304};
305
306/*---------------------------------------------------------------------------*/
307/*---------------------------------------------------------------------------*/
308
309#define ARCANE_REGISTER_SERVICE_ZOLTANMESHPARTITIONER(service_name,class_name) \
310 ARCANE_REGISTER_AXL_SERVICE(class_name,Arcane::ServiceProperty(#service_name,Arcane::ST_CaseOption,\
311 Arcane::SFP_None ))
312
313/*---------------------------------------------------------------------------*/
314/*---------------------------------------------------------------------------*/
315
316} // End namespace Arcane
317
318/*---------------------------------------------------------------------------*/
319/*---------------------------------------------------------------------------*/
320
321#endif
322
Ce fichier contient les différentes fabriques de services et macro pour enregistrer les services.
#define ARCANE_SERVICE_INTERFACE(ainterface)
Macro pour déclarer une interface lors de l'enregistrement d'un 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.
Informations d'un service.
Definition ServiceInfo.h:46
Encapsulation d'un pointeur avec compteur de référence.
static void registerToServiceInfo(ServiceInfo *si, const Interfaces &... args)
Enregistre dans le service les fabriques pour les interfacs Interfaces.
ICaseOptions * caseOptions() const
Accès au ICaseOptions associé.
Structure contenant les informations pour créer un service.
Vue d'un tableau d'éléments de type T.
Definition Span.h:633
Chaîne de caractères unicode.
Noeud d'un arbre DOM.
Definition XmlNode.h:51
-- 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.
unsigned char Byte
Type d'un octet.
Definition BaseTypes.h:42