chombo-discharge
Loading...
Searching...
No Matches
CD_MFHelmholtzNeumannDomainBCFactory.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_MFHelmholtzNeumannDomainBCFactory.H
9 @brief Declaration of a factory class for making Neumann domain boundary condition objects for MFHelmholtzOp
10 @author Robert Marskar
11*/
12
13#ifndef CD_MFHELMHOLTZNEUMANNDOMAINBCFACTORY_H
14#define CD_MFHELMHOLTZNEUMANNDOMAINBCFACTORY_H
15
16// Std includes
17#include <functional>
18
19// Chombo includes
20#include <EBLevelGrid.H>
21
22// Our includes
24#include <CD_NamespaceHeader.H>
25
30{
31public:
36
42 MFHelmholtzNeumannDomainBCFactory(const Real a_DphiDn);
43
49 MFHelmholtzNeumannDomainBCFactory(const std::function<Real(const RealVect& a_pos)>& a_DphiDn);
50
55
61 void
62 setDphiDn(const Real a_DphiDn);
63
69 void
70 setDphiDn(const std::function<Real(const RealVect& a_pos)>& a_DphiDn);
71
77 void
78 setBxDphiDn(const Real a_BxDphiDn);
79
85 void
86 setBxDphiDn(const std::function<Real(const RealVect& a_pos)>& a_BxDphiDn);
87
93 virtual RefCountedPtr<EBHelmholtzDomainBC>
94 create(const int a_iphase) const override;
95
96protected:
101
106
111
116
120 std::function<Real(const RealVect& a_pos)> m_functionDphiDn;
121};
122
123#include <CD_NamespaceFooter.H>
124
125#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
Class for passing Neumann boundary domain boundary conditions into MFHelmholtzOp.
Definition CD_MFHelmholtzNeumannDomainBCFactory.H:30
void setBxDphiDn(const Real a_BxDphiDn)
Set the value of B*dphi/dn on the EB.
Definition CD_MFHelmholtzNeumannDomainBCFactory.cpp:74
bool m_useConstant
Use constant for BC.
Definition CD_MFHelmholtzNeumannDomainBCFactory.H:105
bool m_useFunction
Use function for BC value.
Definition CD_MFHelmholtzNeumannDomainBCFactory.H:110
void setDphiDn(const Real a_DphiDn)
Set value of dphi/dn on the EB.
Definition CD_MFHelmholtzNeumannDomainBCFactory.cpp:48
MFHelmholtzNeumannDomainBCFactory()
Constructor.
Definition CD_MFHelmholtzNeumannDomainBCFactory.cpp:21
Real m_constantDphiDn
Constant values on domain sides.
Definition CD_MFHelmholtzNeumannDomainBCFactory.H:115
bool m_multByBco
Multiply by b-coefficient or not.
Definition CD_MFHelmholtzNeumannDomainBCFactory.H:100
virtual RefCountedPtr< EBHelmholtzDomainBC > create(const int a_iphase) const override
Factory method.
Definition CD_MFHelmholtzNeumannDomainBCFactory.cpp:94
virtual ~MFHelmholtzNeumannDomainBCFactory()
Destructor.
Definition CD_MFHelmholtzNeumannDomainBCFactory.cpp:42
std::function< Real(const RealVect &a_pos)> m_functionDphiDn
Spatially dependent value on the domain sides.
Definition CD_MFHelmholtzNeumannDomainBCFactory.H:120