OpenLB
1.8.1
Loading...
Searching...
No Matches
src
boundary
regularizedHeatFlux2D.h
Go to the documentation of this file.
1
/* This file is part of the OpenLB library
2
*
3
* Copyright (C) 2024 Fedor Bukreev, Adrian Kummerlaender
4
* E-mail contact: info@openlb.net
5
* The most recent release of OpenLB can be downloaded at
6
* <http://www.openlb.net/>
7
*
8
* This program is free software; you can redistribute it and/or
9
* modify it under the terms of the GNU General Public License
10
* as published by the Free Software Foundation; either version 2
11
* of the License, or (at your option) any later version.
12
*
13
* This program 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 General Public License for more details.
17
*
18
* You should have received a copy of the GNU General Public
19
* License along with this program; if not, write to the Free
20
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21
* Boston, MA 02110-1301, USA.
22
*/
23
24
#ifndef OLB_REGULARIZED_HEAT_FLUX_2D_H
25
#define OLB_REGULARIZED_HEAT_FLUX_2D_H
26
27
#include "
setBoundary.h
"
28
#include "
regularizedHeatFlux.h
"
29
#include "
dynamics/advectionDiffusionBoundaries.h
"
30
31
namespace
olb
{
32
33
namespace
boundary {
34
35
template
<concepts::BaseType T, concepts::LatticeDescriptor DESCRIPTOR,
typename
MixinDynamics>
36
requires
(DESCRIPTOR::d == 2)
37
struct
RegularizedHeatFlux<T,DESCRIPTOR,MixinDynamics>
{
38
39
using
value_t
= T;
40
using
descriptor_t
= DESCRIPTOR;
41
42
CellDistance
getNeighborhoodRadius
() {
43
return
1;
44
}
45
46
std::optional<DynamicsPromise<T,DESCRIPTOR>>
getDynamics
(
DiscreteNormalType
type,
47
DiscreteNormal<DESCRIPTOR>
n) {
48
switch
(type) {
49
case
DiscreteNormalType::Flat
:
50
return
boundaryhelper::PlainMixinDynamicsForDirectionOrientationMomenta
<
51
T,DESCRIPTOR,
CombinedAdvectionDiffusionRLBdynamics
,MixinDynamics,
52
momenta::RegularizedHeatFluxBoundaryTuple
53
>::construct(n);
54
55
case
DiscreteNormalType::ExternalCorner
:
56
return
boundaryhelper::NormalMixinDynamicsForPlainMomenta
<
57
T,DESCRIPTOR,
AdvectionDiffusionCornerDynamics2D
,MixinDynamics,
58
momenta::EquilibriumBoundaryTuple
59
>::construct(n);
60
61
default
:
62
throw
std::runtime_error(
"No valid discrete normal found. This BC is not suited for curved walls."
);
63
}
64
}
65
66
std::optional<PostProcessorPromise<T,DESCRIPTOR>>
getPostProcessor
(
DiscreteNormalType
type,
67
DiscreteNormal<DESCRIPTOR>
n) {
68
return
std::nullopt;
69
}
70
71
};
72
73
}
74
75
}
76
77
#endif
advectionDiffusionBoundaries.h
olb::CombinedAdvectionDiffusionRLBdynamics
Definition
advectionDiffusionDynamics.h:113
olb::Vector
Plain old scalar vector.
Definition
vectorHelpers.h:41
olb
Top level namespace for all of OpenLB.
Definition
advectionDiffusionDirichlet.h:27
olb::DiscreteNormalType
DiscreteNormalType
Type associated with a discrete normal vector.
Definition
discreteNormals.h:33
olb::DiscreteNormalType::ExternalCorner
@ ExternalCorner
Normal detected as flat plane.
olb::DiscreteNormalType::Flat
@ Flat
olb::CellDistance
std::int64_t CellDistance
Type for in-memory distance of block-local cell indices.
Definition
blockStructure.h:39
regularizedHeatFlux.h
setBoundary.h
olb::AdvectionDiffusionCornerDynamics2D
Definition
advectionDiffusionBoundaries.h:196
olb::boundary::RegularizedHeatFlux< T, DESCRIPTOR, MixinDynamics >::value_t
T value_t
Definition
regularizedHeatFlux2D.h:39
olb::boundary::RegularizedHeatFlux< T, DESCRIPTOR, MixinDynamics >::descriptor_t
DESCRIPTOR descriptor_t
Definition
regularizedHeatFlux2D.h:40
olb::boundary::RegularizedHeatFlux< T, DESCRIPTOR, MixinDynamics >::getPostProcessor
std::optional< PostProcessorPromise< T, DESCRIPTOR > > getPostProcessor(DiscreteNormalType type, DiscreteNormal< DESCRIPTOR > n)
Definition
regularizedHeatFlux2D.h:66
olb::boundary::RegularizedHeatFlux< T, DESCRIPTOR, MixinDynamics >::getNeighborhoodRadius
CellDistance getNeighborhoodRadius()
Definition
regularizedHeatFlux2D.h:42
olb::boundary::RegularizedHeatFlux< T, DESCRIPTOR, MixinDynamics >::getDynamics
std::optional< DynamicsPromise< T, DESCRIPTOR > > getDynamics(DiscreteNormalType type, DiscreteNormal< DESCRIPTOR > n)
Definition
regularizedHeatFlux2D.h:46
olb::boundary::RegularizedHeatFlux
Definition
regularizedHeatFlux.h:38
olb::boundaryhelper::NormalMixinDynamicsForPlainMomenta
Definition
normalDynamicsContructors.h:85
olb::boundaryhelper::PlainMixinDynamicsForDirectionOrientationMomenta
Definition
normalDynamicsContructors.h:136
olb::momenta::Tuple
Definition
interface.h:268
Generated on Sat May 17 2025 10:47:58 for OpenLB by
1.12.0