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