1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
5 \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd.
7 -------------------------------------------------------------------------------
9 This file is part of OpenFOAM.
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 the
13 Free Software Foundation; either version 2 of the License, or (at your
14 option) any later version.
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
21 You should have received a copy of the GNU General Public License
22 along with OpenFOAM; if not, write to the Free Software Foundation,
23 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
26 Foam::FDICPreconditioner
29 Faster version of the DICPreconditioner diagonal-based incomplete
30 Cholesky preconditioner for symmetric matrices
31 (symmetric equivalent of DILU) in which the the reciprocal of the
32 preconditioned diagonal and the upper coefficients divided by the diagonal
33 are calculated and stored.
38 \*---------------------------------------------------------------------------*/
40 #ifndef FDICPreconditioner_H
41 #define FDICPreconditioner_H
43 #include "lduMatrix.H"
45 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
50 /*---------------------------------------------------------------------------*\
51 Class FDICPreconditioner Declaration
52 \*---------------------------------------------------------------------------*/
54 class FDICPreconditioner
56 public lduMatrix::preconditioner
60 //- The reciprocal preconditioned diagonal
62 scalarField rDuUpper_;
63 scalarField rDlUpper_;
66 // Private Member Functions
68 //- Disallow default bitwise copy construct
69 FDICPreconditioner(const FDICPreconditioner&);
71 //- Disallow default bitwise assignment
72 void operator=(const FDICPreconditioner&);
77 //- Runtime type information
83 //- Construct from matrix components and preconditioner data stream
86 const lduMatrix::solver& sol,
87 Istream& preconditionerData
93 virtual ~FDICPreconditioner()
99 //- Return wA the preconditioned form of residual rA
100 virtual void precondition
103 const scalarField& rA,
104 const direction cmpt=0
109 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
111 } // End namespace Foam
113 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
117 // ************************************************************************* //