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 "ICCG.H"
00027
00028
00029
00030 namespace Foam
00031 {
00032 defineTypeNameAndDebug(ICCG, 0);
00033
00034 lduMatrix::solver::addsymMatrixConstructorToTable<ICCG>
00035 addICCGSymMatrixConstructorToTable_;
00036 }
00037
00038
00039
00040 Foam::dictionary Foam::ICCG::solverDict
00041 (
00042 const scalar tol,
00043 const scalar relTol
00044 )
00045 {
00046 dictionary dict(IStringStream("solver PCG; preconditioner DIC;")());
00047 dict.add("tolerance", tol);
00048 dict.add("relTol", relTol);
00049
00050 return dict;
00051 }
00052
00053
00054 Foam::dictionary Foam::ICCG::solverDict
00055 (
00056 Istream& is
00057 )
00058 {
00059 scalar tol(readScalar(is));
00060 scalar relTol(readScalar(is));
00061
00062 return solverDict(tol, relTol);
00063 }
00064
00065
00066
00067 Foam::ICCG::ICCG
00068 (
00069 const word& fieldName,
00070 const lduMatrix& matrix,
00071 const FieldField<Field, scalar>& interfaceBouCoeffs,
00072 const FieldField<Field, scalar>& interfaceIntCoeffs,
00073 const lduInterfaceFieldPtrsList& interfaces,
00074 const dictionary& solverControls
00075 )
00076 :
00077 PCG
00078 (
00079 fieldName,
00080 matrix,
00081 interfaceBouCoeffs,
00082 interfaceIntCoeffs,
00083 interfaces,
00084 solverControls
00085 )
00086 {}
00087
00088
00089 Foam::ICCG::ICCG
00090 (
00091 const word& fieldName,
00092 const lduMatrix& matrix,
00093 const FieldField<Field, scalar>& interfaceBouCoeffs,
00094 const FieldField<Field, scalar>& interfaceIntCoeffs,
00095 const lduInterfaceFieldPtrsList& interfaces,
00096 const scalar tolerance,
00097 const scalar relTol
00098 )
00099 :
00100 PCG
00101 (
00102 fieldName,
00103 matrix,
00104 interfaceBouCoeffs,
00105 interfaceIntCoeffs,
00106 interfaces,
00107 solverDict(tolerance, relTol)
00108 )
00109 {}
00110
00111