Mushy Layer
1.0
|
Big class to encapsulate physical boundary conditions. More...
#include <PhysBCUtil.H>
Public Types | |
enum | VelBCType { bogusBC = -1, SolidWall, Inflow, Outflow, OutflowNormal, VelInflowOutflow, noShear, Symmetry, VelInflowPlume, OutflowPressureGrad, PressureHead, NUM_PHYS_BC_TYPES } |
Different types of velocity boundary conditions. More... | |
enum | scalarBCType { Dirichlet, Neumann, InflowOutflow, OnlyInflow, Robin, VariableFlux, FixedTemperature, TemperatureFlux, TemperatureFluxRadiation, MixedBCTemperatureSalinity } |
Different options for scalar boundary conditions. More... | |
Public Member Functions | |
PhysBCUtil (MushyLayerParams a_params, Real a_dx) | |
virtual PhysBCUtil * | newPhysBCUtil () const |
"virtual" constructor | |
virtual Tuple< BCHolder, SpaceDim > | tracingVelFuncBC () const |
Returns velocity BC for tracing (inviscid) | |
virtual Tuple< BCHolder, SpaceDim > | advectionVelFuncBC (bool a_isViscous) const |
Returns edge-centered vel BC for edge-ctrd vel (single component) | |
virtual Tuple< BCHolder, SpaceDim > | fluxExtrapBC () const |
Currently unused. | |
virtual Tuple< BCHolder, SpaceDim > | uStarFuncBC (bool a_isViscous=false) const |
BC holder for . | |
virtual Tuple< BCHolder, SpaceDim > | edgeVelFuncBC (bool a_isViscous=false, LevelData< FluxBox > *velocityBCVals=NULL) const |
BC holder for (edge centred) | |
virtual Tuple< BCHolder, SpaceDim > | porosityFaceBC () const |
BC holder for porosity , (edge centred) | |
virtual Tuple< BCHolder, SpaceDim > | permeabilityFaceBC () const |
BCs for permeability (edge centred) | |
virtual Tuple< BCHolder, SpaceDim > | velExtrapBC (Interval ghostInterval=Interval(0, 0)) const |
BC holder for velocity - extrapolation. | |
virtual BCHolder | viscousRefluxBC (int a_dir, bool a_isViscous=false) const |
Returns single-component BC for viscous refluxing solves. | |
virtual PhysIBC * | advectionVelIBC () const |
bool | isDefined () |
Is object defined? | |
void | Dx (const Real a_dx) |
Sets the cell spacing . | |
void | convertBCType (const int a_implicitBC, const Real a_implicitVal, int &a_explicitBC, Real &a_explicitVal) const |
Convert to AdvectIBC BCs. | |
int | convertBCType (const int a_implicitBC) const |
Handy to have a function of this form, too. | |
Real | Dx () const |
Returns cell spacing. | |
void | Time (const Real a_time) |
Sets time. | |
void | updateTimeDependentBCs () |
Update time dependent BCs (e.g. after changing the time) | |
Real | Time () const |
Returns current time. | |
void | setAdvVel (LevelData< FluxBox > *a_advVel) |
Set pointer to advection velocity. | |
LevelData< FluxBox > * | getAdvVel () |
Get pointer to advection velocity. | |
virtual BCHolder | LevelPressureFuncBC () const |
BC holder for pressure . More... | |
virtual BCHolder | gradESyncFuncBC () const |
BC holder for synchronisation correction. More... | |
virtual BCHolder | gradPiFuncBC () const |
BC holder for . | |
virtual BCHolder | extrapFuncBC () const |
Extrap BCs on all domain boundaries. | |
virtual BCHolder | FreestreamCorrFuncBC () const |
BC holder for freestream correction. More... | |
virtual BCHolder | SyncProjFuncBC () const |
BC holder for synchronisation projection. More... | |
virtual BCHolder | gradMacPressureFuncBC () const |
BC holder for in the MAC projection. More... | |
virtual BCHolder | gradELambdaFuncBC () const |
BC holder for freestream preservation correction . More... | |
virtual BCHolder | velFuncBC (int a_dir, bool a_viscous, Interval interval=Interval(0, 0)) const |
returns single-component BC for viscous solves More... | |
virtual BCHolder | extrapolationFuncBC (int a_order=0) const |
returns single-component BC More... | |
virtual BCHolder | BasicGradPressureFuncBC () const |
BC holder for . More... | |
virtual BCHolder | streamFunctionBC () const |
BCs for streamfunction. | |
virtual BCHolder | BasicPressureFuncBC (bool a_isHomogeneous) const |
BC holder for pressure. More... | |
virtual BCHolder | ThetaLFuncBC (bool a_homogeneous=false, LevelData< FluxBox > *a_advVel=NULL) const |
BC holder for liquid concentration, . | |
virtual BCHolder | TracerBC (bool a_homogeneous=false, LevelData< FluxBox > *a_advVel=NULL, Real a_boundaryVal=1.0) const |
virtual BCHolder | BasicthetaFuncBC (bool a_homogeneous=false, LevelData< FluxBox > *a_advVel=NULL) const |
BC holder for temperature, . | |
virtual BCHolder | BasicPorosityFuncBC (bool a_homogeneous=false) const |
BC holder for porosity, (cell centred) | |
virtual BCHolder | BasicPorosityFaceFuncBC (int a_comp, bool a_homogeneous=false) const |
BC holder for porosity, (edge centred) | |
virtual BCHolder | BasicPermeabilityFuncBC (bool a_homogeneous=false) const |
BC holder for permeability, . | |
virtual BCHolder | BasicPermeabilityFaceFuncBC (int a_comp, bool a_homogeneous=false) const |
BC holder for permeability, (edge centred) | |
virtual BCHolder | BasicEnthalpyFuncBC (bool a_homogeneous=false, LevelData< FluxBox > *a_advVel=NULL) const |
BC holder for enthalpy. | |
virtual BCHolder | BasicLiquidusBC (bool a_homogeneous=false, LevelData< FluxBox > *a_advVel=NULL) const |
Boundary conditions for calculating the liquidus. | |
virtual BCHolder | BasicEutecticBC (bool a_homogeneous=false, LevelData< FluxBox > *a_advVel=NULL) const |
Boundary conditions for calculating the eutectic. | |
virtual BCHolder | BasicSolidusBC (bool a_homogeneous=false, LevelData< FluxBox > *a_advVel=NULL) const |
Boundary conditions for calculating the solidus. | |
virtual BCHolder | BasicScalarFuncBC (Real a_topVal, Real a_bottomVal, Real a_plumeVal, bool a_homogeneous=false) const |
BC holder for some generic scalar. | |
virtual BCHolder | ThetaFuncBC (bool a_homogeneous=false, LevelData< FluxBox > *a_advVel=NULL) const |
BC holder for bulk concentration . | |
virtual BCHolder | lambdaBC (bool a_homogeneous=false, bool a_scaleWithPorosity=false) const |
BC holder for (for finding freestream preservation errors) | |
virtual BCHolder | noFluxBC () const |
BCs for no flux boundaries. | |
virtual PhysIBC * | scalarTraceIBC (RealVect bcValLo, RealVect bcValHi, IntVect bcTypeLo, IntVect bcTypeHi, Real a_bcPlumeVal=0.0, Vector< Real > a_plumeBounds=Vector< Real >(0)) const |
Initial and Boundary Conditions for advecting scalars. More... | |
virtual PhysIBC * | scalarTraceHC_IBC () const |
For multi component enthalpy-salinity solve. | |
virtual PhysIBC * | scalarTraceH_IBC () const |
Boundary conditions for Enthalpy during advection solves. | |
virtual PhysIBC * | scalarTraceC_IBC () const |
Boundary conditions for Bulk Concentration during advection solves. | |
virtual PhysIBC * | scalarTrace_IBC (Vector< int > a_bcTypeHi, Vector< int > a_bcTypeLo, RealVect a_bcValHi, RealVect a_bcValLo, Real a_plumeInflow) const |
Generic boundary conditions for Bulk Concentration during advection solves. | |
void | applyFrameAdvectionBC (IntVect &bcTypeHi, IntVect &bcTypeLo) const |
Apply frame advection BCs if appropriate. | |
virtual PhysIBC * | scalarTraceTSl_IBC () const |
For multi component enthalpy-salinity solve. | |
virtual BCHolder | temperatureLiquidSalinityBC (bool a_homogeneous=false) const |
BC for object with two components: temperature and liquid salinity. | |
virtual BCHolder | enthalpySalinityBC (bool a_homogeneous=false) const |
BC for object with two components: enthalpy and bulk salinity. | |
virtual BCHolder | extrapVelFuncBC (int a_comp, Interval ghostInterval=Interval(0, 0)) const |
Apply extrapolation BCs to velocity. | |
Public Attributes | |
MushyLayerParams | m_params |
Physical parameters for the system. | |
Protected Member Functions | |
virtual BCHolder | basicECVelFuncBC (bool a_isHomogeneous, bool a_isViscous, int a_comp, const Interval &a_interval, LevelData< FluxBox > *a_velocityBCVals=NULL) const |
BCHolder for edge centred velocity. | |
virtual BCHolder | basicCCVelFuncBC (bool a_isHomogeneous, bool a_isViscous, int a_velComponent, const Interval &a_interval) const |
returns a BCHolder for cell-centered velocity | |
virtual BCHolder | extrapVelFuncInterior (bool a_isHomogeneous, int a_comp, const Interval &a_interval, int n_ghost) const |
Apply extrapolation BCs to velocity (interior ghost cells) | |
virtual void | setBCs () |
interact with ParmParse to set physical BC types | |
Protected Attributes | |
Tuple< int, SpaceDim > | m_loBC |
contains the enumerated values for the lo-end BC | |
Tuple< int, SpaceDim > | m_hiBC |
contains the enumerated values for the hi-end BC | |
Big class to encapsulate physical boundary conditions.
Different options for scalar boundary conditions.
Different types of velocity boundary conditions.
SolidWall - no normal flow, no transverse flow is viscous Inflow - Outflow - OutflowNormal - normal component has zero gradient at boundary, transverse component = 0 VelInflowOutflow - noShear - Symmetry -
PhysBCUtil::PhysBCUtil | ( | MushyLayerParams | a_params, |
Real | a_dx | ||
) |
this will access the ParmParse database using the physBC prefix and use it to define the physical BC types (hi and lo) in each direction. The BC type "custom" will imply that the BC is a somewhat nonstandard one, but that the derived class will know what to do with it.
|
virtual |
Returns a BC object compatible with AMRGodunov advection infrastructure. For use in the PatchGodunov stuff.
|
virtual |
BC holder for .
Extrapolation BCs on all boundaries
|
virtual |
BC holder for pressure.
For subcycled code.
|
virtual |
returns single-component BC
Be very careful with this function - it fills CF ghost cells.
Applies BCs to component in the Interval(a_dir, a_dir)returns multi-component BC for applying to fields which have been calculated Not for use when computing fields - use velFuncBC() for solves. 0th order extrapolation, also fills interior ghost cells
|
virtual |
BC holder for freestream correction.
No normal gradient,
|
virtual |
BC holder for freestream preservation correction .
Same as for in general
|
virtual |
BC holder for synchronisation correction.
Just use same BC as
|
virtual |
BC holder for in the MAC projection.
Same as for in general
|
virtual |
BC holder for pressure .
For subcycled code.
|
virtual |
Initial and Boundary Conditions for advecting scalars.
this is a BC object used in the PatchGodunov stuff
|
virtual |
BC holder for synchronisation projection.
Same BCs as for pressure
|
virtual |
returns single-component BC for viscous solves
Applies BCs to the component in the Interval(0,0)