00001 /*---------------------------------------------------------------------------*\ 00002 ========= | 00003 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox 00004 \\ / O peration | 00005 \\ / A nd | Copyright (C) 2009-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 Class 00024 Foam::LarsenBorgnakkeVariableHardSphere 00025 00026 Description 00027 Variable Hard Sphere BinaryCollision Model with Larsen Borgnakke internal 00028 energy redistribution. Based on the INELRS subroutine in Bird's DSMC0R.FOR 00029 00030 \*---------------------------------------------------------------------------*/ 00031 00032 #ifndef LarsenBorgnakkeVariableHardSphere_H 00033 #define LarsenBorgnakkeVariableHardSphere_H 00034 00035 #include <dsmc/BinaryCollisionModel.H> 00036 00037 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00038 00039 namespace Foam 00040 { 00041 /*---------------------------------------------------------------------------*\ 00042 Class LarsenBorgnakkeVariableHardSphere Declaration 00043 \*---------------------------------------------------------------------------*/ 00044 00045 template<class CloudType> 00046 class LarsenBorgnakkeVariableHardSphere 00047 : 00048 public BinaryCollisionModel<CloudType> 00049 { 00050 // Private data 00051 00052 //- Reference temperature 00053 const scalar Tref_; 00054 00055 //- Relaxation collision number 00056 const scalar relaxationCollisionNumber_; 00057 00058 00059 // Private Member Functions 00060 00061 //- Calculate the energy ratio for distribution to internal degrees of 00062 // freedom 00063 scalar energyRatio 00064 ( 00065 scalar ChiA, 00066 scalar ChiB 00067 ); 00068 00069 00070 public: 00071 00072 //- Runtime type information 00073 TypeName("LarsenBorgnakkeVariableHardSphere"); 00074 00075 00076 // Constructors 00077 00078 //- Construct from dictionary 00079 LarsenBorgnakkeVariableHardSphere 00080 ( 00081 const dictionary& dict, 00082 CloudType& cloud 00083 ); 00084 00085 00086 // Destructor 00087 virtual ~LarsenBorgnakkeVariableHardSphere(); 00088 00089 00090 // Member Functions 00091 00092 //- Return the collision cross section * relative velocity product 00093 virtual scalar sigmaTcR 00094 ( 00095 label typeIdP, 00096 label typeIdQ, 00097 const vector& UP, 00098 const vector& UQ 00099 ) const; 00100 00101 //- Apply collision 00102 virtual void collide 00103 ( 00104 label typeIdP, 00105 label typeIdQ, 00106 vector& UP, 00107 vector& UQ, 00108 scalar& EiP, 00109 scalar& EiQ 00110 ); 00111 }; 00112 00113 00114 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00115 00116 } // End namespace Foam 00117 00118 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00119 00120 #ifdef NoRepository 00121 # include "LarsenBorgnakkeVariableHardSphere.C" 00122 #endif 00123 00124 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00125 00126 #endif 00127 00128 // ************************ vim: set sw=4 sts=4 et: ************************ //