Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::MainFactory Class Reference

Creation of Arcane classes. More...

#include <arcane/impl/MainFactory.h>

Inheritance diagram for Arcane::MainFactory:
Collaboration diagram for Arcane::MainFactory:

Public Member Functions

IArcaneMaincreateArcaneMain (const ApplicationInfo &app_info) override
 Creates an instance of IArcaneMain.
IApplicationcreateApplication (IArcaneMain *) override
 Creates an instance of a supervisor.
IVariableMngcreateVariableMng (ISubDomain *) override
 Creates an instance of the variable manager.
IModuleMngcreateModuleMng (ISubDomain *) override
 Creates an instance of the module manager.
IEntryPointMngcreateEntryPointMng (ISubDomain *) override
 Creates an instance of the entry point manager.
ITimeHistoryMngcreateTimeHistoryMng (ISubDomain *) override
 Creates an instance of the time history manager.
ICaseMngcreateCaseMng (ISubDomain *) override
 Creates an instance of the case manager.
ICaseDocumentcreateCaseDocument (IApplication *) override
 Creates an instance of a case document.
ICaseDocumentcreateCaseDocument (IApplication *, const String &lang) override
 Creates an instance of a case document for a given language lang.
ICaseDocumentcreateCaseDocument (IApplication *, IXmlDocumentHolder *doc) override
 Creates an instance of a case document.
ITimeStatscreateTimeStats (ISubDomain *) override
 Creates an instance of execution time statistics.
ITimeStatscreateTimeStats (ITimerMng *tim, ITraceMng *trm, const String &name) override
 Creates an instance of execution time statistics.
ITimeLoopMngcreateTimeLoopMng (ISubDomain *) override
 Creates an instance of the time loop manager.
ITimeLoopcreateTimeLoop (IApplication *sm, const String &name) override
 Creates a time loop named name.
IIOMngcreateIOMng (IApplication *) override
 Creates an instance of the I/O manager.
IIOMngcreateIOMng (IParallelMng *pm) override
 Creates an instance of the I/O manager for the parallelism manager pm.
IServiceLoadercreateServiceLoader () override
 Creates an instance of the service loader.
IServiceMngcreateServiceMng (IBase *) override
 Creates an instance of the service manager.
ICheckpointMngcreateCheckpointMng (ISubDomain *) override
 Creates an instance of the checkpoint manager.
IPropertyMngcreatePropertyMng (ISubDomain *) override
 Creates an instance of the property manager.
Ref< IPropertyMngcreatePropertyMngReference (ISubDomain *) override
 Creates an instance of the property manager.
IPrimaryMeshcreateMesh (ISubDomain *sub_domain, const String &name) override
 Creates or retrieves a mesh.
IPrimaryMeshcreateMesh (ISubDomain *sub_domain, IParallelMng *pm, const String &name) override
 Creates or retrieves a mesh.
IPrimaryMeshcreateMesh (ISubDomain *sub_domain, const String &name, bool is_amr) override
 Creates or retrieves a mesh.
IPrimaryMeshcreateMesh (ISubDomain *sub_domain, const String &name, eMeshAMRKind amr_type) override
 Creates or retrieves a mesh.
IPrimaryMeshcreateMesh (ISubDomain *sub_domain, IParallelMng *pm, const String &name, bool is_amr) override
 Creates or retrieves a mesh.
IPrimaryMeshcreateMesh (ISubDomain *sub_domain, IParallelMng *pm, const String &name, eMeshAMRKind amr_type) override
 Creates or retrieves a mesh.
IMeshcreateSubMesh (IMesh *mesh, const ItemGroup &group, const String &name) override
 Creates a sub-mesh for the mesh mesh, named name.
IDataFactorycreateDataFactory (IApplication *) override
 Creates a factory for data.
Ref< IDataFactoryMngcreateDataFactoryMngRef (IApplication *) override
 Creates a factory manager for data.
Ref< IAcceleratorMngcreateAcceleratorMngRef (ITraceMng *tm) override
 Creates a manager for accelerators.
ITraceMngcreateTraceMng () override
 Creates a trace manager.
ITraceMngPolicycreateTraceMngPolicy (IApplication *app) override
 Creates a configuration manager for a trace manager.
IModuleMastercreateModuleMaster (ISubDomain *sd) override
 Creates the master module for the sub-domain sd.
ILoadBalanceMngcreateLoadBalanceMng (ISubDomain *sd) override
 Creates a description manager for load balancing.
Public Member Functions inherited from Arcane::IMainFactory
virtual ~IMainFactory ()
 Releases resources.

Detailed Description

Creation of Arcane classes.

Arcane provides default factories for most managers (ISuperMng, IParallelSuperMng, ...). However, the class managing the code must be specified by implementing the createArcaneMain() method in a derived class.

The general entry point of the code is achieved by calling the function arcaneMain().

For example, if we define a class ConcreteMainFactory that derives from MainFactory, we run the code as follows:

int
main(int argc,char** argv)
{
ExeInfo exe_info = ... // Creation of executable info.
ConcreteMainFactory cmf; // Creation of the factory
return Arcane::ArcaneMain::arcaneMain(exe_info,&cmf);
}
static IArcaneMain * arcaneMain()

Definition at line 52 of file MainFactory.h.

Constructor & Destructor Documentation

◆ MainFactory()

Arcane::MainFactory::MainFactory ( )

Definition at line 106 of file MainFactory.cc.

◆ ~MainFactory()

Arcane::MainFactory::~MainFactory ( )
override

Definition at line 114 of file MainFactory.cc.

Member Function Documentation

◆ createAcceleratorMngRef()

Ref< IAcceleratorMng > Arcane::MainFactory::createAcceleratorMngRef ( ITraceMng * tm)
overridevirtual

Creates a manager for accelerators.

Implements Arcane::IMainFactory.

Definition at line 411 of file MainFactory.cc.

◆ createApplication()

IApplication * Arcane::MainFactory::createApplication ( IArcaneMain * )
overridevirtual

Creates an instance of a supervisor.

Implements Arcane::IMainFactory.

Definition at line 131 of file MainFactory.cc.

◆ createArcaneMain()

IArcaneMain * Arcane::MainFactory::createArcaneMain ( const ApplicationInfo & app_info)
overridevirtual

Creates an instance of IArcaneMain.

Implements Arcane::IMainFactory.

Reimplemented in Arcane::MpiBatchMainFactory.

Definition at line 122 of file MainFactory.cc.

◆ createCaseDocument() [1/3]

ICaseDocument * Arcane::MainFactory::createCaseDocument ( IApplication * )
overridevirtual

Creates an instance of a case document.

Implements Arcane::IMainFactory.

Definition at line 288 of file MainFactory.cc.

References Arcane::IBase::traceMng().

Here is the call graph for this function:

◆ createCaseDocument() [2/3]

ICaseDocument * Arcane::MainFactory::createCaseDocument ( IApplication * ,
const String & lang )
overridevirtual

Creates an instance of a case document for a given language lang.

Implements Arcane::IMainFactory.

Definition at line 297 of file MainFactory.cc.

References Arcane::IBase::traceMng().

Here is the call graph for this function:

◆ createCaseDocument() [3/3]

ICaseDocument * Arcane::MainFactory::createCaseDocument ( IApplication * ,
IXmlDocumentHolder * doc )
overridevirtual

Creates an instance of a case document.

Implements Arcane::IMainFactory.

Definition at line 306 of file MainFactory.cc.

References Arcane::IBase::traceMng().

Here is the call graph for this function:

◆ createCaseMng()

ICaseMng * Arcane::MainFactory::createCaseMng ( ISubDomain * )
overridevirtual

Creates an instance of the case manager.

Implements Arcane::IMainFactory.

Definition at line 178 of file MainFactory.cc.

◆ createCheckpointMng()

ICheckpointMng * Arcane::MainFactory::createCheckpointMng ( ISubDomain * )
overridevirtual

Creates an instance of the checkpoint manager.

Implements Arcane::IMainFactory.

Definition at line 261 of file MainFactory.cc.

◆ createDataFactory()

IDataFactory * Arcane::MainFactory::createDataFactory ( IApplication * )
overridevirtual

Creates a factory for data.

Implements Arcane::IMainFactory.

Definition at line 393 of file MainFactory.cc.

◆ createDataFactoryMngRef()

Ref< IDataFactoryMng > Arcane::MainFactory::createDataFactoryMngRef ( IApplication * )
overridevirtual

Creates a factory manager for data.

Implements Arcane::IMainFactory.

Definition at line 402 of file MainFactory.cc.

◆ createEntryPointMng()

IEntryPointMng * Arcane::MainFactory::createEntryPointMng ( ISubDomain * )
overridevirtual

Creates an instance of the entry point manager.

Implements Arcane::IMainFactory.

Definition at line 158 of file MainFactory.cc.

◆ createIOMng() [1/2]

IIOMng * Arcane::MainFactory::createIOMng ( IApplication * )
overridevirtual

Creates an instance of the I/O manager.

Implements Arcane::IMainFactory.

Definition at line 225 of file MainFactory.cc.

References Arcane::IApplication::parallelSuperMng().

Here is the call graph for this function:

◆ createIOMng() [2/2]

IIOMng * Arcane::MainFactory::createIOMng ( IParallelMng * pm)
overridevirtual

Creates an instance of the I/O manager for the parallelism manager pm.

Implements Arcane::IMainFactory.

Definition at line 234 of file MainFactory.cc.

◆ createLoadBalanceMng()

ILoadBalanceMng * Arcane::MainFactory::createLoadBalanceMng ( ISubDomain * sd)
overridevirtual

Creates a description manager for load balancing.

Implements Arcane::IMainFactory.

Definition at line 452 of file MainFactory.cc.

◆ createMesh() [1/6]

IPrimaryMesh * Arcane::MainFactory::createMesh ( ISubDomain * sub_domain,
const String & name )
overridevirtual

Creates or retrieves a mesh.

Creates or retrieves a mesh named name for the sub-domain sub_domain.

If the sub-domain already has a mesh with the name name, the latter is returned.

Implements Arcane::IMainFactory.

Definition at line 359 of file MainFactory.cc.

References createMesh(), Arcane::None, and Arcane::ISubDomain::parallelMng().

Referenced by createMesh(), createMesh(), createMesh(), createMesh(), and createMesh().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ createMesh() [2/6]

IPrimaryMesh * Arcane::MainFactory::createMesh ( ISubDomain * sub_domain,
const String & name,
bool is_amr )
overridevirtual

Creates or retrieves a mesh.

Creates or retrieves a mesh named name for the sub-domain sub_domain.

If the sub-domain already has a mesh with the name name, the latter is returned.

Implements Arcane::IMainFactory.

Definition at line 324 of file MainFactory.cc.

References Arcane::Cell, createMesh(), Arcane::None, and Arcane::ISubDomain::parallelMng().

Here is the call graph for this function:

◆ createMesh() [3/6]

IPrimaryMesh * Arcane::MainFactory::createMesh ( ISubDomain * sub_domain,
const String & name,
eMeshAMRKind amr_type )
overridevirtual

Creates or retrieves a mesh.

Creates or retrieves a mesh named name for the sub-domain sub_domain.

If the sub-domain already has a mesh with the name name, the latter is returned.

Implements Arcane::IMainFactory.

Definition at line 315 of file MainFactory.cc.

References createMesh(), and Arcane::ISubDomain::parallelMng().

Here is the call graph for this function:

◆ createMesh() [4/6]

IPrimaryMesh * Arcane::MainFactory::createMesh ( ISubDomain * sub_domain,
IParallelMng * pm,
const String & name )
overridevirtual

Creates or retrieves a mesh.

Creates or retrieves a mesh named name for the sub-domain sub_domain associated with the parallelism manager pm. If the sub-domain already has a mesh with the name name, the latter is returned.

The parallelism manager must be the same as that of the sub-domain or derived from it.

Implements Arcane::IMainFactory.

Definition at line 368 of file MainFactory.cc.

References createMesh(), and Arcane::None.

Here is the call graph for this function:

◆ createMesh() [5/6]

IPrimaryMesh * Arcane::MainFactory::createMesh ( ISubDomain * sub_domain,
IParallelMng * pm,
const String & name,
bool is_amr )
overridevirtual

Creates or retrieves a mesh.

Creates or retrieves a mesh named name for the sub-domain sub_domain associated with the parallelism manager pm. If the sub-domain already has a mesh with the name name, the latter is returned.

The parallelism manager must be the same as that of the sub-domain or derived from it.

Implements Arcane::IMainFactory.

Definition at line 333 of file MainFactory.cc.

References Arcane::Cell, createMesh(), and Arcane::None.

Here is the call graph for this function:

◆ createMesh() [6/6]

IPrimaryMesh * Arcane::MainFactory::createMesh ( ISubDomain * sub_domain,
IParallelMng * pm,
const String & name,
eMeshAMRKind amr_type )
overridevirtual

Creates or retrieves a mesh.

Creates or retrieves a mesh named name for the sub-domain sub_domain associated with the parallelism manager pm. If the sub-domain already has a mesh with the name name, the latter is returned.

The parallelism manager must be the same as that of the sub-domain or derived from it.

Implements Arcane::IMainFactory.

Definition at line 342 of file MainFactory.cc.

References Arcane::MeshBuildInfo::addFactoryName(), Arcane::MeshBuildInfo::addMeshKind(), Arcane::MeshBuildInfo::addParallelMng(), Arcane::IMeshFactoryMng::createMesh(), Arcane::makeRef(), Arcane::IMeshMng::meshFactoryMng(), Arcane::MeshBuildInfo::meshKind(), Arcane::ISubDomain::meshMng(), and Arcane::None.

Here is the call graph for this function:

◆ createModuleMaster()

IModuleMaster * Arcane::MainFactory::createModuleMaster ( ISubDomain * sd)
overridevirtual

Creates the master module for the sub-domain sd.

Implements Arcane::IMainFactory.

Definition at line 438 of file MainFactory.cc.

References Arcane::IModuleMng::addModule(), ARCANE_FATAL, Arcane::makeRef(), and Arcane::ISubDomain::moduleMng().

Here is the call graph for this function:

◆ createModuleMng()

IModuleMng * Arcane::MainFactory::createModuleMng ( ISubDomain * )
overridevirtual

Creates an instance of the module manager.

Implements Arcane::IMainFactory.

Definition at line 149 of file MainFactory.cc.

◆ createPropertyMng()

IPropertyMng * Arcane::MainFactory::createPropertyMng ( ISubDomain * )
overridevirtual

Creates an instance of the property manager.

Implements Arcane::IMainFactory.

Definition at line 270 of file MainFactory.cc.

References Arcane::IBase::traceMng().

Here is the call graph for this function:

◆ createPropertyMngReference()

Ref< IPropertyMng > Arcane::MainFactory::createPropertyMngReference ( ISubDomain * )
overridevirtual

Creates an instance of the property manager.

Implements Arcane::IMainFactory.

Definition at line 279 of file MainFactory.cc.

References Arcane::IBase::traceMng().

Here is the call graph for this function:

◆ createServiceLoader()

IServiceLoader * Arcane::MainFactory::createServiceLoader ( )
overridevirtual

Creates an instance of the service loader.

Implements Arcane::IMainFactory.

Definition at line 243 of file MainFactory.cc.

◆ createServiceMng()

IServiceMng * Arcane::MainFactory::createServiceMng ( IBase * )
overridevirtual

Creates an instance of the service manager.

Implements Arcane::IMainFactory.

Definition at line 252 of file MainFactory.cc.

◆ createSubMesh()

IMesh * Arcane::MainFactory::createSubMesh ( IMesh * mesh,
const ItemGroup & group,
const String & name )
overridevirtual

Creates a sub-mesh for the mesh mesh, named name.

The sub-mesh is initialized with the items of the group group. Currently, this group cannot be a complete group (isAllItems()) nor a calculated group (if not incremental).

Implements Arcane::IMainFactory.

Definition at line 377 of file MainFactory.cc.

References Arcane::MeshBuildInfo::addFactoryName(), Arcane::MeshBuildInfo::addParentGroup(), and Arcane::IMeshFactoryMng::createMesh().

Here is the call graph for this function:

◆ createTimeHistoryMng()

ITimeHistoryMng * Arcane::MainFactory::createTimeHistoryMng ( ISubDomain * )
overridevirtual

Creates an instance of the time history manager.

Implements Arcane::IMainFactory.

Definition at line 167 of file MainFactory.cc.

◆ createTimeLoop()

ITimeLoop * Arcane::MainFactory::createTimeLoop ( IApplication * sm,
const String & name )
overridevirtual

Creates a time loop named name.

Implements Arcane::IMainFactory.

Definition at line 216 of file MainFactory.cc.

◆ createTimeLoopMng()

ITimeLoopMng * Arcane::MainFactory::createTimeLoopMng ( ISubDomain * )
overridevirtual

Creates an instance of the time loop manager.

Implements Arcane::IMainFactory.

Definition at line 207 of file MainFactory.cc.

◆ createTimeStats() [1/2]

ITimeStats * Arcane::MainFactory::createTimeStats ( ISubDomain * )
overridevirtual

Creates an instance of execution time statistics.

Use the overloaded createTimeStats(ITimerMng*,ITraceMng*,const String& name).

Implements Arcane::IMainFactory.

Definition at line 187 of file MainFactory.cc.

References Arcane::ISubDomain::subDomainId(), Arcane::ISubDomain::timerMng(), and Arcane::IBase::traceMng().

Here is the call graph for this function:

◆ createTimeStats() [2/2]

ITimeStats * Arcane::MainFactory::createTimeStats ( ITimerMng * tim,
ITraceMng * trm,
const String & name )
overridevirtual

Creates an instance of execution time statistics.

Implements Arcane::IMainFactory.

Definition at line 198 of file MainFactory.cc.

◆ createTraceMng()

ITraceMng * Arcane::MainFactory::createTraceMng ( )
overridevirtual

Creates a trace manager.

The returned instance must be initialized via an ITraceMngPolicy.

Implements Arcane::IMainFactory.

Definition at line 420 of file MainFactory.cc.

◆ createTraceMngPolicy()

ITraceMngPolicy * Arcane::MainFactory::createTraceMngPolicy ( IApplication * app)
overridevirtual

Creates a configuration manager for a trace manager.

Implements Arcane::IMainFactory.

Definition at line 429 of file MainFactory.cc.

◆ createVariableMng()

IVariableMng * Arcane::MainFactory::createVariableMng ( ISubDomain * )
overridevirtual

Creates an instance of the variable manager.

Implements Arcane::IMainFactory.

Definition at line 140 of file MainFactory.cc.


The documentation for this class was generated from the following files: