|
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... | |
Public Member Functions inherited from SurfaceFlux | |
| 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 Public Member Functions inherited from SurfaceFlux | |
| 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().
1.8.13