00001 /*---------------------------------------------------------------------------*\ 00002 ========= | 00003 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox 00004 \\ / O peration | 00005 \\ / A nd | Copyright (C) 1991-2010 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 00013 the Free Software Foundation, either version 3 of the License, or 00014 (at your 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, see <http://www.gnu.org/licenses/>. 00023 00024 Class 00025 Foam::coupledPointPatch 00026 00027 Description 00028 coupled patch for post-processing. Used as the base class for processor 00029 and cyclic pointPatches 00030 00031 SourceFiles 00032 coupledPointPatch.C 00033 00034 \*---------------------------------------------------------------------------*/ 00035 00036 #ifndef coupledPointPatch_H 00037 #define coupledPointPatch_H 00038 00039 #include <OpenFOAM/coupledPolyPatch.H> 00040 00041 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00042 00043 namespace Foam 00044 { 00045 00046 class pointBoundaryMesh; 00047 00048 /*---------------------------------------------------------------------------*\ 00049 Class coupledPointPatch Declaration 00050 \*---------------------------------------------------------------------------*/ 00051 00052 class coupledPointPatch 00053 { 00054 // Private Member Functions 00055 00056 //- Disallow default construct as copy 00057 coupledPointPatch(const coupledPointPatch&); 00058 00059 //- Disallow default assignment 00060 void operator=(const coupledPointPatch&); 00061 00062 00063 protected: 00064 00065 // Protected Member Functions 00066 00067 //- Initialise the calculation of the patch geometry 00068 virtual void initGeometry() = 0; 00069 00070 //- Calculate the patch geometry 00071 virtual void calcGeometry() = 0; 00072 00073 //- Initialise the patches for moving points 00074 virtual void initMovePoints(const pointField&) = 0; 00075 00076 //- Correct patches after moving points 00077 virtual void movePoints(const pointField&) = 0; 00078 00079 //- Initialise the update of the patch topology 00080 virtual void initUpdateMesh() = 0; 00081 00082 //- Update of the patch topology 00083 virtual void updateMesh() = 0; 00084 00085 00086 public: 00087 00088 //- Runtime type information 00089 TypeName(coupledPolyPatch::typeName_()); 00090 00091 00092 // Constructors 00093 00094 //- Construct from components 00095 coupledPointPatch(const pointBoundaryMesh& bm); 00096 00097 00098 // Destructor 00099 00100 virtual ~coupledPointPatch(); 00101 00102 00103 // Member Functions 00104 00105 // Access 00106 00107 //- Return true because this patch is coupled 00108 virtual bool coupled() const 00109 { 00110 return true; 00111 } 00112 }; 00113 00114 00115 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00116 00117 } // End namespace Foam 00118 00119 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00120 00121 #endif 00122 00123 // ************************ vim: set sw=4 sts=4 et: ************************ //