Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
MainFactory.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/*---------------------------------------------------------------------------*/
8/* MainFactory.h (C) 2000-2023 */
9/* */
10/* Abstract Factory for the default Arcane implementation. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IMPL_MAINFACTORY_H
13#define ARCANE_IMPL_MAINFACTORY_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/core/IMainFactory.h"
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
52class ARCANE_IMPL_EXPORT MainFactory
53: public IMainFactory
54{
55 public:
56
57 MainFactory();
58 ~MainFactory() override;
59
60 public:
61 public:
62
64 IArcaneMain* createArcaneMain(const ApplicationInfo& app_info) override;
65
66 public:
67
75 ICaseDocument* createCaseDocument(IApplication*, const String& lang) override;
78 ITimeStats* createTimeStats(ITimerMng* tim, ITraceMng* trm, const String& name) override;
80 ITimeLoop* createTimeLoop(IApplication* sm, const String& name) override;
82 IIOMng* createIOMng(IParallelMng* pm) override;
88 IPrimaryMesh* createMesh(ISubDomain* sub_domain, const String& name) override;
89 IPrimaryMesh* createMesh(ISubDomain* sub_domain, IParallelMng* pm, const String& name) override;
90 IPrimaryMesh* createMesh(ISubDomain* sub_domain, const String& name, bool is_amr) override;
91 IPrimaryMesh* createMesh(ISubDomain* sub_domain, const String& name, eMeshAMRKind amr_type) override;
92 IPrimaryMesh* createMesh(ISubDomain* sub_domain, IParallelMng* pm, const String& name, bool is_amr) override;
93 IPrimaryMesh* createMesh(ISubDomain* sub_domain, IParallelMng* pm, const String& name, eMeshAMRKind amr_type) override;
94 IMesh* createSubMesh(IMesh* mesh, const ItemGroup& group, const String& name) override;
98 ITraceMng* createTraceMng() override;
102};
103
104/*---------------------------------------------------------------------------*/
105/*---------------------------------------------------------------------------*/
106
107} // End namespace Arcane
108
109/*---------------------------------------------------------------------------*/
110/*---------------------------------------------------------------------------*/
111
112#endif
Application information.
Application interface.
Interface of the code management class.
Definition IArcaneMain.h:55
Interface of the base class for main arcane objects.
Definition IBase.h:32
Interface of a class managing an XML document of the dataset.
Case manager interface.
Definition ICaseMng.h:57
Interface of the checkpoint information manager.
Interface of a data factory.
Interface for the entry point manager.
Interface of the input/output manager.
Definition IIOMng.h:37
Interface for registering variables for load balancing.
Factory for Arcane classes.
Interface of the main module.
Module manager interface.
Definition IModuleMng.h:39
Interface of the parallelism manager for a subdomain.
Interface of the property manager.
Service loading interface.
Service manager interface.
Definition IServiceMng.h:32
Interface of the subdomain manager.
Definition ISubDomain.h:75
Class managing a history of values.
Interface for the time loop manager.
Interface of a time loop.
Definition ITimeLoop.h:33
Interface managing execution time statistics.
Definition ITimeStats.h:44
Interface of a timer manager.
Definition ITimerMng.h:50
Interface for the configuration manager of a trace manager.
Variable manager interface.
Manager of a DOM document.
Mesh entity group.
Definition ItemGroup.h:51
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.
Reference to an instance.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
eMeshAMRKind
AMR mesh type.
Definition MeshKind.h:49