$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 00025 /* Main author: Orestis Malaspinas 00026 */ 00027 00034 #ifndef ADVECTION_DIFFUSION_LATTICES_HH 00035 #define ADVECTION_DIFFUSION_LATTICES_HH 00036 00037 #include "latticeBoltzmann/advectionDiffusionLattices.h" 00038 00039 namespace plb { 00040 00041 namespace descriptors { 00042 00043 // AdvectionDiffusion D2Q5 ////////////////////////////////////////////// 00044 00045 template<typename T> 00046 const T D2Q5Constants<T>::invD = (T)1 / (T) d; 00047 00048 template<typename T> 00049 const int D2Q5Constants<T>::vicinity = 1; 00050 00051 template<typename T> 00052 const int D2Q5Constants<T>::c 00053 [D2Q5Constants<T>::q][D2Q5Constants<T>::d] = 00054 { 00055 { 0, 0}, 00056 {-1, 0}, {0, -1}, {1,0}, { 0,1} 00057 }; 00058 00059 template<typename T> 00060 const int D2Q5Constants<T>::cNormSqr[D2Q5Constants<T>::q] = 00061 { 0, 1, 1, 1, 1 }; 00062 00063 template<typename T> 00064 const T D2Q5Constants<T>::t[D2Q5Constants<T>::q] = 00065 { 00066 (T)1-(T)2/invCs2, 00067 (T)1/(invCs2*(T)2), (T)1/(invCs2*(T)2), 00068 (T)1/(invCs2*(T)2), (T)1/(invCs2*(T)2) 00069 }; 00070 00071 template<typename T> 00072 const T D2Q5Constants<T>::cs2 = (T)1 / (T)3; 00073 00074 template<typename T> 00075 const T D2Q5Constants<T>::invCs2 = (T)3; 00076 00077 template<typename T> 00078 const char AdvectionDiffusionD2Q5Descriptor<T>::name[] = "AdvectionDiffusionD2Q5"; 00079 00080 00081 // AdvectionDiffusion D3Q7 //////////////////////////////////////////////////// 00082 00083 template<typename T> 00084 const T D3Q7Constants<T>::invD = (T)1 / (T) d; 00085 00086 template<typename T> 00087 const int D3Q7Constants<T>::vicinity = 1; 00088 00089 00090 template<typename T> 00091 const int D3Q7Constants<T>::c 00092 [D3Q7Constants<T>::q][D3Q7Constants<T>::d] = 00093 { 00094 { 0, 0, 0}, 00095 00096 {-1, 0, 0}, {0,-1, 0}, 00097 { 0, 0,-1}, {1, 0, 0}, 00098 { 0, 1, 0}, {0, 0, 1}, 00099 }; 00100 00101 template<typename T> 00102 const int D3Q7Constants<T>::cNormSqr[D3Q7Constants<T>::q] = 00103 { 0, 1, 1, 1, 1, 1, 1}; 00104 00105 template<typename T> 00106 const T D3Q7Constants<T>::t[D3Q7Constants<T>::q] = 00107 { 00108 (T)1-(T)3 / invCs2, 00109 00110 (T)1/(invCs2*(T)2), (T)1/(invCs2*(T)2), (T)1/(invCs2*(T)2), 00111 (T)1/(invCs2*(T)2), (T)1/(invCs2*(T)2), (T)1/(invCs2*(T)2) 00112 }; 00113 00114 template<typename T> 00115 const T D3Q7Constants<T>::cs2 = (T)1 / (T)4; 00116 00117 template<typename T> 00118 const T D3Q7Constants<T>::invCs2 = (T)4; 00119 00120 template<typename T> 00121 const char AdvectionDiffusionD3Q7Descriptor<T>::name[] = "AdvectionDiffusionD3Q7"; 00122 00123 template<typename T> 00124 const char AdvectionDiffusionWithSourceD3Q7Descriptor<T>::name[] = "AdvectionDiffusionWithSourceD3Q7"; 00125 00126 } // namespace descriptors 00127 00128 } // namespace plb 00129 00130 #endif
1.6.3
1.6.3