![]() |
|
00001 /*---------------------------------------------------------------------------*\ 00002 ========= | 00003 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox 00004 \\ / O peration | 00005 \\ / A nd | Copyright (C) 1991-2005 OpenCFD Ltd. 00006 \\/ M anipulation | 00007 ------------------------------------------------------------------------------- 00008 License 00009 This file is part of OpenFOAM. 00010 00011 OpenFOAM is free software; you can redistribute it and/or modify it 00012 under the terms of the GNU General Public License as published by the 00013 Free Software Foundation; either version 2 of the License, or (at your 00014 option) any later version. 00015 00016 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT 00017 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00018 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 00019 for more details. 00020 00021 You should have received a copy of the GNU General Public License 00022 along with OpenFOAM; if not, write to the Free Software Foundation, 00023 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 00024 00025 Class 00026 lduCoupledInterface 00027 00028 Description 00029 A virtual base class containing the interface necessary to update 00030 an implicitly coupled interface in a lduMatrix. 00031 00032 \*---------------------------------------------------------------------------*/ 00033 00034 #ifndef lduCoupledInterface_H 00035 #define lduCoupledInterface_H 00036 00037 #include "labelField.H" 00038 #include "scalarField.H" 00039 #include "typeInfo.H" 00040 00041 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00042 00043 namespace Foam 00044 { 00045 00046 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00047 00048 class lduMatrix; 00049 00050 /*---------------------------------------------------------------------------*\ 00051 Class lduCoupledInterface Declaration 00052 \*---------------------------------------------------------------------------*/ 00053 00054 class lduCoupledInterface 00055 { 00056 public: 00057 00058 //- Runtime type information 00059 TypeName("lduCoupledInterface"); 00060 00061 00062 // Constructors 00063 00064 //- Construct null 00065 lduCoupledInterface() 00066 {} 00067 00068 00069 // Destructor 00070 00071 virtual ~lduCoupledInterface(); 00072 00073 00074 // Member Functions 00075 00076 // Access 00077 00078 //- Return true if this patch field is coupled 00079 virtual bool coupled() const 00080 { 00081 return false; 00082 } 00083 00084 //- Initialise neighbour colouring transfer 00085 virtual void initNbrColour 00086 ( 00087 const labelField&, 00088 const bool 00089 ) const 00090 {} 00091 00092 //- Return neighbour colouring 00093 virtual tmp<labelField> nbrColour 00094 ( 00095 const labelField& 00096 ) const = 0; 00097 00098 00099 // Interface matrix update 00100 00101 //- Initialise neighbour matrix update 00102 virtual void initInterfaceMatrixUpdate 00103 ( 00104 const scalarField&, 00105 scalarField&, 00106 const lduMatrix&, 00107 const scalarField&, 00108 const direction, 00109 const bool 00110 ) const 00111 {} 00112 00113 //- Update result field based on interface functionality 00114 virtual void updateInterfaceMatrix 00115 ( 00116 const scalarField&, 00117 scalarField&, 00118 const lduMatrix&, 00119 const scalarField&, 00120 const direction 00121 ) const 00122 { 00123 notImplemented(type() + "::updateInterfaceMatrix()"); 00124 } 00125 }; 00126 00127 00128 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00129 00130 } // End namespace Foam 00131 00132 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00133 00134 #endif 00135 00136 // ************************************************************************* //