chombo-discharge
Loading...
Searching...
No Matches
CD_MFHelmholtzRobinDomainBCFactory.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_MFHelmholtzRobinDomainBCFactory.H
9 @brief Declaration of a factory class for making Robin domain boundary conditions with MFHelmholtzOp
10 @author Robert Marskar
11*/
12
13#ifndef CD_MFHELMHOLTZROBINDOMAINBCFACTORY_H
14#define CD_MFHELMHOLTZROBINDOMAINBCFACTORY_H
15
16// Std includes
17#include <functional>
18
19// Our includes
21#include <CD_NamespaceHeader.H>
22
31{
32public:
37
44 MFHelmholtzRobinDomainBCFactory(const Real a_A, const Real a_B, const Real a_C);
45
52 MFHelmholtzRobinDomainBCFactory(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
86 RefCountedPtr<EBHelmholtzDomainBC>
87 create(const int a_iphase) const override;
88
89protected:
90 /*
91 @brief Use constant for BC
92 */
95
100
105
110
115
119 std::function<Real(const RealVect& a_pos)> m_functionA;
120
124 std::function<Real(const RealVect& a_pos)> m_functionB;
125
129 std::function<Real(const RealVect& a_pos)> m_functionC;
130};
131
132#include <CD_NamespaceFooter.H>
133
134#endif
Declaration of a factory class for making boundary condition objects for MFHelmholtzOp.
Base class for creating domain boundary condition objects in MFHelmholtzOp.
Definition CD_MFHelmholtzDomainBCFactory.H:27
Base class for making Robin domain boundary conditions with MFHelmholtzOp.
Definition CD_MFHelmholtzRobinDomainBCFactory.H:31
bool m_useFunction
Use function for BC value.
Definition CD_MFHelmholtzRobinDomainBCFactory.H:99
MFHelmholtzRobinDomainBCFactory()
Constructor.
Definition CD_MFHelmholtzRobinDomainBCFactory.cpp:21
RefCountedPtr< EBHelmholtzDomainBC > create(const int a_iphase) const override
Factory method.
Definition CD_MFHelmholtzRobinDomainBCFactory.cpp:76
std::function< Real(const RealVect &a_pos)> m_functionC
Function-based C-coefficient.
Definition CD_MFHelmholtzRobinDomainBCFactory.H:129
virtual ~MFHelmholtzRobinDomainBCFactory()
Destructor.
Definition CD_MFHelmholtzRobinDomainBCFactory.cpp:42
Real m_constantC
Constant C-coefficient.
Definition CD_MFHelmholtzRobinDomainBCFactory.H:114
std::function< Real(const RealVect &a_pos)> m_functionA
Function-based A-coefficient.
Definition CD_MFHelmholtzRobinDomainBCFactory.H:119
Real m_constantB
Constant B-coefficient.
Definition CD_MFHelmholtzRobinDomainBCFactory.H:109
Real m_constantA
Constant A-coefficient.
Definition CD_MFHelmholtzRobinDomainBCFactory.H:104
std::function< Real(const RealVect &a_pos)> m_functionB
Function-based B-coefficient.
Definition CD_MFHelmholtzRobinDomainBCFactory.H:124
void setCoefficients(const Real a_A, const Real a_B, const Real a_C)
Set constant coefficients.
Definition CD_MFHelmholtzRobinDomainBCFactory.cpp:48
bool m_useConstant
Use constant.
Definition CD_MFHelmholtzRobinDomainBCFactory.H:94