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