16 #ifndef _MULTILEVELDATAIBC_H_ 17 #define _MULTILEVELDATAIBC_H_ 20 #include "NamespaceHeader.H" 40 const Vector<RefCountedPtr<LevelData<FArrayBox> > >& a_topg,
41 const RealVect& a_dxCrse,
const Vector<int> & a_refRatio);
46 virtual void define(
const ProblemDomain& a_domain,
51 virtual void initialize(LevelData<FArrayBox>& a_U);
62 const RealVect& a_domainSize,
65 const int a_refRatio);
70 const RealVect& a_domainSize,
73 const int a_refRatio);
76 virtual void primBC(FArrayBox& a_WGdnv,
77 const FArrayBox& a_Wextrap,
80 const Side::LoHiSide& a_side,
101 const FArrayBox& a_U,
102 const FArrayBox& a_divVel,
115 const ProblemDomain& a_domain,
116 Real a_time, Real a_dt)
123 const ProblemDomain& a_domain,
124 const RealVect& a_dx,
125 Real a_time, Real a_dt);
129 const ProblemDomain& a_domain,
130 const RealVect& a_dx,
131 Real a_time, Real a_dt);
137 MayDay::Error(
"invalid operator");
143 MayDay::Error(
"invalid operator");
147 RefCountedPtr<CompGridVTOBC> m_velBCs;
148 bool m_isBCsetUp, m_verbose;
150 Vector<RefCountedPtr<LevelData<FArrayBox> > > m_thck;
152 Vector<RefCountedPtr<LevelData<FArrayBox> > > m_topg;
156 const RealVect m_dxCrse;
158 const Vector<int> m_refRatio;
161 #include "NamespaceFooter.H" 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: MultiLevelDataIBC.cpp:297
MultiLevelDataIBC(const Vector< RefCountedPtr< LevelData< FArrayBox > > > &a_thck, const Vector< RefCountedPtr< LevelData< FArrayBox > > > &a_topg, const RealVect &a_dxCrse, const Vector< int > &a_refRatio)
Definition: MultiLevelDataIBC.cpp:25
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 thickness fluxes.
Definition: MultiLevelDataIBC.cpp:320
class MultiLevelDataIBC stores initial topography and thickness data on multiple levels and imposes e...
Definition: MultiLevelDataIBC.H:36
Physical/domain initial and boundary conditions for ice-sheet problems.
Definition: IceThicknessIBC.H:84
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: MultiLevelDataIBC.cpp:94
virtual void initialize(LevelData< FArrayBox > &a_U)
Set up initial conditions.
Definition: MultiLevelDataIBC.cpp:313
virtual IceThicknessIBC * new_thicknessIBC()
same as new_physIBC, except pointer cast to an IceThicknessIBC
Definition: MultiLevelDataIBC.cpp:271
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: MultiLevelDataIBC.H:100
virtual void setBdrySlopes(FArrayBox &a_dW, const FArrayBox &a_W, const int &a_dir, const Real &a_time)
Set boundary slopes.
Definition: MultiLevelDataIBC.H:90
Basic Sigma fourth-order coordinate system on an AMR level.
Definition: LevelSigmaCS.H:48
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: MultiLevelDataIBC.cpp:280
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: MultiLevelDataIBC.cpp:181
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: MultiLevelDataIBC.H:113
virtual void define(const ProblemDomain &a_domain, const Real &a_dx)
Define the object.
Definition: MultiLevelDataIBC.cpp:41
virtual ~MultiLevelDataIBC()
Definition: MultiLevelDataIBC.cpp:36
virtual RefCountedPtr< CompGridVTOBC > velocitySolveBC()
return boundary condition for Ice velocity solve
Definition: MultiLevelDataIBC.cpp:84