fixed writing out entries in advective bc
[OpenFOAM-1.6-ext.git] / src / coupledMatrix / coupledLduPrecon / CholeskyPrecon / coupledCholeskyPrecon.H
blob64eecaa50c9a0893a96bf12afca6da9d07d0b63a
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright held by original author
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     coupledCholeskyPrecon
28 Description
29     Incomplete Cholesky preconditioning with no fill-in.
31 Author
32     Hrvoje Jasak, Wikki Ltd.  All rights reserved.
34 SourceFiles
35     coupledCholeskyPrecon.C
37 \*---------------------------------------------------------------------------*/
39 #ifndef coupledCholeskyPrecon_H
40 #define coupledCholeskyPrecon_H
42 #include "coupledLduPrecon.H"
44 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
46 namespace Foam
49 /*---------------------------------------------------------------------------*\
50                       Class coupledCholeskyPrecon Declaration
51 \*---------------------------------------------------------------------------*/
53 class coupledCholeskyPrecon
55     public coupledLduPrecon
57     // Private Data
59         //- Preconditioned diagonal
60         FieldField<Field, scalar> preconDiag_;
63     // Private Member Functions
65         //- Disallow default bitwise copy construct
66         coupledCholeskyPrecon(const coupledCholeskyPrecon&);
68         //- Disallow default bitwise assignment
69         void operator=(const coupledCholeskyPrecon&);
71         //- Precondition the diagonal
72         void calcPreconDiag();
75 public:
77     //- Runtime type information
78     TypeName("Cholesky");
81     // Constructors
83         //- Construct from components
84         coupledCholeskyPrecon
85         (
86             const coupledLduMatrix& matrix,
87             const PtrList<FieldField<Field, scalar> >& bouCoeffs,
88             const PtrList<FieldField<Field, scalar> >& intCoeffs,
89             const lduInterfaceFieldPtrsListList& interfaces
90         );
92         //- Construct from dictionary
93         coupledCholeskyPrecon
94         (
95             const coupledLduMatrix& matrix,
96             const PtrList<FieldField<Field, scalar> >& bouCoeffs,
97             const PtrList<FieldField<Field, scalar> >& intCoeffs,
98             const lduInterfaceFieldPtrsListList& interfaces,
99             const dictionary& dict
100         );
103     // Destructor
105         virtual ~coupledCholeskyPrecon()
106         {}
109     // Member Functions
111         //- Execute preconditioning
112         virtual void precondition
113         (
114             FieldField<Field, scalar>& x,
115             const FieldField<Field, scalar>& b,
116             const direction cmpt = 0
117         ) const;
119         //- Execute preconditioning for the transpose matrix
120         virtual void preconditionT
121         (
122             FieldField<Field, scalar>& x,
123             const FieldField<Field, scalar>& b,
124             const direction cmpt = 0
125         ) const;
129 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
131 } // End namespace Foam
133 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
135 #endif
137 // ************************************************************************* //