14#include "arcane/impl/MainFactory.h"
16#include "arcane/utils/Iostream.h"
17#include "arcane/utils/PlatformUtils.h"
18#include "arcane/utils/ITraceMng.h"
19#include "arcane/utils/ScopedPtr.h"
21#include "arcane/core/IArcaneMain.h"
22#include "arcane/core/ISubDomain.h"
23#include "arcane/core/IModuleMng.h"
24#include "arcane/core/IModule.h"
25#include "arcane/core/IModuleMaster.h"
26#include "arcane/core/ServiceUtils.h"
27#include "arcane/core/IFactoryService.h"
28#include "arcane/core/IMeshFactory.h"
29#include "arcane/core/IPrimaryMesh.h"
30#include "arcane/core/IApplication.h"
31#include "arcane/core/ItemGroup.h"
32#include "arcane/core/ServiceBuilder.h"
33#include "arcane/core/IMeshMng.h"
34#include "arcane/core/MeshHandle.h"
35#include "arcane/core/MeshBuildInfo.h"
37#include "arcane/impl/internal/MeshFactoryMng.h"
67extern "C++" ITraceMng* arcaneCreateTraceMng();
77extern "C++" ARCANE_IMPL_EXPORT
IIOMng*
80extern "C++" ARCANE_IMPL_EXPORT
IIOMng*
85 extern "C++" ARCANE_IMPORT Ref<IAcceleratorMng>
86 arccoreCreateAcceleratorMngRef(ITraceMng* tm);
95 String _getMeshFactoryName(
bool is_amr)
98 return String(
"ArcaneDynamicAMRMeshFactory");
99 return String(
"ArcaneDynamicMeshFactory");
125 return createArcaneMainBatch(app_info,
this);
134 return arcaneCreateApplication(am);
143 return arcaneCreateVariableMng(sd);
152 return arcaneCreateModuleMng(sd);
161 return arcaneCreateEntryPointMng(sd);
171 thm = arcaneCreateTimeHistoryMng2(sd);
181 return arcaneCreateCaseMng(sd);
192 return arcaneCreateTimeStats(tm, sd->
traceMng(), name);
201 return arcaneCreateTimeStats(tim, trm, name);
210 return arcaneCreateTimeLoopMng(sd);
219 return arcaneCreateTimeLoop(sm, name);
237 return arcaneCreateIOMng(pm);
246 return arcaneCreateServiceLoader();
255 return arcaneCreateServiceMng(base);
264 return arcaneCreateCheckpointMng(sd);
273 return arcaneCreatePropertyMng(sd->
traceMng());
282 return arcaneCreatePropertyMngReference(sd->
traceMng());
300 return arcaneCreateCaseDocument(sm->
traceMng(), lang);
309 return arcaneCreateCaseDocument(sm->
traceMng(), doc);
349 mk.setMeshAMRKind(amr_type);
382 String factory_name = _getMeshFactoryName(is_amr);
396 return arcaneCreateDataFactory(sm);
405 return arcaneCreateDataFactoryMngRef(app);
414 return Accelerator::arccoreCreateAcceleratorMngRef(tm);
423 return arcaneCreateTraceMng();
432 return arcaneCreateTraceMngPolicy(app);
444 ARCANE_FATAL(
"module is not a derived class of 'IModule'");
455 return arcaneCreateLoadBalanceMng(sd);
#define ARCANE_FATAL(...)
Macro throwing a FatalErrorException.
virtual IParallelSuperMng * parallelSuperMng()=0
Supervisory parallelism manager.
Interface of the code management class.
Interface of the base class for main arcane objects.
virtual ITraceMng * traceMng() const =0
Trace manager.
Interface of a class managing an XML document of the dataset.
Interface of the checkpoint information manager.
Interface of a data factory.
Interface for the entry point manager.
Interface of the input/output manager.
Interface for registering variables for load balancing.
Factory for Arcane classes.
Interface of the mesh factory manager.
virtual IPrimaryMesh * createMesh(const MeshBuildInfo &build_info)=0
Creates a mesh or a sub-mesh.
virtual IMeshFactoryMng * meshFactoryMng() const =0
Mesh factory associated with this manager.
Interface of the main module.
Module manager interface.
virtual void addModule(Ref< IModule > m)=0
Adds module m to the manager.
Interface of the parallelism manager for a subdomain.
Abstract class of the parallelism supervisor.
Interface of the property manager.
Service loading interface.
Service manager interface.
Interface of the subdomain manager.
virtual IModuleMng * moduleMng()=0
Returns the module manager.
virtual Int32 subDomainId() const =0
Subdomain ID associated with this manager.
virtual IParallelMng * parallelMng()=0
Returns the parallelism manager.
virtual IMeshMng * meshMng() const =0
Returns the mesh manager.
virtual ITimerMng * timerMng() const =0
Returns the timer manager.
Class managing a history of values.
Interface for the time loop manager.
Interface of a time loop.
Interface managing execution time statistics.
Interface of a timer manager.
Interface for the configuration manager of a trace manager.
Variable manager interface.
Manager of a DOM document.
IMesh * createSubMesh(IMesh *mesh, const ItemGroup &group, const String &name) override
Creates a sub-mesh for the mesh mesh, named name.
IVariableMng * createVariableMng(ISubDomain *) override
Creates an instance of the variable manager.
ITraceMng * createTraceMng() override
Creates a trace manager.
Ref< IPropertyMng > createPropertyMngReference(ISubDomain *) override
Creates an instance of the property manager.
ITraceMngPolicy * createTraceMngPolicy(IApplication *app) override
Creates a configuration manager for a trace manager.
IIOMng * createIOMng(IApplication *) override
Creates an instance of the I/O manager.
ICaseMng * createCaseMng(ISubDomain *) override
Creates an instance of the case manager.
ITimeHistoryMng * createTimeHistoryMng(ISubDomain *) override
Creates an instance of the time history manager.
ICheckpointMng * createCheckpointMng(ISubDomain *) override
Creates an instance of the checkpoint manager.
IEntryPointMng * createEntryPointMng(ISubDomain *) override
Creates an instance of the entry point manager.
ILoadBalanceMng * createLoadBalanceMng(ISubDomain *sd) override
Creates a description manager for load balancing.
IPropertyMng * createPropertyMng(ISubDomain *) override
Creates an instance of the property manager.
IServiceMng * createServiceMng(IBase *) override
Creates an instance of the service manager.
IApplication * createApplication(IArcaneMain *) override
Creates an instance of a supervisor.
IArcaneMain * createArcaneMain(const ApplicationInfo &app_info) override
Creates an instance of IArcaneMain.
ICaseDocument * createCaseDocument(IApplication *) override
Creates an instance of a case document.
IPrimaryMesh * createMesh(ISubDomain *sub_domain, const String &name) override
Creates or retrieves a mesh.
Ref< IAcceleratorMng > createAcceleratorMngRef(ITraceMng *tm) override
Creates a manager for accelerators.
IDataFactory * createDataFactory(IApplication *) override
Creates a factory for data.
Ref< IDataFactoryMng > createDataFactoryMngRef(IApplication *) override
Creates a factory manager for data.
IServiceLoader * createServiceLoader() override
Creates an instance of the service loader.
ITimeStats * createTimeStats(ISubDomain *) override
Creates an instance of execution time statistics.
IModuleMng * createModuleMng(ISubDomain *) override
Creates an instance of the module manager.
ITimeLoop * createTimeLoop(IApplication *sm, const String &name) override
Creates a time loop named name.
IModuleMaster * createModuleMaster(ISubDomain *sd) override
Creates the master module for the sub-domain sd.
ITimeLoopMng * createTimeLoopMng(ISubDomain *) override
Creates an instance of the time loop manager.
Parameters necessary for building a mesh.
const MeshKind meshKind() const
Mesh characteristics.
MeshBuildInfo & addParallelMng(Ref< IParallelMng > pm)
Sets the parallelism manager to create the mesh.
MeshBuildInfo & addParentGroup(const ItemGroup &parent_group)
Sets the cell group for a sub-mesh.
MeshBuildInfo & addMeshKind(const MeshKind &v)
Sets the mesh characteristics.
MeshBuildInfo & addFactoryName(const String &factory_name)
Sets the factory name to create this mesh.
Characteristics of a mesh.
Reference to an instance.
Unicode character string.
Namespace for accelerator usage.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
auto makeRef(InstanceType *t) -> Ref< InstanceType >
Creates a reference on a pointer.
eMeshAMRKind
AMR mesh type.
@ Cell
The mesh is AMR by cell.
@ None
The mesh is not AMR.