Arcane
4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
IAlephFactory.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
/* IAlephFactory.h (C) 2000-2015 */
9
/* */
10
/* Factory interface for Aleph. */
11
/*---------------------------------------------------------------------------*/
12
#ifndef ARCANE_ALEPH_IALEPHFACTORY_H
13
#define ARCANE_ALEPH_IALEPHFACTORY_H
14
/*---------------------------------------------------------------------------*/
15
/*---------------------------------------------------------------------------*/
16
17
#include "
arcane/utils/ArcaneGlobal.h
"
18
#include "arcane/utils/TraceInfo.h"
19
#include "arcane/utils/NotSupportedException.h"
20
#include "arcane/utils/NotImplementedException.h"
21
22
#include "arcane/aleph/AlephGlobal.h"
23
#include "arcane/aleph/AlephInterface.h"
24
25
#include <map>
26
27
/*---------------------------------------------------------------------------*/
28
/*---------------------------------------------------------------------------*/
29
30
namespace
Arcane
31
{
32
33
/*---------------------------------------------------------------------------*/
34
/*---------------------------------------------------------------------------*/
35
36
class
IApplication
;
37
38
/*---------------------------------------------------------------------------*/
39
/*---------------------------------------------------------------------------*/
40
41
/******************************************************************************
42
* IAlephFactory::IAlephFactory
43
*****************************************************************************/
44
class
ARCANE_ALEPH_EXPORT AlephFactory
45
:
public
IAlephFactory
46
{
47
private
:
48
49
class
FactoryImpl
;
50
51
public
:
52
53
AlephFactory(
IApplication
* app,
ITraceMng
* tm);
54
~AlephFactory();
55
56
public
:
57
58
IAlephTopology
* GetTopology(
AlephKernel
* kernel,
Integer
index,
Integer
nb_row_size);
59
IAlephVector
* GetVector(
AlephKernel
* kernel,
Integer
index);
60
IAlephMatrix
* GetMatrix(
AlephKernel
* kernel,
Integer
index);
61
virtual
bool
hasSolverImplementation(
Integer
id
);
62
63
private
:
64
65
typedef
std::map<Integer, FactoryImpl*> FactoryImplMap;
66
FactoryImplMap m_impl_map;
67
IAlephFactoryImpl
* _getFactory(
Integer
solver_index);
68
};
69
70
/*---------------------------------------------------------------------------*/
71
/*---------------------------------------------------------------------------*/
72
73
}
// namespace Arcane
74
75
/*---------------------------------------------------------------------------*/
76
/*---------------------------------------------------------------------------*/
77
78
#endif
ArcaneGlobal.h
Arcane configuration file.
Arcane::AlephFactory::FactoryImpl
Definition
AlephFactory.cc:27
Arcane::AlephKernel
Definition
AlephKernel.h:117
Arcane::IAlephFactoryImpl
Interface of an implementation factory for Aleph.
Definition
AlephInterface.h:188
Arcane::IAlephMatrix
Definition
AlephInterface.h:117
Arcane::IAlephTopology
Definition
AlephInterface.h:38
Arcane::IAlephVector
Definition
AlephInterface.h:79
Arcane::IApplication
Application interface.
Definition
IApplication.h:58
Arcane::ITraceMng
Trace manager interface.
Definition
arccore/src/trace/arccore/trace/ITraceMng.h:175
Arcane
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Definition
arcane/src/arcane/accelerator/AcceleratorGlobal.h:37
Arcane::Integer
Int32 Integer
Type representing an integer.
Definition
ArccoreGlobal.h:293
arcane
aleph
IAlephFactory.h
Generated on
for Arcane by
1.16.1