Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include <decompositionMethods/geomDecomp.H>
00027
00028
00029
00030 Foam::geomDecomp::geomDecomp
00031 (
00032 const dictionary& decompositionDict,
00033 const word& derivedType
00034 )
00035 :
00036 decompositionMethod(decompositionDict),
00037 geomDecomDict_(decompositionDict.subDict(derivedType + "Coeffs")),
00038 n_(geomDecomDict_.lookup("n")),
00039 delta_(readScalar(geomDecomDict_.lookup("delta"))),
00040 rotDelta_(I)
00041 {
00042
00043
00044 if (nProcessors_ != n_.x()*n_.y()*n_.z())
00045 {
00046 FatalErrorIn
00047 (
00048 "geomDecomp::geomDecomp"
00049 "(const dictionary& decompositionDict)"
00050 ) << "Wrong number of processor divisions in geomDecomp:" << nl
00051 << "Number of domains : " << nProcessors_ << nl
00052 << "Wanted decomposition : " << n_
00053 << exit(FatalError);
00054 }
00055
00056 scalar d = 1 - 0.5*delta_*delta_;
00057 scalar d2 = sqr(d);
00058
00059 scalar a = delta_;
00060 scalar a2 = sqr(a);
00061
00062 rotDelta_ = tensor
00063 (
00064 d2, -a*d, a,
00065 a*d - a2*d, a*a2 + d2, -2*a*d,
00066 a*d2 + a2, a*d - a2*d, d2 - a2
00067 );
00068 }
00069
00070
00071