$treeview $search $mathjax
|
Palabos
Version 1.1
$projectbrief
|
$projectbrief
|
$searchbox |
00001 /* This file is part of the Palabos library. 00002 * 00003 * Copyright (C) 2011 FlowKit Sarl 00004 * Avenue de Chailly 23 00005 * 1012 Lausanne, Switzerland 00006 * E-mail contact: contact@flowkit.com 00007 * 00008 * The most recent release of Palabos can be downloaded at 00009 * <http://www.palabos.org/> 00010 * 00011 * The library Palabos is free software: you can redistribute it and/or 00012 * modify it under the terms of the GNU Affero General Public License as 00013 * published by the Free Software Foundation, either version 3 of the 00014 * License, or (at your option) any later version. 00015 * 00016 * The library is distributed in the hope that it will be useful, 00017 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00018 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00019 * GNU Affero General Public License for more details. 00020 * 00021 * You should have received a copy of the GNU Affero General Public License 00022 * along with this program. If not, see <http://www.gnu.org/licenses/>. 00023 */ 00024 00036 #ifndef DYNAMIC_SMAGORINSKY_LATTICES_3D_H 00037 #define DYNAMIC_SMAGORINSKY_LATTICES_3D_H 00038 00039 #include "core/globalDefs.h" 00040 #include "latticeBoltzmann/nearestNeighborLattices3D.h" 00041 00042 namespace plb { 00043 00044 namespace descriptors { 00045 00046 struct ExternalOmegaDescriptor3d { 00047 static const int numScalars = 1; 00048 static const int numSpecies = 1; 00049 static const int omegaBeginsAt = 0; 00050 static const int sizeOfOmega = 1; 00051 }; 00052 00053 struct ExternalOmegaBase3d { 00054 typedef ExternalOmegaDescriptor3d ExternalField; 00055 }; 00056 00057 struct ExternalOmegaAndForceDescriptor3d { 00058 static const int numScalars = 4; 00059 static const int numSpecies = 2; 00060 static const int omegaBeginsAt = 0; 00061 static const int sizeOfOmega = 1; 00062 static const int forceBeginsAt = 1; 00063 static const int sizeOfForce = 3; 00064 }; 00065 00066 struct ExternalOmegaAndForceBase3d { 00067 typedef ExternalOmegaAndForceDescriptor3d ExternalField; 00068 }; 00069 00070 template <typename T> struct ExternalOmegaD3Q19Descriptor 00071 : public D3Q19DescriptorBase<T>, public ExternalOmegaBase3d 00072 { 00073 static const char name[]; 00074 }; 00075 00076 template <typename T> struct ForcedExternalOmegaD3Q19Descriptor 00077 : public D3Q19DescriptorBase<T>, public ExternalOmegaAndForceBase3d 00078 { 00079 static const char name[]; 00080 }; 00081 00082 template<typename T> 00083 const char ExternalOmegaD3Q19Descriptor<T>::name[] = "ExternalOmegaD3Q19"; 00084 00085 template<typename T> 00086 const char ForcedExternalOmegaD3Q19Descriptor<T>::name[] = "ExternalOmegaAndForceD3Q19"; 00087 00088 00089 template <typename T> struct ExternalOmegaD3Q15Descriptor 00090 : public D3Q15DescriptorBase<T>, public ExternalOmegaBase3d 00091 { 00092 static const char name[]; 00093 }; 00094 00095 template <typename T> struct ForcedExternalOmegaD3Q15Descriptor 00096 : public D3Q15DescriptorBase<T>, public ExternalOmegaAndForceBase3d 00097 { 00098 static const char name[]; 00099 }; 00100 00101 template<typename T> 00102 const char ExternalOmegaD3Q15Descriptor<T>::name[] = "ExternalOmegaD3Q15"; 00103 00104 template<typename T> 00105 const char ForcedExternalOmegaD3Q15Descriptor<T>::name[] = "ExternalOmegaAndForceD3Q15"; 00106 00107 00108 template <typename T> struct ExternalOmegaD3Q27Descriptor 00109 : public D3Q27DescriptorBase<T>, public ExternalOmegaBase3d 00110 { 00111 static const char name[]; 00112 }; 00113 00114 template <typename T> struct ForcedExternalOmegaD3Q27Descriptor 00115 : public D3Q27DescriptorBase<T>, public ExternalOmegaAndForceBase3d 00116 { 00117 static const char name[]; 00118 }; 00119 00120 template<typename T> 00121 const char ExternalOmegaD3Q27Descriptor<T>::name[] = "ExternalOmegaD3Q27"; 00122 00123 template<typename T> 00124 const char ForcedExternalOmegaD3Q27Descriptor<T>::name[] = "ExternalOmegaAndForceD3Q27"; 00125 00126 } // namespace descriptors 00127 00128 } // namespace plb 00129 00130 #endif // DYNAMIC_SMAGORINSKY_LATTICES_3D_H
1.6.3
1.6.3