BISICLES AMR ice sheet model  0.9
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
BasicThicknessIBC Class Reference

Physical/domain initial and boundary conditions. More...

#include <BasicThicknessIBC.H>

Inheritance diagram for BasicThicknessIBC:
Inheritance graph
[legend]
Collaboration diagram for BasicThicknessIBC:
Collaboration graph
[legend]

Public Member Functions

 BasicThicknessIBC ()
 Constructor. More...
 
virtual ~BasicThicknessIBC ()
 Destructor. More...
 
virtual void define (const ProblemDomain &a_domain, const Real &a_dx)
 Define the object. More...
 
virtual IceThicknessIBCnew_thicknessIBC ()
 Factory method - this object is its own factory. More...
 
void setBoundaryThickness (Real a_boundaryThickness)
 set boundary ice-sheet thickness More...
 
virtual void initialize (LevelData< FArrayBox > &a_U)
 Set up initial conditions. More...
 
virtual void initializeIceGeometry (LevelSigmaCS &a_coords, const RealVect &a_dx, const RealVect &a_domainSize, const Real &a_time, const LevelSigmaCS *a_crseCoords, const int a_refRatio)
 set up initial ice state More...
 
virtual void primBC (FArrayBox &a_WGdnv, const FArrayBox &a_Wextrap, const FArrayBox &a_W, const int &a_dir, const Side::LoHiSide &a_side, const Real &a_time)
 Set boundary fluxes. More...
 
virtual void setBdrySlopes (FArrayBox &a_dW, const FArrayBox &a_W, const int &a_dir, const Real &a_time)
 Set boundary slopes. More...
 
virtual void artViscBC (FArrayBox &a_F, const FArrayBox &a_U, const FArrayBox &a_divVel, const int &a_dir, const Real &a_time)
 Adjust boundary fluxes to account for artificial viscosity. More...
 
virtual RefCountedPtr< CompGridVTOBC > velocitySolveBC ()
 return boundary condition for Ice velocity solve More...
 
- Public Member Functions inherited from IceThicknessIBC
 IceThicknessIBC ()
 Constructor. More...
 
virtual ~IceThicknessIBC ()
 Destructor. More...
 
virtual PhysIBC * new_physIBC ()
 Factory method - this object is its own factory. More...
 
virtual bool regridIceGeometry (LevelSigmaCS &a_coords, const RealVect &a_dx, const RealVect &a_domainSize, const Real &a_time, const LevelSigmaCS *a_crseCoords, const int a_refRatio)
 set up topography, etc at regrid time More...
 
virtual void velocityGhostBC (LevelData< FArrayBox > &a_velocity, const LevelSigmaCS &a_coords, const ProblemDomain &a_domain, Real a_time)
 fill ghost cells on velocity More...
 
virtual void modifyVelocityRHS (LevelData< FArrayBox > &a_rhs, LevelSigmaCS &a_coords, const ProblemDomain &a_domain, Real a_time, Real a_dt)
 if appropriate, modify velocity solve RHS in a problem-dependent way. More...
 
virtual void modifyFaceVelocity (LevelData< FluxBox > &a_faceVel, const LevelSigmaCS &a_coords, const ProblemDomain &a_domain) const
 if appropriate, modify face velocities in a problem-dependent way. More...
 
virtual void setSurfaceHeightBCs (LevelData< FArrayBox > &a_zSurface, LevelSigmaCS &a_coords, const ProblemDomain &a_domain, const RealVect &a_dx, Real a_time, Real a_dt)
 set non-periodic ghost cells for surface height z_s. More...
 
virtual void setGeometryBCs (LevelSigmaCS &a_coords, const ProblemDomain &a_domain, const RealVect &a_dx, Real a_time, Real a_dt)
 set non-periodic ghost cells for geometry More...
 
virtual void setIceFractionBCs (LevelData< FArrayBox > &a_iceFrac, const ProblemDomain &a_domain, const RealVect &a_dx, Real a_time, Real a_dt)
 set non-periodic ghost cells for ice fraction More...
 
virtual void setGridHierarchy (Vector< RefCountedPtr< LevelSigmaCS > > &a_vectCS, Vector< ProblemDomain > &a_vectDomain)
 set AMR grid hierarchy (for the BC's which need this) More...
 
virtual void checkOK () const
 

Protected Member Functions

void setupBCs ()
 set up bc's based on parmparse inputs More...
 

Protected Attributes

Real m_boundaryThickness
 
RealVect m_domainSize
 
bool m_isBCsetUp
 
RefCountedPtr< CompGridVTOBC > m_velBCs
 

Detailed Description

Physical/domain initial and boundary conditions.

Constructor & Destructor Documentation

◆ BasicThicknessIBC()

BasicThicknessIBC::BasicThicknessIBC ( )

Constructor.

References m_isBCsetUp.

Referenced by new_thicknessIBC().

◆ ~BasicThicknessIBC()

BasicThicknessIBC::~BasicThicknessIBC ( )
virtual

Destructor.

Member Function Documentation

◆ artViscBC()

void BasicThicknessIBC::artViscBC ( FArrayBox &  a_F,
const FArrayBox &  a_U,
const FArrayBox &  a_divVel,
const int &  a_dir,
const Real &  a_time 
)
virtual

Adjust boundary fluxes to account for artificial viscosity.

Implements IceThicknessIBC.

◆ define()

void BasicThicknessIBC::define ( const ProblemDomain &  a_domain,
const Real &  a_dx 
)
virtual

Define the object.

Set the problem domain index space and the grid spacing for this initial and boundary condition object.

Set the problem domain index space and the grid spacing for this initial and boundary condition object. Just calls base-class define

Reimplemented from IceThicknessIBC.

◆ initialize()

void BasicThicknessIBC::initialize ( LevelData< FArrayBox > &  a_U)
virtual

Set up initial conditions.

shouldn't be here...

Implements IceThicknessIBC.

◆ initializeIceGeometry()

void BasicThicknessIBC::initializeIceGeometry ( LevelSigmaCS a_coords,
const RealVect &  a_dx,
const RealVect &  a_domainSize,
const Real &  a_time,
const LevelSigmaCS a_crseCoords,
const int  a_refRatio 
)
virtual

set up initial ice state

reads info from ParmParse and sets up ice sheet geometry, often by calling the defineLevelSigmaCS function in the util directory

reads info from ParmParse and sets up ice sheet geometry by calling the defineLevelSigmaCS function in the util directory

Implements IceThicknessIBC.

References circle, constantThickness, constantThickness1km, constantZb, constantZs1km, defineLevelSigmaCS(), doubleZb, pattynAH, pattynAZb, pattynBH, pattynBZb, singleSinBump, sinusoidalH, sinusoidalHx, sinusoidalYZb, xInclineZb, and yInclineZb.

◆ new_thicknessIBC()

IceThicknessIBC * BasicThicknessIBC::new_thicknessIBC ( )
virtual

Factory method - this object is its own factory.

Return a pointer to a new IceThicknessIBC object with m_isDefined = false (i.e., its define() must be called before it is used).

Return a pointer to a new PhysIBC object with m_isDefined = false (i.e., its define() must be called before it is used).

Implements IceThicknessIBC.

References BasicThicknessIBC(), and m_boundaryThickness.

◆ primBC()

void BasicThicknessIBC::primBC ( FArrayBox &  a_WGdnv,
const FArrayBox &  a_Wextrap,
const FArrayBox &  a_W,
const int &  a_dir,
const Side::LoHiSide &  a_side,
const Real &  a_time 
)
virtual

Set boundary fluxes.

Implements IceThicknessIBC.

References m_boundaryThickness.

◆ setBdrySlopes()

void BasicThicknessIBC::setBdrySlopes ( FArrayBox &  a_dW,
const FArrayBox &  a_W,
const int &  a_dir,
const Real &  a_time 
)
virtual

Set boundary slopes.

The boundary slopes in a_dW are already set to one sided difference approximations. If this function doesn't change them they will be used for the slopes at the boundaries.

Implements IceThicknessIBC.

◆ setBoundaryThickness()

void BasicThicknessIBC::setBoundaryThickness ( Real  a_boundaryThickness)
inline

set boundary ice-sheet thickness

◆ setupBCs()

void BasicThicknessIBC::setupBCs ( )
protected

set up bc's based on parmparse inputs

References iceDirichletBC(), iceNeumannBC(), m_isBCsetUp, and m_velBCs.

Referenced by velocitySolveBC().

◆ velocitySolveBC()

RefCountedPtr< CompGridVTOBC > BasicThicknessIBC::velocitySolveBC ( )
virtual

return boundary condition for Ice velocity solve

eventually would like this to be a BCHolder

Implements IceThicknessIBC.

References m_isBCsetUp, m_velBCs, and setupBCs().

Member Data Documentation

◆ m_boundaryThickness

Real BasicThicknessIBC::m_boundaryThickness
protected

Referenced by new_thicknessIBC(), and primBC().

◆ m_domainSize

RealVect BasicThicknessIBC::m_domainSize
protected

◆ m_isBCsetUp

bool BasicThicknessIBC::m_isBCsetUp
protected

◆ m_velBCs

RefCountedPtr<CompGridVTOBC> BasicThicknessIBC::m_velBCs
protected

Referenced by setupBCs(), and velocitySolveBC().


The documentation for this class was generated from the following files: