BISICLES AMR ice sheet model
0.9
|
Continuum melange transport model. More...
#include <AMRMelange.H>
Public Member Functions | |
~AMRMelange () | |
AMRMelange () | |
const LevelData< FArrayBox > * | melange (int a_level) const |
int | finestLevel () const |
void | define (const Vector< DisjointBoxLayout > &a_grids, const Vector< int > &a_ratio, int a_finestLevel, const RealVect &a_crseDx) |
void | timestep (Real a_dt, AmrIce &a_amrIce) |
advance by timestep a_dt. a_dt must satisfy CFL More... | |
void | increment (AmrIce &a_amrIce, Real a_scale) |
increment the melange thickness by a_scale * ice thickness More... | |
void | addPlotVars (Vector< std::string > &a_vars) |
add the names of variables to add to the plot file to a_var, in the order they will be written More... | |
void | writePlotData (LevelData< FArrayBox > &a_data, int a_level) |
copy level a_level plot data to LevelData<FArrayBox>& a_data More... | |
void | addCheckVars (Vector< std::string > &a_vars) |
fill a_var with the names of variables to add to the checkpoint file More... | |
void | writeCheckData (HDF5Handle &a_handle, int a_level) |
copy level a_level checkpoint data to LevelData<FArrayBox>& a_data More... | |
void | readCheckData (HDF5Handle &a_handle, HDF5HeaderData &a_header, int a_level, const DisjointBoxLayout &a_grids) |
read level a_level checkpoint data from LevelData<FArrayBox>& a_data More... | |
const LevelData< FArrayBox > * | melangeThickness (int lev) |
Protected Attributes | |
Vector< LevelData< FArrayBox > *> | m_melange |
Continuum melange transport model.
The melange transport model is inended for coupling with ocean and/or iceberg model. Ice removed from the ice sheet through calving, either by flowing across the front or by larger scale ice shelf collapse is transferred to a melange thickness field defined on the same domain. To enable the model, set the ParmParse option
melange_model = true
The ocean / iceberg model is expected to provide a melange source as a SurfaceFlux (i.e, much as an oceanic melt rate would be supplied to the ice sheet). Provided that this field balances the source of melange from the ice sheet, the melange thickness will not grow over time.
To specify the surface flux, set the components of melange_model.external_source. For example
melange_model.external_source.type = LevelData
melange_model.external_source.fileFormat = melange_source.hdf5
melange_model.external_source.name = melange_source
One potential problem is that the ocean model domain may not entirely cover BISICLES open ocean regions. BISICLES wil normally be run at a finer resolution and so will resolve narrower fjords. By setting
melange_model.diffusion_factor > 0.0
melange thickness will be trasnported diffusively, with a diffusion coeffcient so that there is zero diffusion inside the ice sheet and on open land.
AMRMelange::~AMRMelange | ( | ) |
AMRMelange::AMRMelange | ( | ) |
References SurfaceFlux::parse().
void AMRMelange::addCheckVars | ( | Vector< std::string > & | a_vars | ) |
fill a_var with the names of variables to add to the checkpoint file
Referenced by MelangeIceObserver::addCheckVars(), and finestLevel().
void AMRMelange::addPlotVars | ( | Vector< std::string > & | a_vars | ) |
add the names of variables to add to the plot file to a_var, in the order they will be written
Referenced by MelangeIceObserver::addPlotVars(), and finestLevel().
void AMRMelange::define | ( | const Vector< DisjointBoxLayout > & | a_grids, |
const Vector< int > & | a_ratio, | ||
int | a_finestLevel, | ||
const RealVect & | a_crseDx | ||
) |
References MelangeIceObserver::melange().
Referenced by finestLevel(), melange(), MelangePhysIBC::MelangePhysIBC(), and MelangeIceObserver::notify().
|
inline |
References addCheckVars(), addPlotVars(), define(), increment(), readCheckData(), timestep(), writeCheckData(), and writePlotData().
void AMRMelange::increment | ( | AmrIce & | a_amrIce, |
Real | a_scale | ||
) |
increment the melange thickness by a_scale * ice thickness
References AmrIce::geometry().
Referenced by finestLevel(), and MelangeIceObserver::notify().
const LevelData< FArrayBox > * AMRMelange::melange | ( | int | a_level | ) | const |
References define().
|
inline |
References m_melange.
void AMRMelange::readCheckData | ( | HDF5Handle & | a_handle, |
HDF5HeaderData & | a_header, | ||
int | a_level, | ||
const DisjointBoxLayout & | a_grids | ||
) |
read level a_level checkpoint data from LevelData<FArrayBox>& a_data
Referenced by finestLevel(), and MelangeIceObserver::readCheckData().
void AMRMelange::timestep | ( | Real | a_dt, |
AmrIce & | a_amrIce | ||
) |
advance by timestep a_dt. a_dt must satisfy CFL
References AmrIce::amrGeometry(), and MelangeIceObserver::melange().
Referenced by finestLevel(), and MelangeIceObserver::notify().
void AMRMelange::writeCheckData | ( | HDF5Handle & | a_handle, |
int | a_level | ||
) |
copy level a_level checkpoint data to LevelData<FArrayBox>& a_data
Referenced by finestLevel(), and MelangeIceObserver::writeCheckData().
void AMRMelange::writePlotData | ( | LevelData< FArrayBox > & | a_data, |
int | a_level | ||
) |
copy level a_level plot data to LevelData<FArrayBox>& a_data
Referenced by finestLevel(), and MelangeIceObserver::writePlotData().
|
mutableprotected |
Referenced by melangeThickness().