chombo-discharge
CD_MFHelmholtzDirichletEBBCFactory.H
Go to the documentation of this file.
1 /* chombo-discharge
2  * Copyright © 2021 SINTEF Energy Research.
3  * Please refer to Copyright.txt and LICENSE in the chombo-discharge root directory.
4  */
5 
12 #ifndef CD_MFHelmholtzDirichletEBBCFactory_H
13 #define CD_MFHelmholtzDirichletEBBCFactory_H
14 
15 // Our includes
17 #include <CD_NamespaceHeader.H>
18 
23 {
24 public:
29 
37  MFHelmholtzDirichletEBBCFactory(const int a_order, const int a_weight, const Real a_value);
38 
44  MFHelmholtzDirichletEBBCFactory(const int a_order,
45  const int a_weight,
46  const std::function<Real(const RealVect& a_pos)>& a_value);
47 
52 
57  virtual void
58  setValue(const Real a_value);
59 
64  virtual void
65  setValue(const std::function<Real(const RealVect& a_pos)>& a_value);
66 
70  virtual void
71  setDomainDropOrder(const int a_domainSize);
72 
77  RefCountedPtr<EBHelmholtzEBBC>
78  create(const int a_iphase, const RefCountedPtr<MFHelmholtzJumpBC>& a_jumpBC) const override;
79 
80 protected:
85 
90 
95 
99  int m_order;
100 
104  int m_weight;
105 
110 
114  std::function<Real(const RealVect& a_pos)> m_functionValue;
115 };
116 
117 #include <CD_NamespaceFooter.H>
118 
119 #endif
Declaration of an EB boundary condition factory class for MFHelmholtzOp.
Class for making Dirichlet boundary conditions on the EB in a multifluid context.
Definition: CD_MFHelmholtzDirichletEBBCFactory.H:23
virtual void setDomainDropOrder(const int a_domainSize)
Drop BC order if domain size is equal or below this.
Definition: CD_MFHelmholtzDirichletEBBCFactory.cpp:80
~MFHelmholtzDirichletEBBCFactory()
Default constructor.
Definition: CD_MFHelmholtzDirichletEBBCFactory.cpp:52
int m_order
Stencil order.
Definition: CD_MFHelmholtzDirichletEBBCFactory.H:99
bool m_useFunction
Use function for BC value.
Definition: CD_MFHelmholtzDirichletEBBCFactory.H:89
Real m_constantValue
Value on EB.
Definition: CD_MFHelmholtzDirichletEBBCFactory.H:94
virtual void setValue(const Real a_value)
Set the value on the EB.
Definition: CD_MFHelmholtzDirichletEBBCFactory.cpp:58
RefCountedPtr< EBHelmholtzEBBC > create(const int a_iphase, const RefCountedPtr< MFHelmholtzJumpBC > &a_jumpBC) const override
Factory method.
Definition: CD_MFHelmholtzDirichletEBBCFactory.cpp:88
std::function< Real(const RealVect &a_pos)> m_functionValue
Value on the EB.
Definition: CD_MFHelmholtzDirichletEBBCFactory.H:114
bool m_useConstant
Use constant for BC.
Definition: CD_MFHelmholtzDirichletEBBCFactory.H:84
int m_domainDropOrder
Special flag for dropping stencil order when domains become coarser than this.
Definition: CD_MFHelmholtzDirichletEBBCFactory.H:109
MFHelmholtzDirichletEBBCFactory()=delete
Weak constructor. Must subsequently set order, weight, and value.
int m_weight
Stencil weight (for weighted least squares)
Definition: CD_MFHelmholtzDirichletEBBCFactory.H:104
Base class for making boundary conditions on the EB in a multifluid context.
Definition: CD_MFHelmholtzEBBCFactory.H:24