ASL 0.1.7
Advanced Simulation Library
Loading...
Searching...
No Matches
aslLBGKBC.h
Go to the documentation of this file.
1/*
2 * Advanced Simulation Library <http://asl.org.il>
3 *
4 * Copyright 2015 Avtech Scientific <http://avtechscientific.com>
5 *
6 *
7 * This file is part of Advanced Simulation Library (ASL).
8 *
9 * ASL is free software: you can redistribute it and/or modify it
10 * under the terms of the GNU Affero General Public License as
11 * published by the Free Software Foundation, version 3 of the License.
12 *
13 * ASL is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU Affero General Public License for more details.
17 *
18 * You should have received a copy of the GNU Affero General Public License
19 * along with ASL. If not, see <http://www.gnu.org/licenses/>.
20 *
21 */
22
23
24#ifndef ASLLBGKBC_H
25#define ASLLBGKBC_H
26
27#include "aslBCond.h"
28#include "acl/aclMath/aclVectorOfElementsDef.h"
29
30namespace acl{
31 class Kernel;
32 typedef std::shared_ptr<acl::Kernel> SPKernel;
33 class KernelMerger;
34 typedef std::shared_ptr<acl::KernelMerger> SPKernelMerger;
35}
36
37namespace asl
38{
39 class LBGK;
40 typedef std::shared_ptr<LBGK> SPLBGK;
41 class PositionFunction;
42 typedef std::shared_ptr<PositionFunction> SPPositionFunction;
43
44
45 class BCLBGKCommon:public BCond
46 {
47 protected:
49 std::vector<acl::SPKernel> kernels;
51
54
56 public:
58 virtual void execute();
59 };
60
62
67 class BCNoSlip: public BCLBGKCommon
68 {
69 public:
71 virtual void init();
72 };
73
75
80 {
81 protected:
83 public:
85 virtual void init();
86 };
87
89
100 {
101 protected:
103 public:
105 virtual void init();
106 };
107
109
127
129
132
134 {
135 protected:
136 std::unique_ptr<acl::Kernel> kernel;
138 public:
141 virtual void execute();
142 virtual void init();
143 };
144
146
168
191
193
216
218
242
261
279
281 SPBCond generateBCNoSlip(SPLBGK nm, const std::vector<SlicesNames> & sl);
283 SPBCond generateBCConstantVelocity(SPLBGK nm, AVec<> v, const std::vector<SlicesNames> & sl);
285 SPBCond generateBCConstantPressure(SPLBGK nm, double p, const std::vector<SlicesNames> & sl);
288 double p,
289 AVec<> v,
290 const std::vector<SlicesNames> & sl);
295 double p,
296 AVec<> v,
312 SPAbstractDataWithGhostNodes computationalDomain);
319 double p0,
320 double limitingFactor,
324 double beta,
325 double p0,
326 double limitingFactor,
332
337
338} //asl
339
340#endif //ASLBGKBC_H
OpenCl Kernel generator.
Definition aclKernel.h:49
OpenCl Kernel merger.
The class represents several Element.
acl::VectorOfElements pressure
Definition aslLBGKBC.h:82
BCConstantPressure(SPLBGK nm, const acl::VectorOfElements &p)
virtual void init()
Builds the necesery internal data and kernels.
BCConstantPressureVelocity(SPLBGK nm, const acl::VectorOfElements &p, const acl::VectorOfElements &v)
virtual void init()
Builds the necesery internal data and kernels.
acl::VectorOfElements velocity
Definition aslLBGKBC.h:120
acl::VectorOfElements pressure
Definition aslLBGKBC.h:119
virtual void execute()
Executes the numerical procedure.
std::unique_ptr< acl::Kernel > kernel
Definition aslLBGKBC.h:175
acl::VectorOfElements pressure
Definition aslLBGKBC.h:177
BCConstantPressureVelocityMap(SPLBGK nm, acl::VectorOfElements p, SPAbstractDataWithGhostNodes map)
acl::VectorOfElements velocity
Definition aslLBGKBC.h:178
BCConstantPressureVelocityMap(SPLBGK nm, acl::VectorOfElements p, acl::VectorOfElements v, SPAbstractDataWithGhostNodes map)
virtual void init()
Builds the necesery internal data and kernels.
acl::VectorOfElements velocity
Definition aslLBGKBC.h:102
virtual void init()
Builds the necesery internal data and kernels.
BCConstantVelocity(SPLBGK nm, const acl::VectorOfElements &v)
BCKineticsLimitedDepositionMap(SPLBGK nm, acl::VectorOfElements p, acl::VectorOfElements lF, acl::VectorOfElements b, SPAbstractDataWithGhostNodes map)
std::unique_ptr< acl::Kernel > kernel
Definition aslLBGKBC.h:227
virtual void execute()
Executes the numerical procedure.
acl::VectorOfElements limitingFactor
Definition aslLBGKBC.h:230
virtual void init()
Builds the necesery internal data and kernels.
std::vector< acl::SPKernel > kernels
Definition aslLBGKBC.h:49
AVec< int > directionGroupsShifts
Definition aslLBGKBC.h:52
BCLBGKCommon(SPLBGK nm)
virtual void execute()
Executes the numerical procedure.
acl::SPKernelMerger km
Definition aslLBGKBC.h:50
AVec< int > directionGroupsSizes
Definition aslLBGKBC.h:53
virtual void init()
Builds the necesery internal data and kernels.
BCNoSlip(SPLBGK nm)
virtual void execute()
Executes the numerical procedure.
BCNoSlipMap(SPLBGK nm, SPAbstractDataWithGhostNodes map)
virtual void init()
Builds the necesery internal data and kernels.
std::unique_ptr< acl::Kernel > kernel
Definition aslLBGKBC.h:136
std::unique_ptr< acl::Kernel > kernel
Definition aslLBGKBC.h:203
virtual void init()
Builds the necesery internal data and kernels.
virtual void execute()
Executes the numerical procedure.
BCTransportLimitedDepositionMap(SPLBGK nm, acl::VectorOfElements p, acl::VectorOfElements lF, SPAbstractDataWithGhostNodes map)
acl::VectorOfElements limitingFactor
Definition aslLBGKBC.h:206
virtual void init()
Builds the necesery internal data and kernels.
BCVelocityMap(SPLBGK nm, SPPositionFunction v, SPAbstractDataWithGhostNodes map, SPAbstractDataWithGhostNodes computationalDomain)
BCVelocityMap(SPLBGK nm, SPPositionFunction v, SPAbstractDataWithGhostNodes map)
std::unique_ptr< acl::Kernel > kernel
Definition aslLBGKBC.h:152
SPPositionFunction velocity
Definition aslLBGKBC.h:154
virtual void execute()
Executes the numerical procedure.
BCond(const Block &b)
SPAbstractDataWithGhostNodes map
boundary description for the particular BC
Definition aslBCond.h:111
BCondWithMap(SPAbstractDataWithGhostNodes m, const VectorTemplate *const vt)
SPAbstractDataWithGhostNodes computationalDomain
Computational domain which contains all boundaries and the particular boundary as well.
Definition aslBCond.h:114
ComputeSurfaceFluxMap(SPLBGK nm, SPDataWithGhostNodesACLData fF, SPAbstractDataWithGhostNodes map)
SPDataWithGhostNodesACLData fluxField
Definition aslLBGKBC.h:252
virtual void execute()
Executes the numerical procedure.
virtual void init()
Builds the necesery internal data and kernels.
std::unique_ptr< acl::Kernel > kernel
Definition aslLBGKBC.h:250
std::unique_ptr< acl::Kernel > kernel
Definition aslLBGKBC.h:268
SPDataWithGhostNodesACLData forceField
Definition aslLBGKBC.h:270
virtual void execute()
Executes the numerical procedure.
virtual void init()
Builds the necesery internal data and kernels.
ComputeSurfaceForceMap(SPLBGK nm, SPDataWithGhostNodesACLData fF, SPAbstractDataWithGhostNodes map)
std::shared_ptr< PositionFunction > SPPositionFunction
SPNumMethod generateComputeSurfaceForce(SPLBGK nm, SPDataWithGhostNodesACLData fF, SPAbstractDataWithGhostNodes map)
SPBCond generateBCConstantVelocity(SPLBGK nm, AVec<> v, const std::vector< SlicesNames > &sl)
SPNumMethod generateComputeSurfaceFlux(SPLBGK nm, SPDataWithGhostNodesACLData fF, SPAbstractDataWithGhostNodes map)
SPBCond generateBCConstantPressure(SPLBGK nm, double p, const std::vector< SlicesNames > &sl)
SPNumMethod generateBCVelocityVel(SPLBGK nm, SPPositionFunction v, SPAbstractDataWithGhostNodes map)
SPNumMethod generateBCNoSlipVel(SPLBGK nmU, SPAbstractDataWithGhostNodes map)
SPNumMethod generateBCTransportLimitedDeposition(SPLBGK nm, double p0, double limitingFactor, SPAbstractDataWithGhostNodes map)
SPBCond generateBCConstantPressureVelocity(SPLBGK nm, double p, AVec<> v, const std::vector< SlicesNames > &sl)
SPNumMethod generateBCKineticsLimitedDeposition(SPLBGK nm, double beta, double p0, double limitingFactor, SPAbstractDataWithGhostNodes map)
SPNumMethod generateBCVelocity(SPLBGK nm, SPPositionFunction v, SPAbstractDataWithGhostNodes map)
SPBCond generateBCNoSlip(SPLBGK nm, const std::vector< SlicesNames > &sl)
SPNumMethod generateBCNoSlipRho(SPLBGK nmU, SPAbstractDataWithGhostNodes map)
Advanced Computational Language.
Definition acl.h:41
std::shared_ptr< acl::KernelMerger > SPKernelMerger
Definition aslLBGKBC.h:34
std::shared_ptr< Kernel > SPKernel
Advanced Simulation Library.
Definition aslDataInc.h:31
std::shared_ptr< AbstractDataWithGhostNodes > SPAbstractDataWithGhostNodes
std::shared_ptr< NumMethod > SPNumMethod
std::shared_ptr< BCond > SPBCond
Definition aslBCond.h:88
std::shared_ptr< DataWithGhostNodesACLData > SPDataWithGhostNodesACLData
std::shared_ptr< LBGK > SPLBGK
Definition aslLBGK.h:133