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

Normalizes any flux so that the integrated flux has a specified value. More...

#include <ComplexSurfaceFlux.H>

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

Public Member Functions

 NormalizedFlux (SurfaceFlux *a_direction, const Real &a_amplitude)
 Construct a normalized flux from a flux and an amplitude. More...
 
virtual ~NormalizedFlux ()
 
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...
 

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

Normalizes any flux so that the integrated flux has a specified value.

A surface flux that satisfies

$ \int _\Omega f^2(x,y) d \Omega = a^2 \int _\Omega d \Omega $

Run-time configuration is carried out in SurfaceFlux::parse. If the string A.B.C.type = normalizedFlux is found, then the expected form is:

Constructor & Destructor Documentation

◆ NormalizedFlux()

NormalizedFlux::NormalizedFlux ( SurfaceFlux a_direction,
const Real &  a_amplitude 
)

Construct a normalized flux from a flux and an amplitude.

Parameters
a_direction: defines the spatial pattern
a_amplitude: defines the amplitude

References SurfaceFlux::new_surfaceFlux(), and NormalizedFlux().

Referenced by NormalizedFlux().

◆ ~NormalizedFlux()

NormalizedFlux::~NormalizedFlux ( )
virtual

Member Function Documentation

◆ new_surfaceFlux()

SurfaceFlux * NormalizedFlux::new_surfaceFlux ( )
virtual

factory method

return a pointer to a new SurfaceFlux object

Implements SurfaceFlux.

Referenced by SurfaceFlux::parse().

◆ surfaceThicknessFlux()

void NormalizedFlux::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::dx(), FillFromReference(), AmrIceBase::finestLevel(), flattenCellData(), AmrIceBase::geometry(), AmrIceBase::grids(), SurfaceFlux::new_surfaceFlux(), AmrIceBase::refRatios(), SurfaceFlux::surfaceThicknessFlux(), and AmrIceBase::velocity().


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