intersection with triangle plane for miss
[OpenFOAM-1.5.x.git] / src / OpenFOAM / matrices / lduMatrix / preconditioners / FDICPreconditioner / FDICPreconditioner.H
blob6312b8171f91772d9b4ccd51676faf3bdb23cc7c
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-2008 OpenCFD Ltd.
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
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
19     for more details.
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
25 Class
26     Foam::FDICPreconditioner
28 Description
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.
35 SourceFiles
36     FDICPreconditioner.C
38 \*---------------------------------------------------------------------------*/
40 #ifndef FDICPreconditioner_H
41 #define FDICPreconditioner_H
43 #include "lduMatrix.H"
45 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
47 namespace Foam
50 /*---------------------------------------------------------------------------*\
51                            Class FDICPreconditioner Declaration
52 \*---------------------------------------------------------------------------*/
54 class FDICPreconditioner
56     public lduMatrix::preconditioner
58     // Private data
60         //- The reciprocal preconditioned diagonal
61         scalarField rD_;
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&);
75 public:
77     //- Runtime type information
78     TypeName("FDIC");
81     // Constructors
83         //- Construct from matrix components and preconditioner data stream
84         FDICPreconditioner
85         (
86             const lduMatrix::solver& sol,
87             Istream& preconditionerData
88         );
91     // Destructor
93         virtual ~FDICPreconditioner()
94         {}
97     // Member Functions
99         //- Return wA the preconditioned form of residual rA
100         virtual void precondition
101         (
102             scalarField& wA,
103             const scalarField& rA,
104             const direction cmpt=0
105         ) const;
109 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
111 } // End namespace Foam
113 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
115 #endif
117 // ************************************************************************* //