VirtualFluids
0.2.0
Parallel CFD LBM Solver
Loading...
Searching...
No Matches
TurbulenceModelManager.h
Go to the documentation of this file.
1
//=======================================================================================
2
// ____ ____ __ ______ __________ __ __ __ __
3
// \ \ | | | | | _ \ |___ ___| | | | | / \ | |
4
// \ \ | | | | | |_) | | | | | | | / \ | |
5
// \ \ | | | | | _ / | | | | | | / /\ \ | |
6
// \ \ | | | | | | \ \ | | | \__/ | / ____ \ | |____
7
// \ \ | | |__| |__| \__\ |__| \________/ /__/ \__\ |_______|
8
// \ \ | | ________________________________________________________________
9
// \ \ | | | ______________________________________________________________|
10
// \ \| | | | __ __ __ __ ______ _______
11
// \ | | |_____ | | | | | | | | | _ \ / _____)
12
// \ | | _____| | | | | | | | | | | \ \ \_______
13
// \ | | | | |_____ | \_/ | | | | |_/ / _____ |
14
// \ _____| |__| |________| \_______/ |__| |______/ (_______/
15
//
16
// This file is part of VirtualFluids. VirtualFluids is free software: you can
17
// redistribute it and/or modify it under the terms of the GNU General Public
18
// License as published by the Free Software Foundation, either version 3 of
19
// the License, or (at your option) any later version.
20
//
21
// VirtualFluids is distributed in the hope that it will be useful, but WITHOUT
22
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
23
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
24
// for more details.
25
//
26
// SPDX-License-Identifier: GPL-3.0-or-later
27
// SPDX-FileCopyrightText: Copyright © VirtualFluids Project contributors, see AUTHORS.md in root folder
28
//
33
//=======================================================================================
34
#ifndef TurbulenceModelManager_H
35
#define TurbulenceModelManager_H
36
#include <functional>
37
#include <optional>
38
#include <memory>
39
#include "
TurbulenceModelFactory.h
"
40
41
namespace
vf::gpu
{
42
43
class
Parameter;
44
class
TurbulenceModelFactory;
45
46
class
TurbulenceModelManager
47
{
48
public
:
49
TurbulenceModelManager
(std::shared_ptr<Parameter> para,
const
std::shared_ptr<TurbulenceModelFactory>&
factory
) : para(std::
move
(para))
50
{
51
turbulenceModelKernel =
factory
->getTurbulenceModelKernel();
52
turbulenceModelADKernel =
factory
->getTurbulenceModelADKernel();
53
54
};
55
56
void
runTurbulenceModelKernel
(
int
level)
const
;
57
void
runTurbulenceModelADKernel
(
int
level)
const
;
58
59
private
:
60
std::shared_ptr<Parameter> para;
61
std::optional<std::function<
void
(
Parameter
*,
int
)>> turbulenceModelKernel;
62
std::optional<std::function<
void
(
Parameter
*,
int
)>> turbulenceModelADKernel;
63
};
64
65
}
66
67
#endif
TurbulenceModelFactory.h
vf::gpu::Parameter
Class for LBM-parameter management.
Definition
Parameter.h:359
vf::gpu::TurbulenceModelManager
Definition
TurbulenceModelManager.h:47
vf::gpu::TurbulenceModelManager::runTurbulenceModelADKernel
void runTurbulenceModelADKernel(int level) const
Definition
TurbulenceModelManager.cpp:47
vf::gpu::TurbulenceModelManager::runTurbulenceModelKernel
void runTurbulenceModelKernel(int level) const
Definition
TurbulenceModelManager.cpp:41
vf::gpu::TurbulenceModelManager::TurbulenceModelManager
TurbulenceModelManager(std::shared_ptr< Parameter > para, const std::shared_ptr< TurbulenceModelFactory > &factory)
Definition
TurbulenceModelManager.h:49
SPtr
std::shared_ptr< T > SPtr
Definition
PointerDefinitions.h:39
vf::gpu
Definition
AdvectionDiffusion.h:43
src
gpu
core
TurbulenceModels
TurbulenceModelManager.h
Generated on Sat Sep 12 2026 02:03:20 for VirtualFluids by
1.9.8