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

Applies a different surface flux depending on the mask. More...

#include <ComplexSurfaceFlux.H>

Inheritance diagram for MaskedFlux:
Inheritance graph
[legend]
Collaboration diagram for MaskedFlux:
Collaboration graph
[legend]

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 SurfaceFluxnew_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...
 
- 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

SurfaceFluxm_groundedIceFlux
 
SurfaceFluxm_floatingIceFlux
 
SurfaceFluxm_openSeaFlux
 
SurfaceFluxm_openLandFlux
 

Additional Inherited Members

- Static Public Member Functions inherited from SurfaceFlux
static SurfaceFluxparse (const char *a_prefix)
 assemble a SurfaceFlux* object from ParmParse inputs More...
 

Detailed Description

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:

Constructor & Destructor Documentation

◆ MaskedFlux()

MaskedFlux::MaskedFlux ( SurfaceFlux a_groundedIceFlux,
SurfaceFlux a_floatingIceFlux,
SurfaceFlux a_openSeaFlux,
SurfaceFlux a_openLandFlux 
)

Construct a MaskedFlux given its component fluxes.

constructor

Parameters
a_groundedIceFluxflux over grounded ice
a_floatingIceFluxflux over floating ice
a_openSeaFluxflux over ice free areas below sea level
a_openLandFluxflux over ice free areas above sea level

References MaskedFlux().

Referenced by MaskedFlux().

◆ ~MaskedFlux()

virtual MaskedFlux::~MaskedFlux ( )
inlinevirtual

Member Function Documentation

◆ new_surfaceFlux()

SurfaceFlux * MaskedFlux::new_surfaceFlux ( )
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().

◆ surfaceThicknessFlux()

void MaskedFlux::surfaceThicknessFlux ( LevelData< FArrayBox > &  a_flux,
const AmrIceBase a_amrIce,
int  a_level,
Real  a_dt 
)
virtual

define source term for thickness evolution and place it in flux

Parameters
a_fluxoutput flux data
a_amrIcereference to the ice sheet state
a_levelmesh level of a_flux
a_dtcurrent 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().

Member Data Documentation

◆ m_floatingIceFlux

SurfaceFlux* MaskedFlux::m_floatingIceFlux
protected

◆ m_groundedIceFlux

SurfaceFlux* MaskedFlux::m_groundedIceFlux
protected

◆ m_openLandFlux

SurfaceFlux* MaskedFlux::m_openLandFlux
protected

◆ m_openSeaFlux

SurfaceFlux* MaskedFlux::m_openSeaFlux
protected

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