Arcane  4.2.1.0
Developer documentation
Loading...
Searching...
No Matches
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
This file contains the various service factories and macros for registering services.
#define ARCANE_SERVICE_INTERFACE(ainterface)
Macro to declare an interface when registering a 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.
Base class of a service linked to a subdomain.
Information for building a dataset option.
Description and content of a file.
Definition FileContent.h:33
Interface of a dataset function.
Case manager interface.
Definition ICaseMng.h:57
Interface for a data set options list.
Interface for a list of data set options.
Interface of a mesh partitioner.
Interface of a mesh partitioner.
Interface of a module.
Definition IModule.h:40
Interface for service or module information.
Interface managing a standard function.
Information about a service.
Definition ServiceInfo.h:51
Encapsulation of a pointer with a reference counter.
static void registerToServiceInfo(ServiceInfo *si, const Interfaces &... args)
Registers the factories for the Interfaces interfaces in the service.
ICaseOptions * caseOptions() const
Access to the associated ICaseOptions.
Structure containing the information to create a service.
View of an array of elements of type T.
Definition Span.h:633
Node of a DOM tree.
Definition XmlNode.h:51
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Int32 Integer
Type representing an integer.
double Real
Type representing a real number.
unsigned char Byte
Type of a byte.
Definition BaseTypes.h:42