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

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
 

Detailed Description

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

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

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 thickness will be trasnported diffusively, with a diffusion coeffcient $K = f * \max(1-s, 0) * \max (s-h-b,0)$ so that there is zero diffusion inside the ice sheet and on open land.

Constructor & Destructor Documentation

◆ ~AMRMelange()

AMRMelange::~AMRMelange ( )

◆ AMRMelange()

AMRMelange::AMRMelange ( )

References SurfaceFlux::parse().

Member Function Documentation

◆ addCheckVars()

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().

◆ addPlotVars()

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().

◆ define()

void AMRMelange::define ( const Vector< DisjointBoxLayout > &  a_grids,
const Vector< int > &  a_ratio,
int  a_finestLevel,
const RealVect &  a_crseDx 
)

◆ finestLevel()

int AMRMelange::finestLevel ( ) const
inline

◆ increment()

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().

◆ melange()

const LevelData< FArrayBox > * AMRMelange::melange ( int  a_level) const

References define().

◆ melangeThickness()

const LevelData<FArrayBox>* AMRMelange::melangeThickness ( int  lev)
inline

References m_melange.

◆ readCheckData()

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().

◆ timestep()

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().

◆ writeCheckData()

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().

◆ writePlotData()

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().

Member Data Documentation

◆ m_melange

Vector<LevelData<FArrayBox>* > AMRMelange::m_melange
mutableprotected

Referenced by melangeThickness().


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