18 #ifndef _LEVELDATAIBC_H_ 19 #define _LEVELDATAIBC_H_ 23 #include "NamespaceHeader.H" 42 LevelDataIBC(RefCountedPtr<LevelData<FArrayBox> > a_thck,
43 RefCountedPtr<LevelData<FArrayBox> > a_topg,
45 Real a_defaultThickness = 0.0,
46 Real a_defaultTopography = -10000,
47 bool a_setDefaultValues =
false);
61 virtual void define(
const ProblemDomain& a_domain,
76 virtual void initialize(LevelData<FArrayBox>& a_U);
81 const RealVect& a_domainSize,
84 const int a_refRatio);
95 const RealVect& a_domainSize,
98 const int a_refRatio);
104 virtual void primBC(FArrayBox& a_WGdnv,
105 const FArrayBox& a_Wextrap,
106 const FArrayBox& a_W,
108 const Side::LoHiSide& a_side,
119 const FArrayBox& a_W,
128 const FArrayBox& a_U,
129 const FArrayBox& a_divVel,
141 const ProblemDomain& a_domain,
142 Real a_time, Real a_dt)
149 const ProblemDomain& a_domain,
150 const RealVect& a_dx,
151 Real a_time, Real a_dt);
154 const ProblemDomain& a_domain,
155 const RealVect& a_dx,
156 Real a_time, Real a_dt);
160 RefCountedPtr<LevelData<FArrayBox> > m_thck;
161 RefCountedPtr<LevelData<FArrayBox> > m_topg;
163 RefCountedPtr<CompGridVTOBC> m_velBCs;
167 Real m_default_thickness;
169 Real m_default_topography;
173 bool m_set_default_values;
180 MayDay::Error(
"invalid operator");
185 :m_thck(a_input.m_thck),m_topg(a_input.m_topg),m_dx(a_input.m_dx)
187 MayDay::Error(
"invalid operator");
190 void groundCoarse(
LevelSigmaCS& a_coords,
int a_refRatio);
194 #include "NamespaceFooter.H" virtual RefCountedPtr< CompGridVTOBC > velocitySolveBC()
return boundary condition for Ice velocity solve
Definition: LevelDataIBC.cpp:138
virtual void initialize(LevelData< FArrayBox > &a_U)
Set up initial conditions.
Definition: LevelDataIBC.cpp:72
virtual void define(const ProblemDomain &a_domain, const Real &a_dx)
Define the object.
Definition: LevelDataIBC.cpp:65
Physical/domain initial and boundary conditions for ice-sheet problems.
Definition: IceThicknessIBC.H:84
virtual IceThicknessIBC * new_thicknessIBC()
Factory method - this object is its own factory.
Definition: LevelDataIBC.cpp:407
LevelDataIBC()
Definition: LevelDataIBC.cpp:53
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.
Definition: LevelDataIBC.H:139
class LevelDataIBC stores initial topography and thickness data on a single levels and imposes either...
Definition: LevelDataIBC.H:36
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.
Definition: LevelDataIBC.cpp:231
Basic Sigma fourth-order coordinate system on an AMR level.
Definition: LevelSigmaCS.H:48
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 the initial ice sheet geometry
Definition: LevelDataIBC.cpp:264
virtual ~LevelDataIBC()
Destructor.
Definition: LevelDataIBC.cpp:60
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.
Definition: LevelDataIBC.cpp:79
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.
Definition: LevelDataIBC.cpp:125
virtual void setBdrySlopes(FArrayBox &a_dW, const FArrayBox &a_W, const int &a_dir, const Real &a_time)
Set boundary slopes.
Definition: LevelDataIBC.cpp:116
virtual void setGeometryBCs(LevelSigmaCS &a_coords, const ProblemDomain &a_domain, const RealVect &a_dx, Real a_time, Real a_dt)
set non-periodic geometry (thickness, topography) ghost cells
Definition: LevelDataIBC.cpp:248
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)
modify the ice sheet geometry after regrid
Definition: LevelDataIBC.cpp:349