chombo-discharge
Loading...
Searching...
No Matches
CD_EBHelmholtzRobinDomainBCFactory.H
1/*
2 * SPDX-FileCopyrightText: 2021-2026 SINTEF Energy Research
3 *
4 * SPDX-License-Identifier: GPL-3.0-or-later
5 */
6
7/*
8 @file CD_EBHelmholtzRobinDomainBCFactory.H
9 @brief Declaration of a factory class for making Robin domain boundary conditions with EBHelmholtzOp
10 @author Robert Marskar
11*/
12
13#ifndef CD_EBHELMHOLTZROBINDOMAINBCFACTORY_H
14#define CD_EBHELMHOLTZROBINDOMAINBCFACTORY_H
15
16// Std includes
17#include <functional>
18
19// Our includes
20#include <CD_EBHelmholtzDomainBCFactory.H>
21#include <CD_NamespaceHeader.H>
22
31{
32public:
37
44 EBHelmholtzRobinDomainBCFactory(const Real a_A, const Real a_B, const Real a_C);
45
52 EBHelmholtzRobinDomainBCFactory(const std::function<Real(const RealVect& a_pos)>& a_A,
53 const std::function<Real(const RealVect& a_pos)>& a_B,
54 const std::function<Real(const RealVect& a_pos)>& a_C);
55
60
67 void
68 setCoefficients(const Real a_A, const Real a_B, const Real a_C);
69
76 void
77 setCoefficients(const std::function<Real(const RealVect& a_pos)>& a_A,
78 const std::function<Real(const RealVect& a_pos)>& a_B,
79 const std::function<Real(const RealVect& a_pos)>& a_C);
80
85 virtual RefCountedPtr<EBHelmholtzDomainBC>
86 create() const override;
87
88protected:
89 /*
90 @brief Use constant for BC
91 */
94
99
104
109
114
118 std::function<Real(const RealVect& a_pos)> m_functionA;
119
123 std::function<Real(const RealVect& a_pos)> m_functionB;
124
128 std::function<Real(const RealVect& a_pos)> m_functionC;
129};
130
131#include <CD_NamespaceFooter.H>
132
133#endif
Base class for passing domain boundary conditions into EBHelmholtzOp.
Definition CD_EBHelmholtzDomainBCFactory.H:28
Base class for making Robin domain boundary conditions with EBHelmholtzOp.
Definition CD_EBHelmholtzRobinDomainBCFactory.H:31
virtual ~EBHelmholtzRobinDomainBCFactory()
Destructor.
Real m_constantA
Constant A-coefficient.
Definition CD_EBHelmholtzRobinDomainBCFactory.H:103
std::function< Real(const RealVect &a_pos)> m_functionA
Function-based A-coefficient.
Definition CD_EBHelmholtzRobinDomainBCFactory.H:118
bool m_useFunction
Use function for BC value.
Definition CD_EBHelmholtzRobinDomainBCFactory.H:98
EBHelmholtzRobinDomainBCFactory()
Constructor.
Definition CD_EBHelmholtzRobinDomainBCFactory.cpp:21
bool m_useConstant
Use constant.
Definition CD_EBHelmholtzRobinDomainBCFactory.H:93
std::function< Real(const RealVect &a_pos)> m_functionC
Function-based C-coefficient.
Definition CD_EBHelmholtzRobinDomainBCFactory.H:128
Real m_constantB
Constant B-coefficient.
Definition CD_EBHelmholtzRobinDomainBCFactory.H:108
void setCoefficients(const Real a_A, const Real a_B, const Real a_C)
Set constant coefficients.
Definition CD_EBHelmholtzRobinDomainBCFactory.cpp:45
virtual RefCountedPtr< EBHelmholtzDomainBC > create() const override
Factory method.
Definition CD_EBHelmholtzRobinDomainBCFactory.cpp:73
std::function< Real(const RealVect &a_pos)> m_functionB
Function-based B-coefficient.
Definition CD_EBHelmholtzRobinDomainBCFactory.H:123
Real m_constantC
Constant C-coefficient.
Definition CD_EBHelmholtzRobinDomainBCFactory.H:113