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
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
30namespace Arcane
31{
32
33/*---------------------------------------------------------------------------*/
34/*---------------------------------------------------------------------------*/
35
36class IApplication;
37
38/*---------------------------------------------------------------------------*/
39/*---------------------------------------------------------------------------*/
40
41/******************************************************************************
42 * IAlephFactory::IAlephFactory
43 *****************************************************************************/
44class 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
Arcane configuration file.
Interface of an implementation factory for Aleph.
Application interface.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Int32 Integer
Type representing an integer.