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