1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
5 \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
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
13 the Free Software Foundation, either version 3 of the License, or
14 (at your 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, see <http://www.gnu.org/licenses/>.
24 \*---------------------------------------------------------------------------*/
26 #include "geomDecomp.H"
28 // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
30 Foam::geomDecomp::geomDecomp
32 const dictionary& decompositionDict,
33 const word& derivedType
36 decompositionMethod(decompositionDict),
37 geomDecomDict_(decompositionDict.subDict(derivedType + "Coeffs")),
38 n_(geomDecomDict_.lookup("n")),
39 delta_(readScalar(geomDecomDict_.lookup("delta"))),
42 // check that the case makes sense :
44 if (nProcessors_ != n_.x()*n_.y()*n_.z())
48 "geomDecomp::geomDecomp"
49 "(const dictionary& decompositionDict)"
50 ) << "Wrong number of processor divisions in geomDecomp:" << nl
51 << "Number of domains : " << nProcessors_ << nl
52 << "Wanted decomposition : " << n_
56 scalar d = 1 - 0.5*delta_*delta_;
65 a*d - a2*d, a*a2 + d2, -2*a*d,
66 a*d2 + a2, a*d - a2*d, d2 - a2
71 // ************************************************************************* //