BISICLES AMR ice sheet model
0.9
|
SurfaceFlux which has a piecewise linear dependence on ice thickness. More...
#include <ComplexSurfaceFlux.H>
Public Member Functions | |
PiecewiseLinearFlux (const Vector< Real > &a_abscissae, const Vector< Real > &a_ordinates, const Real a_minWaterDepth=-1.0) | |
~PiecewiseLinearFlux () | |
virtual SurfaceFlux * | new_surfaceFlux () |
factory method: return a pointer to a new SurfaceFlux object More... | |
virtual void | surfaceThicknessFlux (LevelData< FArrayBox > &a_flux, const AmrIceBase &a_amrIce, int a_level, Real a_dt) |
define source term for thickness evolution and place it in flux More... | |
![]() | |
virtual | ~SurfaceFlux () |
virtual destructor More... | |
virtual void | evaluate (LevelData< FArrayBox > &a_data, const AmrIceBase &a_amrIce, int a_level, Real a_dt) |
Sub-classes of this class turned out to be useful for various data apart from thickness fluxes... More... | |
Protected Attributes | |
Vector< Real > | m_abscissae |
Vector< Real > | m_ordinates |
Real | m_minWaterDepth |
Additional Inherited Members | |
![]() | |
static SurfaceFlux * | parse (const char *a_prefix) |
assemble a SurfaceFlux* object from ParmParse inputs More... | |
SurfaceFlux which has a piecewise linear dependence on ice thickness.
Usually used in conjunction with MaskedFlux to impose a depth dependent ice shelf melt rate. Provided that the cavity water thickness , the surface flux is computed from
pairs of abissiciae and ordinates
for
for
for
Run-time configuration is carried out in SurfaceFlux::parse. If the string A.B.C.type = piecewiseLinearFlux
is found, then the expected form is:
A.B.C.n = <int>
(number of abscissae and ordinates)A.B.C.abscissae = <float> <float> ...
(list of thickness absissae)A.B.C.ordinates = <float> <float> ...
(list of flux ordinates)PiecewiseLinearFlux::PiecewiseLinearFlux | ( | const Vector< Real > & | a_abscissae, |
const Vector< Real > & | a_ordinates, | ||
const Real | a_minWaterDepth = -1.0 |
||
) |
a_abscissae | list of thickness abscissae ![]() |
a_abscissae | list of flux ordinates ![]() |
a_minWaterDepth | set flux to zero in sub-shelf cavities thinner than a_minWaterDepth |
References m_abscissae, m_ordinates, and PiecewiseLinearFlux().
Referenced by PiecewiseLinearFlux().
|
inline |
|
virtual |
factory method: return a pointer to a new SurfaceFlux object
Implements SurfaceFlux.
References m_abscissae, m_minWaterDepth, and m_ordinates.
|
virtual |
define source term for thickness evolution and place it in flux
a_flux | output flux data |
a_amrIce | reference to the ice sheet state |
a_level | mesh level of a_flux |
a_dt | current timestep |
a_dt is included in case one needs integrals or averages over a timestep. flux should be defined in meters per year in the current implementation.
Implements SurfaceFlux.
References AmrIceBase::geometry(), m_abscissae, m_minWaterDepth, and m_ordinates.
|
protected |
Referenced by new_surfaceFlux(), PiecewiseLinearFlux(), and surfaceThicknessFlux().
|
protected |
Referenced by new_surfaceFlux(), and surfaceThicknessFlux().
|
protected |
Referenced by new_surfaceFlux(), PiecewiseLinearFlux(), and surfaceThicknessFlux().