Alien  1.3.0
Developer documentation
Loading...
Searching...
No Matches
IInternalEigenSolverT.h
Go to the documentation of this file.
1/*
2 * Copyright 2020 IFPEN-CEA
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *
16 * SPDX-License-Identifier: Apache-2.0
17 */
18
23#pragma once
24
25#include <alien/utils/Precomp.h>
26#include <memory>
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
30
31namespace Alien
32{
33
34/*---------------------------------------------------------------------------*/
35/*---------------------------------------------------------------------------*/
36
37class EigenProblem;
38
48template <class Matrix, class Vector>
50{
51 public:
54
56 virtual void init() = 0;
57
63 virtual bool solve(const EigenProblem& problem) = 0;
64
69 virtual bool hasParallelSupport() const = 0;
70
75 virtual const IEigenSolver::Status& getStatus() const = 0;
76};
77
78/*---------------------------------------------------------------------------*/
79/*---------------------------------------------------------------------------*/
80
90template <class Matrix, class Vector>
92{
93 public:
96
98 virtual void init() = 0;
99
105 virtual bool solve(const GeneralizedEigenProblem& problem) = 0;
106
111 virtual bool hasParallelSupport() const = 0;
112
117 virtual const IEigenSolver::Status& getStatus() const = 0;
118};
119
120/*---------------------------------------------------------------------------*/
121/*---------------------------------------------------------------------------*/
122
123} // namespace Alien
124
125/*---------------------------------------------------------------------------*/
126/*---------------------------------------------------------------------------*/
Defines an eigen problem.
Defines a generalized eigen problem.
virtual bool solve(const EigenProblem &problem)=0
Solve the eigen problem.
virtual const IEigenSolver::Status & getStatus() const =0
Get solver resolution status.
virtual void init()=0
Initialize the eigen solver.
virtual ~IInternalEigenSolver()
Free resources.
virtual bool hasParallelSupport() const =0
Indicates if the kernel is parallel.
Generalized eigen solver internal.
virtual const IEigenSolver::Status & getStatus() const =0
Get solver resolution status.
virtual bool solve(const GeneralizedEigenProblem &problem)=0
Solve the eigen problem.
virtual void init()=0
Initialize the eigen solver.
virtual ~IInternalGeneralizedEigenSolver()
Free resources.
virtual bool hasParallelSupport() const =0
Indicates if the kernel is parallel.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Definition BackEnd.h:17
Eigen solver status.