chombo-discharge
|
Base class for making Robin boundary conditions with EBHelmholtzOp. More...
#include <CD_EBHelmholtzRobinEBBCFactory.H>
Public Member Functions | |
EBHelmholtzRobinEBBCFactory () | |
Constructor. | |
EBHelmholtzRobinEBBCFactory (const int a_order, const int a_weight, const Real a_A, const Real a_B, const Real a_C) | |
Full constructor which sets constant coefficients. | |
EBHelmholtzRobinEBBCFactory (const int a_order, const int a_weight, const std::function< Real(const RealVect &a_pos)> &a_A, const std::function< Real(const RealVect &a_pos)> &a_B, const std::function< Real(const RealVect &a_pos)> &a_C) | |
Full constructor which sets variable coefficients. | |
virtual | ~EBHelmholtzRobinEBBCFactory () |
Destructor (does nothing). | |
void | setOrder (const int a_order) |
Set BC order. | |
void | setWeight (const int a_weight) |
Set equation weights for least squares reconstruction. | |
void | setCoefficients (const Real a_A, const Real a_B, const Real a_C) |
Set constant coefficients. | |
void | setCoefficients (const std::function< Real(const RealVect &a_pos)> &a_A, const std::function< Real(const RealVect &a_pos)> &a_B, const std::function< Real(const RealVect &a_pos)> &a_C) |
Set variable coefficients. | |
virtual void | setDomainDropOrder (const int a_domainSize) |
Drop BC order if domain size is equal or below this. | |
RefCountedPtr< EBHelmholtzEBBC > | create () override |
Factory method. | |
![]() | |
EBHelmholtzEBBCFactory () | |
Constructor. | |
virtual | ~EBHelmholtzEBBCFactory () |
Destructor. | |
EBHelmholtzEBBCFactory (const EBHelmholtzEBBCFactory &a_other)=delete | |
Disallowed – don't see why you would need it. | |
EBHelmholtzEBBCFactory & | operator= (const EBHelmholtzEBBCFactory &a_other)=delete |
Disallowed - don't see why you would need it. | |
Protected Attributes | |
bool | m_useConstant |
bool | m_useFunction |
Use function for BC value. | |
int | m_order |
(Attempted) stencil order | |
int | m_weight |
Weight for least squares gradient reconstruction. | |
int | m_domainDropOrder |
Special flag for dropping stencil order when domains become coarser than this. | |
Real | m_constantA |
Constant A-coefficient. | |
Real | m_constantB |
Constant B-coefficient. | |
Real | m_constantC |
Constant C-coefficient. | |
std::function< Real(const RealVect &a_pos)> | m_functionA |
Function-based A-coefficient. | |
std::function< Real(const RealVect &a_pos)> | m_functionB |
Function-based B-coefficient. | |
std::function< Real(const RealVect &a_pos)> | m_functionC |
Function-based C-coefficient. | |
Base class for making Robin boundary conditions with EBHelmholtzOp.
Robin bcs are in the form A*phi + B*dphi/dn = C. We impose dphi/dn = (C - A*phi)/B where phi is extrapolated to the EB to first order.
EBHelmholtzRobinEBBCFactory::EBHelmholtzRobinEBBCFactory | ( | const int | a_order, |
const int | a_weight, | ||
const Real | a_A, | ||
const Real | a_B, | ||
const Real | a_C | ||
) |
Full constructor which sets constant coefficients.
[in] | a_order | Stencil order. Must be > 0 |
[in] | a_weight | Equation weights. Must be >=0 |
[in] | a_A | Robin A-coefficient |
[in] | a_B | Robin B-coefficient |
[in] | a_C | Robin C-coefficient |
EBHelmholtzRobinEBBCFactory::EBHelmholtzRobinEBBCFactory | ( | const int | a_order, |
const int | a_weight, | ||
const std::function< Real(const RealVect &a_pos)> & | a_A, | ||
const std::function< Real(const RealVect &a_pos)> & | a_B, | ||
const std::function< Real(const RealVect &a_pos)> & | a_C | ||
) |
Full constructor which sets variable coefficients.
[in] | a_order | Stencil order. Must be > 0 |
[in] | a_weight | Equation weights. Must be >=0 |
[in] | a_A | Robin A-coefficient |
[in] | a_B | Robin B-coefficient |
[in] | a_C | Robin C-coefficient |
|
overridevirtual |
Factory method.
Implements EBHelmholtzEBBCFactory.
void EBHelmholtzRobinEBBCFactory::setCoefficients | ( | const Real | a_A, |
const Real | a_B, | ||
const Real | a_C | ||
) |
Set constant coefficients.
[in] | a_A | A-coefficient |
[in] | a_B | B-coefficient |
[in] | a_C | C-coefficient |
void EBHelmholtzRobinEBBCFactory::setCoefficients | ( | const std::function< Real(const RealVect &a_pos)> & | a_A, |
const std::function< Real(const RealVect &a_pos)> & | a_B, | ||
const std::function< Real(const RealVect &a_pos)> & | a_C | ||
) |
Set variable coefficients.
[in] | a_A | A-coefficient |
[in] | a_B | B-coefficient |
[in] | a_C | C-coefficient |
Set BC order.
[in] | a_order | Order |
Set equation weights for least squares reconstruction.
[in] | a_weight | Weights |