$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 00027 #ifndef BOUNDARY_CONDITION_3D_H 00028 #define BOUNDARY_CONDITION_3D_H 00029 00030 #include "core/globalDefs.h" 00031 #include "boundaryCondition/boundaryCondition.h" 00032 #include "boundaryCondition/finiteDifferenceBoundaryProcessor3D.h" 00033 #include "core/dynamics.h" 00034 00035 namespace plb { 00036 00037 template<typename T, template<typename U> class Descriptor> class BlockLattice3D; 00038 template<typename T, template<typename U> class Descriptor> class MultiBlockLattice3D; 00039 00040 template<typename T, template<typename U> class Descriptor> 00041 class OnLatticeBoundaryCondition3D { 00042 public: 00043 virtual ~OnLatticeBoundaryCondition3D() { } 00044 virtual OnLatticeBoundaryCondition3D<T,Descriptor>* clone() const =0; 00045 00046 // PART I: Atomic-block version. 00047 00048 virtual void addVelocityBoundary0N ( 00049 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00050 boundary::BcType bcType=boundary::dirichlet ) =0; 00051 virtual void addVelocityBoundary0P ( 00052 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00053 boundary::BcType bcType=boundary::dirichlet ) =0; 00054 virtual void addVelocityBoundary1N ( 00055 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00056 boundary::BcType bcType=boundary::dirichlet ) =0; 00057 virtual void addVelocityBoundary1P ( 00058 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00059 boundary::BcType bcType=boundary::dirichlet ) =0; 00060 virtual void addVelocityBoundary2N ( 00061 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00062 boundary::BcType bcType=boundary::dirichlet ) =0; 00063 virtual void addVelocityBoundary2P ( 00064 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00065 boundary::BcType bcType=boundary::dirichlet ) =0; 00066 00067 virtual void addPressureBoundary0N ( 00068 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00069 boundary::BcType bcType=boundary::dirichlet ) =0; 00070 virtual void addPressureBoundary0P ( 00071 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00072 boundary::BcType bcType=boundary::dirichlet ) =0; 00073 virtual void addPressureBoundary1N ( 00074 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00075 boundary::BcType bcType=boundary::dirichlet ) =0; 00076 virtual void addPressureBoundary1P ( 00077 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00078 boundary::BcType bcType=boundary::dirichlet ) =0; 00079 virtual void addPressureBoundary2N ( 00080 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00081 boundary::BcType bcType=boundary::dirichlet ) =0; 00082 virtual void addPressureBoundary2P ( 00083 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00084 boundary::BcType bcType=boundary::dirichlet ) =0; 00085 00086 virtual void addExternalVelocityEdge0NN ( 00087 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00088 boundary::BcType bcType=boundary::dirichlet ) =0; 00089 virtual void addExternalVelocityEdge0NP ( 00090 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00091 boundary::BcType bcType=boundary::dirichlet ) =0; 00092 virtual void addExternalVelocityEdge0PN ( 00093 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00094 boundary::BcType bcType=boundary::dirichlet ) =0; 00095 virtual void addExternalVelocityEdge0PP ( 00096 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00097 boundary::BcType bcType=boundary::dirichlet ) =0; 00098 virtual void addExternalVelocityEdge1NN ( 00099 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00100 boundary::BcType bcType=boundary::dirichlet ) =0; 00101 virtual void addExternalVelocityEdge1NP ( 00102 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00103 boundary::BcType bcType=boundary::dirichlet ) =0; 00104 virtual void addExternalVelocityEdge1PN ( 00105 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00106 boundary::BcType bcType=boundary::dirichlet ) =0; 00107 virtual void addExternalVelocityEdge1PP ( 00108 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00109 boundary::BcType bcType=boundary::dirichlet ) =0; 00110 virtual void addExternalVelocityEdge2NN ( 00111 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00112 boundary::BcType bcType=boundary::dirichlet ) =0; 00113 virtual void addExternalVelocityEdge2NP ( 00114 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00115 boundary::BcType bcType=boundary::dirichlet ) =0; 00116 virtual void addExternalVelocityEdge2PN ( 00117 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00118 boundary::BcType bcType=boundary::dirichlet ) =0; 00119 virtual void addExternalVelocityEdge2PP ( 00120 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00121 boundary::BcType bcType=boundary::dirichlet ) =0; 00122 00123 virtual void addInternalVelocityEdge0NN ( 00124 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00125 boundary::BcType bcType=boundary::dirichlet ) =0; 00126 virtual void addInternalVelocityEdge0NP ( 00127 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00128 boundary::BcType bcType=boundary::dirichlet ) =0; 00129 virtual void addInternalVelocityEdge0PN ( 00130 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00131 boundary::BcType bcType=boundary::dirichlet ) =0; 00132 virtual void addInternalVelocityEdge0PP ( 00133 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00134 boundary::BcType bcType=boundary::dirichlet ) =0; 00135 virtual void addInternalVelocityEdge1NN ( 00136 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00137 boundary::BcType bcType=boundary::dirichlet ) =0; 00138 virtual void addInternalVelocityEdge1NP ( 00139 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00140 boundary::BcType bcType=boundary::dirichlet ) =0; 00141 virtual void addInternalVelocityEdge1PN ( 00142 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00143 boundary::BcType bcType=boundary::dirichlet ) =0; 00144 virtual void addInternalVelocityEdge1PP ( 00145 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00146 boundary::BcType bcType=boundary::dirichlet ) =0; 00147 virtual void addInternalVelocityEdge2NN ( 00148 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00149 boundary::BcType bcType=boundary::dirichlet ) =0; 00150 virtual void addInternalVelocityEdge2NP ( 00151 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00152 boundary::BcType bcType=boundary::dirichlet ) =0; 00153 virtual void addInternalVelocityEdge2PN ( 00154 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00155 boundary::BcType bcType=boundary::dirichlet ) =0; 00156 virtual void addInternalVelocityEdge2PP ( 00157 Box3D domain, BlockLattice3D<T,Descriptor>& lattice, 00158 boundary::BcType bcType=boundary::dirichlet ) =0; 00159 00160 virtual void addExternalVelocityCornerNNN ( 00161 plint x, plint y, plint z, BlockLattice3D<T,Descriptor>& lattice, 00162 boundary::BcType bcType=boundary::dirichlet ) =0; 00163 virtual void addExternalVelocityCornerNNP ( 00164 plint x, plint y, plint z, BlockLattice3D<T,Descriptor>& lattice, 00165 boundary::BcType bcType=boundary::dirichlet ) =0; 00166 virtual void addExternalVelocityCornerNPN ( 00167 plint x, plint y, plint z, BlockLattice3D<T,Descriptor>& lattice, 00168 boundary::BcType bcType=boundary::dirichlet ) =0; 00169 virtual void addExternalVelocityCornerNPP ( 00170 plint x, plint y, plint z, BlockLattice3D<T,Descriptor>& lattice, 00171 boundary::BcType bcType=boundary::dirichlet ) =0; 00172 virtual void addExternalVelocityCornerPNN ( 00173 plint x, plint y, plint z, BlockLattice3D<T,Descriptor>& lattice, 00174 boundary::BcType bcType=boundary::dirichlet ) =0; 00175 virtual void addExternalVelocityCornerPNP ( 00176 plint x, plint y, plint z, BlockLattice3D<T,Descriptor>& lattice, 00177 boundary::BcType bcType=boundary::dirichlet ) =0; 00178 virtual void addExternalVelocityCornerPPN ( 00179 plint x, plint y, plint z, BlockLattice3D<T,Descriptor>& lattice, 00180 boundary::BcType bcType=boundary::dirichlet ) =0; 00181 virtual void addExternalVelocityCornerPPP ( 00182 plint x, plint y, plint z, BlockLattice3D<T,Descriptor>& lattice, 00183 boundary::BcType bcType=boundary::dirichlet ) =0; 00184 00185 virtual void addInternalVelocityCornerNNN ( 00186 plint x, plint y, plint z, BlockLattice3D<T,Descriptor>& lattice, 00187 boundary::BcType bcType=boundary::dirichlet ) =0; 00188 virtual void addInternalVelocityCornerNNP ( 00189 plint x, plint y, plint z, BlockLattice3D<T,Descriptor>& lattice, 00190 boundary::BcType bcType=boundary::dirichlet ) =0; 00191 virtual void addInternalVelocityCornerNPN ( 00192 plint x, plint y, plint z, BlockLattice3D<T,Descriptor>& lattice, 00193 boundary::BcType bcType=boundary::dirichlet ) =0; 00194 virtual void addInternalVelocityCornerNPP ( 00195 plint x, plint y, plint z, BlockLattice3D<T,Descriptor>& lattice, 00196 boundary::BcType bcType=boundary::dirichlet ) =0; 00197 virtual void addInternalVelocityCornerPNN ( 00198 plint x, plint y, plint z, BlockLattice3D<T,Descriptor>& lattice, 00199 boundary::BcType bcType=boundary::dirichlet ) =0; 00200 virtual void addInternalVelocityCornerPNP ( 00201 plint x, plint y, plint z, BlockLattice3D<T,Descriptor>& lattice, 00202 boundary::BcType bcType=boundary::dirichlet ) =0; 00203 virtual void addInternalVelocityCornerPPN ( 00204 plint x, plint y, plint z, BlockLattice3D<T,Descriptor>& lattice, 00205 boundary::BcType bcType=boundary::dirichlet ) =0; 00206 virtual void addInternalVelocityCornerPPP ( 00207 plint x, plint y, plint z, BlockLattice3D<T,Descriptor>& lattice, 00208 boundary::BcType bcType=boundary::dirichlet ) =0; 00209 00211 void setVelocityConditionOnBlockBoundaries( BlockLattice3D<T,Descriptor>& lattice, 00212 boundary::BcType bcType=boundary::dirichlet ); 00213 00216 00220 void setVelocityConditionOnBlockBoundaries( BlockLattice3D<T,Descriptor>& lattice, 00221 Box3D applicationDomain, 00222 boundary::BcType bcType=boundary::dirichlet ); 00223 00226 void setVelocityConditionOnBlockBoundaries( BlockLattice3D<T,Descriptor>& lattice, 00227 Box3D block, Box3D applicationDomain, 00228 boundary::BcType bcType=boundary::dirichlet ); 00229 00230 00232 void setPressureConditionOnBlockBoundaries( BlockLattice3D<T,Descriptor>& lattice, 00233 boundary::BcType bcType=boundary::dirichlet ); 00234 00237 00241 void setPressureConditionOnBlockBoundaries( BlockLattice3D<T,Descriptor>& lattice, 00242 Box3D applicationDomain, 00243 boundary::BcType bcType=boundary::dirichlet ); 00244 00247 void setPressureConditionOnBlockBoundaries( BlockLattice3D<T,Descriptor>& lattice, 00248 Box3D block, Box3D applicationDomain, 00249 boundary::BcType bcType=boundary::dirichlet ); 00250 00251 // PART II: Multi-block version. 00252 00253 virtual void addVelocityBoundary0N ( 00254 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00255 boundary::BcType bcType=boundary::dirichlet ) =0; 00256 virtual void addVelocityBoundary0P ( 00257 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00258 boundary::BcType bcType=boundary::dirichlet ) =0; 00259 virtual void addVelocityBoundary1N ( 00260 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00261 boundary::BcType bcType=boundary::dirichlet ) =0; 00262 virtual void addVelocityBoundary1P ( 00263 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00264 boundary::BcType bcType=boundary::dirichlet ) =0; 00265 virtual void addVelocityBoundary2N ( 00266 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00267 boundary::BcType bcType=boundary::dirichlet ) =0; 00268 virtual void addVelocityBoundary2P ( 00269 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00270 boundary::BcType bcType=boundary::dirichlet ) =0; 00271 00272 virtual void addPressureBoundary0N ( 00273 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00274 boundary::BcType bcType=boundary::dirichlet ) =0; 00275 virtual void addPressureBoundary0P ( 00276 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00277 boundary::BcType bcType=boundary::dirichlet ) =0; 00278 virtual void addPressureBoundary1N ( 00279 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00280 boundary::BcType bcType=boundary::dirichlet ) =0; 00281 virtual void addPressureBoundary1P ( 00282 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00283 boundary::BcType bcType=boundary::dirichlet ) =0; 00284 virtual void addPressureBoundary2N ( 00285 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00286 boundary::BcType bcType=boundary::dirichlet ) =0; 00287 virtual void addPressureBoundary2P ( 00288 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00289 boundary::BcType bcType=boundary::dirichlet ) =0; 00290 00291 virtual void addExternalVelocityEdge0NN ( 00292 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00293 boundary::BcType bcType=boundary::dirichlet ) =0; 00294 virtual void addExternalVelocityEdge0NP ( 00295 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00296 boundary::BcType bcType=boundary::dirichlet ) =0; 00297 virtual void addExternalVelocityEdge0PN ( 00298 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00299 boundary::BcType bcType=boundary::dirichlet ) =0; 00300 virtual void addExternalVelocityEdge0PP ( 00301 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00302 boundary::BcType bcType=boundary::dirichlet ) =0; 00303 virtual void addExternalVelocityEdge1NN ( 00304 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00305 boundary::BcType bcType=boundary::dirichlet ) =0; 00306 virtual void addExternalVelocityEdge1NP ( 00307 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00308 boundary::BcType bcType=boundary::dirichlet ) =0; 00309 virtual void addExternalVelocityEdge1PN ( 00310 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00311 boundary::BcType bcType=boundary::dirichlet ) =0; 00312 virtual void addExternalVelocityEdge1PP ( 00313 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00314 boundary::BcType bcType=boundary::dirichlet ) =0; 00315 virtual void addExternalVelocityEdge2NN ( 00316 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00317 boundary::BcType bcType=boundary::dirichlet ) =0; 00318 virtual void addExternalVelocityEdge2NP ( 00319 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00320 boundary::BcType bcType=boundary::dirichlet ) =0; 00321 virtual void addExternalVelocityEdge2PN ( 00322 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00323 boundary::BcType bcType=boundary::dirichlet ) =0; 00324 virtual void addExternalVelocityEdge2PP ( 00325 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00326 boundary::BcType bcType=boundary::dirichlet ) =0; 00327 00328 virtual void addInternalVelocityEdge0NN ( 00329 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00330 boundary::BcType bcType=boundary::dirichlet ) =0; 00331 virtual void addInternalVelocityEdge0NP ( 00332 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00333 boundary::BcType bcType=boundary::dirichlet ) =0; 00334 virtual void addInternalVelocityEdge0PN ( 00335 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00336 boundary::BcType bcType=boundary::dirichlet ) =0; 00337 virtual void addInternalVelocityEdge0PP ( 00338 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00339 boundary::BcType bcType=boundary::dirichlet ) =0; 00340 virtual void addInternalVelocityEdge1NN ( 00341 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00342 boundary::BcType bcType=boundary::dirichlet ) =0; 00343 virtual void addInternalVelocityEdge1NP ( 00344 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00345 boundary::BcType bcType=boundary::dirichlet ) =0; 00346 virtual void addInternalVelocityEdge1PN ( 00347 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00348 boundary::BcType bcType=boundary::dirichlet ) =0; 00349 virtual void addInternalVelocityEdge1PP ( 00350 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00351 boundary::BcType bcType=boundary::dirichlet ) =0; 00352 virtual void addInternalVelocityEdge2NN ( 00353 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00354 boundary::BcType bcType=boundary::dirichlet ) =0; 00355 virtual void addInternalVelocityEdge2NP ( 00356 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00357 boundary::BcType bcType=boundary::dirichlet ) =0; 00358 virtual void addInternalVelocityEdge2PN ( 00359 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00360 boundary::BcType bcType=boundary::dirichlet ) =0; 00361 virtual void addInternalVelocityEdge2PP ( 00362 Box3D domain, MultiBlockLattice3D<T,Descriptor>& lattice, 00363 boundary::BcType bcType=boundary::dirichlet ) =0; 00364 00365 virtual void addExternalVelocityCornerNNN ( 00366 plint x, plint y, plint z, MultiBlockLattice3D<T,Descriptor>& lattice, 00367 boundary::BcType bcType=boundary::dirichlet ) =0; 00368 virtual void addExternalVelocityCornerNNP ( 00369 plint x, plint y, plint z, MultiBlockLattice3D<T,Descriptor>& lattice, 00370 boundary::BcType bcType=boundary::dirichlet ) =0; 00371 virtual void addExternalVelocityCornerNPN ( 00372 plint x, plint y, plint z, MultiBlockLattice3D<T,Descriptor>& lattice, 00373 boundary::BcType bcType=boundary::dirichlet ) =0; 00374 virtual void addExternalVelocityCornerNPP ( 00375 plint x, plint y, plint z, MultiBlockLattice3D<T,Descriptor>& lattice, 00376 boundary::BcType bcType=boundary::dirichlet ) =0; 00377 virtual void addExternalVelocityCornerPNN ( 00378 plint x, plint y, plint z, MultiBlockLattice3D<T,Descriptor>& lattice, 00379 boundary::BcType bcType=boundary::dirichlet ) =0; 00380 virtual void addExternalVelocityCornerPNP ( 00381 plint x, plint y, plint z, MultiBlockLattice3D<T,Descriptor>& lattice, 00382 boundary::BcType bcType=boundary::dirichlet ) =0; 00383 virtual void addExternalVelocityCornerPPN ( 00384 plint x, plint y, plint z, MultiBlockLattice3D<T,Descriptor>& lattice, 00385 boundary::BcType bcType=boundary::dirichlet ) =0; 00386 virtual void addExternalVelocityCornerPPP ( 00387 plint x, plint y, plint z, MultiBlockLattice3D<T,Descriptor>& lattice, 00388 boundary::BcType bcType=boundary::dirichlet ) =0; 00389 00390 virtual void addInternalVelocityCornerNNN ( 00391 plint x, plint y, plint z, MultiBlockLattice3D<T,Descriptor>& lattice, 00392 boundary::BcType bcType=boundary::dirichlet ) =0; 00393 virtual void addInternalVelocityCornerNNP ( 00394 plint x, plint y, plint z, MultiBlockLattice3D<T,Descriptor>& lattice, 00395 boundary::BcType bcType=boundary::dirichlet ) =0; 00396 virtual void addInternalVelocityCornerNPN ( 00397 plint x, plint y, plint z, MultiBlockLattice3D<T,Descriptor>& lattice, 00398 boundary::BcType bcType=boundary::dirichlet ) =0; 00399 virtual void addInternalVelocityCornerNPP ( 00400 plint x, plint y, plint z, MultiBlockLattice3D<T,Descriptor>& lattice, 00401 boundary::BcType bcType=boundary::dirichlet ) =0; 00402 virtual void addInternalVelocityCornerPNN ( 00403 plint x, plint y, plint z, MultiBlockLattice3D<T,Descriptor>& lattice, 00404 boundary::BcType bcType=boundary::dirichlet ) =0; 00405 virtual void addInternalVelocityCornerPNP ( 00406 plint x, plint y, plint z, MultiBlockLattice3D<T,Descriptor>& lattice, 00407 boundary::BcType bcType=boundary::dirichlet ) =0; 00408 virtual void addInternalVelocityCornerPPN ( 00409 plint x, plint y, plint z, MultiBlockLattice3D<T,Descriptor>& lattice, 00410 boundary::BcType bcType=boundary::dirichlet ) =0; 00411 virtual void addInternalVelocityCornerPPP ( 00412 plint x, plint y, plint z, MultiBlockLattice3D<T,Descriptor>& lattice, 00413 boundary::BcType bcType=boundary::dirichlet ) =0; 00414 00416 void setVelocityConditionOnBlockBoundaries( MultiBlockLattice3D<T,Descriptor>& lattice, 00417 boundary::BcType bcType=boundary::dirichlet ); 00418 00421 00425 void setVelocityConditionOnBlockBoundaries( MultiBlockLattice3D<T,Descriptor>& lattice, 00426 Box3D applicationDomain, 00427 boundary::BcType bcType=boundary::dirichlet ); 00428 00431 void setVelocityConditionOnBlockBoundaries( MultiBlockLattice3D<T,Descriptor>& lattice, 00432 Box3D block, Box3D applicationDomain, 00433 boundary::BcType bcType=boundary::dirichlet ); 00434 00435 00437 void setPressureConditionOnBlockBoundaries( MultiBlockLattice3D<T,Descriptor>& lattice, 00438 boundary::BcType bcType=boundary::dirichlet ); 00439 00442 00446 void setPressureConditionOnBlockBoundaries( MultiBlockLattice3D<T,Descriptor>& lattice, 00447 Box3D applicationDomain, 00448 boundary::BcType bcType=boundary::dirichlet ); 00449 00452 void setPressureConditionOnBlockBoundaries( MultiBlockLattice3D<T,Descriptor>& lattice, 00453 Box3D block, Box3D applicationDomain, 00454 boundary::BcType bcType=boundary::dirichlet ); 00455 00456 }; 00457 00458 00460 00462 template<typename T, template<typename U> class Descriptor> 00463 OnLatticeBoundaryCondition3D<T,Descriptor>* createLocalBoundaryCondition3D(); 00464 00466 template<typename T, template<typename U> class Descriptor> 00467 OnLatticeBoundaryCondition3D<T,Descriptor>* createDynamicsBasedLocalBoundaryCondition3D(); 00468 00470 template<typename T, template<typename U> class Descriptor> 00471 OnLatticeBoundaryCondition3D<T,Descriptor>* createEquilibriumBoundaryCondition3D(); 00472 00474 template<typename T, template<typename U> class Descriptor> 00475 OnLatticeBoundaryCondition3D<T,Descriptor>* createInterpBoundaryCondition3D(); 00476 00477 } // namespace plb 00478 00479 #endif // BOUNDARY_CONDITION_3D_H
1.6.3
1.6.3