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 <OpenFOAM/DILUGaussSeidelSmoother.H>
00027
00028
00029
00030 namespace Foam
00031 {
00032 defineTypeNameAndDebug(DILUGaussSeidelSmoother, 0);
00033
00034 lduMatrix::smoother::
00035 addasymMatrixConstructorToTable<DILUGaussSeidelSmoother>
00036 addDILUGaussSeidelSmootherAsymMatrixConstructorToTable_;
00037 }
00038
00039
00040
00041
00042 Foam::DILUGaussSeidelSmoother::DILUGaussSeidelSmoother
00043 (
00044 const word& fieldName,
00045 const lduMatrix& matrix,
00046 const FieldField<Field, scalar>& interfaceBouCoeffs,
00047 const FieldField<Field, scalar>& interfaceIntCoeffs,
00048 const lduInterfaceFieldPtrsList& interfaces
00049 )
00050 :
00051 lduMatrix::smoother
00052 (
00053 fieldName,
00054 matrix,
00055 interfaceBouCoeffs,
00056 interfaceIntCoeffs,
00057 interfaces
00058 ),
00059 diluSmoother_
00060 (
00061 fieldName,
00062 matrix,
00063 interfaceBouCoeffs,
00064 interfaceIntCoeffs,
00065 interfaces
00066 ),
00067 gsSmoother_
00068 (
00069 fieldName,
00070 matrix,
00071 interfaceBouCoeffs,
00072 interfaceIntCoeffs,
00073 interfaces
00074 )
00075 {}
00076
00077
00078
00079
00080 void Foam::DILUGaussSeidelSmoother::smooth
00081 (
00082 scalarField& psi,
00083 const scalarField& source,
00084 const direction cmpt,
00085 const label nSweeps
00086 ) const
00087 {
00088 diluSmoother_.smooth(psi, source, cmpt, nSweeps);
00089 gsSmoother_.smooth(psi, source, cmpt, nSweeps);
00090 }
00091
00092
00093