chombo-discharge
Loading...
Searching...
No Matches
CD_MFHelmholtzRobinEBBC.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_MFHelmholtzRobinEBBC.H
9 @brief Declaration of a boundary condition class for MFHelmholtzOp
10 @author Robert Marskar
11*/
12
13#ifndef CD_MFHELMHOLTZROBINEBBC_H
14#define CD_MFHELMHOLTZROBINEBBC_H
15
16// Std includes
17#include <functional>
18
19// Our includes
20#include <CD_VofUtils.H>
21#include <CD_MFHelmholtzEBBC.H>
22#include <CD_NamespaceHeader.H>
23
30{
31public:
38
42 virtual ~MFHelmholtzRobinEBBC();
43
48 void
49 setOrder(const int a_order);
50
55 void
56 setWeight(const int a_weight);
57
62 virtual void
64
71 void
72 setCoefficients(const Real a_A, const Real a_B, const Real a_C);
73
80 void
82 const std::function<Real(const RealVect& a_pos)>& a_B,
83 const std::function<Real(const RealVect& a_pos)>& a_C);
84
85protected:
86 /*
87 @brief Use constant for BC
88 */
91
96
101
106
111
116
121
126
131
136
141
145 virtual void
146 defineSinglePhase() override;
147
158 virtual void
161 const EBCellFAB& a_phi,
163 const DataIndex& a_dit,
164 const Real& a_beta,
165 const bool& a_homogeneousPhysBC) const override;
166
178 const DataIndex& a_dit,
180 const int a_order) const;
181};
182
183#include <CD_NamespaceFooter.H>
184
185#endif
Declaration of an EB boundary condition class for MFHelmholtzOp.
Various functions for getting Vofs near cut-cells.
Class for making boundary conditions on the EB in a multifluid context.
Definition CD_MFHelmholtzEBBC.H:28
Base class for passing Robin MF boundary conditions into MFHelmholtzOp.
Definition CD_MFHelmholtzRobinEBBC.H:30
VoFStencil getInterpolationStencil(const VolIndex &a_vof, const DataIndex &a_dit, const VofUtils::Neighborhood a_neighborhood, const int a_order) const
Get a least-squares based interpolation stencil.
Definition CD_MFHelmholtzRobinEBBC.cpp:266
Real m_constantC
Constant C-coefficient.
Definition CD_MFHelmholtzRobinEBBC.H:125
virtual void setDomainDropOrder(const int a_domainSize)
Drop BC order if domain size is equal or below this.
Definition CD_MFHelmholtzRobinEBBC.cpp:55
std::function< Real(const RealVect &a_pos)> m_functionC
Function-based C-coefficient.
Definition CD_MFHelmholtzRobinEBBC.H:140
std::function< Real(const RealVect &a_pos)> m_functionA
Function-based A-coefficient.
Definition CD_MFHelmholtzRobinEBBC.H:130
void setCoefficients(const Real a_A, const Real a_B, const Real a_C)
Set constant coefficients.
Definition CD_MFHelmholtzRobinEBBC.cpp:63
int m_order
Stencil order.
Definition CD_MFHelmholtzRobinEBBC.H:100
bool m_useConstant
Use constant.
Definition CD_MFHelmholtzRobinEBBC.H:90
int m_domainDropOrder
Special flag for dropping stencil order when domains become coarser than this.
Definition CD_MFHelmholtzRobinEBBC.H:110
virtual void applyEBFluxSinglePhase(VoFIterator &a_singlePhaseVofs, EBCellFAB &a_Lphi, const EBCellFAB &a_phi, const BaseIVFAB< Real > &a_Bcoef, const DataIndex &a_dit, const Real &a_beta, const bool &a_homogeneousPhysBC) const override
Apply flux single phase.
Definition CD_MFHelmholtzRobinEBBC.cpp:219
std::function< Real(const RealVect &a_pos)> m_functionB
Function-based B-coefficient.
Definition CD_MFHelmholtzRobinEBBC.H:135
void setOrder(const int a_order)
Set BC order.
Definition CD_MFHelmholtzRobinEBBC.cpp:35
void setWeight(const int a_weight)
Set equation weights for least squares reconstruction.
Definition CD_MFHelmholtzRobinEBBC.cpp:45
virtual void defineSinglePhase() override
User define function.
Definition CD_MFHelmholtzRobinEBBC.cpp:91
int m_weight
Stencil weight.
Definition CD_MFHelmholtzRobinEBBC.H:105
Real m_constantB
Constant B-coefficient.
Definition CD_MFHelmholtzRobinEBBC.H:120
virtual ~MFHelmholtzRobinEBBC()
Destructor.
Definition CD_MFHelmholtzRobinEBBC.cpp:29
bool m_useFunction
Use function for BC value.
Definition CD_MFHelmholtzRobinEBBC.H:95
Real m_constantA
Constant A-coefficient.
Definition CD_MFHelmholtzRobinEBBC.H:115
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
Neighborhood
Neighborhood type.
Definition CD_VofUtils.H:56