fixed writing out entries in advective bc
[OpenFOAM-1.6-ext.git] / src / OpenFOAM / matrices / blockLduMatrix / BlockLduSolvers / BlockDiagonal / BlockDiagonalSolver.C
blob663f62175ea51493da90bace2b6e79485b71937d
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2004-6 H. Jasak All rights reserved
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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25 Description
26     Solver for diagonal matrices.
28 \*---------------------------------------------------------------------------*/
30 #include "BlockDiagonalSolver.H"
31 #include "BlockSolverPerformance.H"
33 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
35 //- Construct from matrix
36 template<class Type>
37 Foam::BlockDiagonalSolver<Type>::BlockDiagonalSolver
39     const word& fieldName,
40     const BlockLduMatrix<Type>& matrix,
41     const dictionary& dict
44     BlockLduSolver<Type>(fieldName, matrix, dict)
48 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
50 template<class Type>
51 Foam::BlockSolverPerformance<Type>
52 Foam::BlockDiagonalSolver<Type>::solve
54     Field<Type>& x,
55     const Field<Type>& b
58     CoeffField<Type> dD = inv(this->matrix_.diag());
60     multiply(x, b, dD);
62     return BlockSolverPerformance<Type>
63     (
64         this->typeName,
65         this->fieldName(),
66         pTraits<Type>::zero,
67         pTraits<Type>::zero,
68         0,
69         true,
70         false
71     );
75 // ************************************************************************* //