BISICLES AMR ice sheet model
0.9
|
Applies a different surface flux depending on the mask. More...
#include <ComplexSurfaceFlux.H>
Public Member Functions | |
MaskedFlux (SurfaceFlux *a_groundedIceFlux, SurfaceFlux *a_floatingIceFlux, SurfaceFlux *a_openSeaFlux, SurfaceFlux *a_openLandFlux) | |
Construct a MaskedFlux given its component fluxes. More... | |
virtual | ~MaskedFlux () |
virtual SurfaceFlux * | new_surfaceFlux () |
factory method 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 | |
SurfaceFlux * | m_groundedIceFlux |
SurfaceFlux * | m_floatingIceFlux |
SurfaceFlux * | m_openSeaFlux |
SurfaceFlux * | m_openLandFlux |
Additional Inherited Members | |
![]() | |
static SurfaceFlux * | parse (const char *a_prefix) |
assemble a SurfaceFlux* object from ParmParse inputs More... | |
Applies a different surface flux depending on the mask.
Applies a different surface fluxes for grounded and floating ice and for open sea and land.
Run-time configuration is carried out in SurfaceFlux::parse. If the string A.B.C.type = maskedFlux
is found, then the expected form is:
A.B.C.grounded = <valid SurfaceFlux type (optional, default ZeroFlux) >
A.B.C.floating = <valid SurfaceFlux type (optional, default ZeroFlux) >
A.B.C.openland = <valid SurfaceFlux type (optional, default ZeroFlux) >
A.B.C.opensea = <valid SurfaceFlux type (optional, default ZeroFlux) >
MaskedFlux::MaskedFlux | ( | SurfaceFlux * | a_groundedIceFlux, |
SurfaceFlux * | a_floatingIceFlux, | ||
SurfaceFlux * | a_openSeaFlux, | ||
SurfaceFlux * | a_openLandFlux | ||
) |
Construct a MaskedFlux given its component fluxes.
constructor
a_groundedIceFlux | flux over grounded ice |
a_floatingIceFlux | flux over floating ice |
a_openSeaFlux | flux over ice free areas below sea level |
a_openLandFlux | flux over ice free areas above sea level |
References MaskedFlux().
Referenced by MaskedFlux().
|
inlinevirtual |
|
virtual |
factory method
return a pointer to a new SurfaceFlux object
Implements SurfaceFlux.
References m_floatingIceFlux, m_groundedIceFlux, m_openLandFlux, m_openSeaFlux, and SurfaceFlux::new_surfaceFlux().
|
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_floatingIceFlux, m_groundedIceFlux, m_openLandFlux, m_openSeaFlux, and SurfaceFlux::surfaceThicknessFlux().
|
protected |
Referenced by new_surfaceFlux(), and surfaceThicknessFlux().
|
protected |
Referenced by new_surfaceFlux(), and surfaceThicknessFlux().
|
protected |
Referenced by new_surfaceFlux(), and surfaceThicknessFlux().
|
protected |
Referenced by new_surfaceFlux(), and surfaceThicknessFlux().