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
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 // ************************************************************************* //
Foam::FDICPreconditioner::rD_
scalarField rD_
The reciprocal preconditioned diagonal.
Definition: FDICPreconditioner.H:59
Foam::FDICPreconditioner::rDlUpper_
scalarField rDlUpper_
Definition: FDICPreconditioner.H:61
Foam::FDICPreconditioner::~FDICPreconditioner
virtual ~FDICPreconditioner()
Destructor.
Definition: FDICPreconditioner.H:90
Foam::FDICPreconditioner::TypeName
TypeName("FDIC")
Runtime type information.
Foam::lduMatrix::solver
Abstract base-class for lduMatrix solvers.
Definition: lduMatrix.H:91
lduMatrix.H
Foam::FDICPreconditioner::rDuUpper_
scalarField rDuUpper_
Definition: FDICPreconditioner.H:60
Foam::Field
Pre-declare SubField and related Field type.
Definition: Field.H:57
Foam::dictionary
A list of keyword definitions, which are a keyword followed by any number of values (e....
Definition: dictionary.H:137
Foam::FDICPreconditioner::FDICPreconditioner
FDICPreconditioner(const FDICPreconditioner &)
Disallow default bitwise copy construct.
Foam
Namespace for OpenFOAM.
Definition: combustionModel.C:30
Foam::FDICPreconditioner::operator=
void operator=(const FDICPreconditioner &)
Disallow default bitwise assignment.
Foam::direction
unsigned char direction
Definition: direction.H:43
Foam::FDICPreconditioner::precondition
virtual void precondition(scalarField &wA, const scalarField &rA, const direction cmpt=0) const
Return wA the preconditioned form of residual rA.
Definition: FDICPreconditioner.C:89
Foam::lduMatrix::preconditioner
Abstract base-class for lduMatrix preconditioners.
Definition: lduMatrix.H:405
Foam::FDICPreconditioner
Faster version of the DICPreconditioner diagonal-based incomplete Cholesky preconditioner for symmetr...
Definition: FDICPreconditioner.H:52