chombo-discharge
Loading...
Searching...
No Matches
CD_MFHelmholtzRobinEBBCFactory.H
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2021-2026 SINTEF Energy Research
3 *
4 * SPDX-License-Identifier: GPL-3.0-or-later
5 */
6
13#ifndef CD_MFHELMHOLTZROBINEBBCFACTORY_H
14#define CD_MFHELMHOLTZROBINEBBCFACTORY_H
15
16// Std includes
17#include <functional>
18
19// Our includes
21#include <CD_NamespaceHeader.H>
22
27{
28public:
33
42 MFHelmholtzRobinEBBCFactory(const int a_order, const int a_weight, const Real a_A, const Real a_B, const Real a_C);
43
53 const int a_weight,
54 const std::function<Real(const RealVect& a_pos)>& a_A,
55 const std::function<Real(const RealVect& a_pos)>& a_B,
56 const std::function<Real(const RealVect& a_pos)>& a_C);
57
62
67 void
68 setOrder(const int a_order);
69
74 void
75 setWeight(const int a_weight);
76
81 void
83
90 void
91 setCoefficients(const Real a_A, const Real a_B, const Real a_C);
92
99 void
101 const std::function<Real(const RealVect& a_pos)>& a_B,
102 const std::function<Real(const RealVect& a_pos)>& a_C);
103
111 create(const int a_iphase, const RefCountedPtr<MFHelmholtzJumpBC>& a_jumpBC) const override;
112
113protected:
114 /*
115 @brief Hook when using constant coefficients on the EB
116 */
119
124
129
134
139
144
149
154
159
164
169};
170
171#include <CD_NamespaceFooter.H>
172
173#endif
Declaration of an EB boundary condition factory class for MFHelmholtzOp.
Base class for making boundary conditions on the EB in a multifluid context.
Definition CD_MFHelmholtzEBBCFactory.H:25
Class for making Robin boundary conditions on the EB in a multifluid context.
Definition CD_MFHelmholtzRobinEBBCFactory.H:27
Real m_constantC
Constant C-coefficient.
Definition CD_MFHelmholtzRobinEBBCFactory.H:153
MFHelmholtzRobinEBBCFactory()=delete
Disallowed weak construction. Use the full constructors.
void setCoefficients(const Real a_A, const Real a_B, const Real a_C)
Set constant Robin BC coefficients.
Definition CD_MFHelmholtzRobinEBBCFactory.cpp:89
Real m_constantA
Constant A-coefficient.
Definition CD_MFHelmholtzRobinEBBCFactory.H:143
std::function< Real(const RealVect &a_pos)> m_functionC
Function-based C-coefficient.
Definition CD_MFHelmholtzRobinEBBCFactory.H:168
Real m_constantB
Constant B-coefficient.
Definition CD_MFHelmholtzRobinEBBCFactory.H:148
void setWeight(const int a_weight)
Set equation weights for least squares reconstruction.
Definition CD_MFHelmholtzRobinEBBCFactory.cpp:71
void setOrder(const int a_order)
Set BC order.
Definition CD_MFHelmholtzRobinEBBCFactory.cpp:61
void setDomainDropOrder(const int a_domainSize)
Drop BC order if domain size is equal or below this.
bool m_useConstant
Use constant.
Definition CD_MFHelmholtzRobinEBBCFactory.H:118
std::function< Real(const RealVect &a_pos)> m_functionB
Function-based B-coefficient.
Definition CD_MFHelmholtzRobinEBBCFactory.H:163
std::function< Real(const RealVect &a_pos)> m_functionA
Function-based A-coefficient.
Definition CD_MFHelmholtzRobinEBBCFactory.H:158
bool m_useFunction
Hook when using variable coefficients on the EB.
Definition CD_MFHelmholtzRobinEBBCFactory.H:123
int m_order
Stencil order.
Definition CD_MFHelmholtzRobinEBBCFactory.H:128
RefCountedPtr< EBHelmholtzEBBC > create(const int a_iphase, const RefCountedPtr< MFHelmholtzJumpBC > &a_jumpBC) const override
Factory method.
Definition CD_MFHelmholtzRobinEBBCFactory.cpp:117
int m_domainDropOrder
Special flag for dropping stencil order when domains become coarser than this.
Definition CD_MFHelmholtzRobinEBBCFactory.H:138
int m_weight
Equation weighting (in least squares reconstruction)
Definition CD_MFHelmholtzRobinEBBCFactory.H:133
~MFHelmholtzRobinEBBCFactory()
Default constructor (does nothing)
Definition CD_MFHelmholtzRobinEBBCFactory.cpp:55
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:38
TracerParticleSolver()
Default constructor.
Definition CD_TracerParticleSolverImplem.H:26