![]() |
|
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 laplaceTetDecompositionMotionSolver 00027 00028 Description 00029 Mesh motion solver for a polyMesh. Based on solving the 00030 vertex-based Laplace motion equation. The boundary motion is set as a 00031 boundary condition on the motion velocity variable motionU. 00032 00033 SourceFiles 00034 laplaceTetDecompositionMotionSolver.C 00035 00036 \*---------------------------------------------------------------------------*/ 00037 00038 #ifndef laplaceTetDecompositionMotionSolver_H 00039 #define laplaceTetDecompositionMotionSolver_H 00040 00041 #include "tetDecompositionMotionSolver.H" 00042 #include "tetPolyMesh.H" 00043 #include "tetPointFields.H" 00044 #include "elementFields.H" 00045 #include "lduMatrix.H" 00046 #include "motionDiff.H" 00047 00048 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00049 00050 namespace Foam 00051 { 00052 00053 // Forward class declarations 00054 class motionDiff; 00055 00056 /*---------------------------------------------------------------------------*\ 00057 Class laplaceTetDecompositionMotionSolver Declaration 00058 \*---------------------------------------------------------------------------*/ 00059 00060 class laplaceTetDecompositionMotionSolver 00061 : 00062 public tetDecompositionMotionSolver 00063 { 00064 // Private data 00065 00066 //- Diffusion 00067 motionDiff* diffusionPtr_; 00068 00069 00070 // Private Member Functions 00071 00072 //- Disallow default bitwise copy construct 00073 laplaceTetDecompositionMotionSolver 00074 ( 00075 const laplaceTetDecompositionMotionSolver& 00076 ); 00077 00078 //- Disallow default bitwise assignment 00079 void operator=(const laplaceTetDecompositionMotionSolver&); 00080 00081 00082 protected: 00083 00084 //- Is diffusion field frozen 00085 bool frozen_; 00086 00087 //- First motion 00088 bool firstMotion_; 00089 00090 //- Return pointer to motion diffusivity 00091 motionDiff* diffusion() 00092 { 00093 return diffusionPtr_; 00094 } 00095 00096 // Holds recent solver performance 00097 lduMatrix::solverPerformance solverPerf_; 00098 00099 00100 public: 00101 00102 //- Runtime type information 00103 TypeName("laplaceTetDecomposition"); 00104 00105 00106 // Constructors 00107 00108 laplaceTetDecompositionMotionSolver(const polyMesh& mesh); 00109 00110 00111 // Destructor 00112 00113 ~laplaceTetDecompositionMotionSolver(); 00114 00115 00116 // Member Functions 00117 00118 //- Solve for motion 00119 virtual void solve(); 00120 00121 //- Return recent solver performance 00122 const lduMatrix::solverPerformance& solverPerformance() const 00123 { 00124 return solverPerf_; 00125 } 00126 00127 //- Return pointer to motion diffusivity 00128 const elementScalarField& gamma() const 00129 { 00130 return diffusionPtr_->gamma(); 00131 } 00132 }; 00133 00134 00135 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00136 00137 } // End namespace Foam 00138 00139 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00140 00141 #endif 00142 00143 // ************************************************************************* //