OpenFOAM: API Guide
v2112
The open source CFD toolbox
FDICPreconditioner.H
Go to the documentation of this file.
1
/*---------------------------------------------------------------------------*\
2
========= |
3
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4
\\ / O peration |
5
\\ / A nd | www.openfoam.com
6
\\/ M anipulation |
7
-------------------------------------------------------------------------------
8
Copyright (C) 2011 OpenFOAM Foundation
9
Copyright (C) 2019 OpenCFD Ltd.
10
-------------------------------------------------------------------------------
11
License
12
This file is part of OpenFOAM.
13
14
OpenFOAM is free software: you can redistribute it and/or modify it
15
under the terms of the GNU General Public License as published by
16
the Free Software Foundation, either version 3 of the License, or
17
(at your option) any later version.
18
19
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
20
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
21
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22
for more details.
23
24
You should have received a copy of the GNU General Public License
25
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
26
27
Class
28
Foam::FDICPreconditioner
29
30
Group
31
grpLduMatrixPreconditioners
32
33
Description
34
Faster version of the DICPreconditioner diagonal-based incomplete
35
Cholesky preconditioner for symmetric matrices
36
(symmetric equivalent of DILU) in which the reciprocal of the
37
preconditioned diagonal and the upper coefficients divided by the diagonal
38
are calculated and stored.
39
40
SourceFiles
41
FDICPreconditioner.C
42
43
\*---------------------------------------------------------------------------*/
44
45
#ifndef FDICPreconditioner_H
46
#define FDICPreconditioner_H
47
48
#include "
lduMatrix.H
"
49
50
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
51
52
namespace
Foam
53
{
54
55
/*---------------------------------------------------------------------------*\
56
Class FDICPreconditioner Declaration
57
\*---------------------------------------------------------------------------*/
58
59
class
FDICPreconditioner
60
:
61
public
lduMatrix::preconditioner
62
{
63
// Private data
64
65
//- The reciprocal preconditioned diagonal
66
solveScalarField
rD_;
67
solveScalarField
rDuUpper_;
68
solveScalarField
rDlUpper_;
69
70
71
// Private Member Functions
72
73
//- No copy construct
74
FDICPreconditioner
(
const
FDICPreconditioner
&) =
delete
;
75
76
//- No copy assignment
77
void
operator=(
const
FDICPreconditioner
&) =
delete
;
78
79
80
public
:
81
82
//- Runtime type information
83
TypeName
(
"FDIC"
);
84
85
86
// Constructors
87
88
//- Construct from matrix components and preconditioner solver controls
89
FDICPreconditioner
90
(
91
const
lduMatrix::solver
&,
92
const
dictionary
& solverControlsUnused
93
);
94
95
96
//- Destructor
97
virtual
~FDICPreconditioner
() =
default
;
98
99
100
// Member Functions
101
102
//- Return wA the preconditioned form of residual rA
103
virtual
void
precondition
104
(
105
solveScalarField
& wA,
106
const
solveScalarField
& rA,
107
const
direction
cmpt=0
108
)
const
;
109
};
110
111
112
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
113
114
}
// End namespace Foam
115
116
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
117
118
#endif
119
120
// ************************************************************************* //
Foam::FDICPreconditioner::TypeName
TypeName("FDIC")
Runtime type information.
Foam::lduMatrix::solver
Abstract base-class for lduMatrix solvers.
Definition:
lduMatrix.H:98
lduMatrix.H
Foam::FDICPreconditioner::~FDICPreconditioner
virtual ~FDICPreconditioner()=default
Destructor.
Foam::Field< solveScalar >
Foam::dictionary
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition:
dictionary.H:123
Foam
Namespace for OpenFOAM.
Definition:
atmBoundaryLayer.C:33
Foam::direction
uint8_t direction
Definition:
direction.H:52
Foam::FDICPreconditioner::precondition
virtual void precondition(solveScalarField &wA, const solveScalarField &rA, const direction cmpt=0) const
Return wA the preconditioned form of residual rA.
Definition:
FDICPreconditioner.C:96
Foam::lduMatrix::preconditioner
Abstract base-class for lduMatrix preconditioners.
Definition:
lduMatrix.H:433
Foam::FDICPreconditioner
Faster version of the DICPreconditioner diagonal-based incomplete Cholesky preconditioner for symmetr...
Definition:
FDICPreconditioner.H:58
src
OpenFOAM
matrices
lduMatrix
preconditioners
FDICPreconditioner
FDICPreconditioner.H
Generated by
1.8.17
OPENFOAM® is a registered
trademark
of OpenCFD Ltd.