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

#include <ISMIP6OceanForcing.H>

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

Public Member Functions

 ISMIP6OceanForcing (ParmParse &a_pp)
 
virtual ~ISMIP6OceanForcing ()
 destructor More...
 
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 Member Functions

void computeSource (LevelData< FArrayBox > &a_source, LevelData< FArrayBox > &a_TFb, LevelData< FArrayBox > &a_TFb_basin_mean, LevelData< FArrayBox > &a_deltaT, Real a_gamma0)
 compute source from thermal forcing More...
 
void computeTFb (LevelData< FArrayBox > &a_TFb, const LevelData< FArrayBox > &a_TF, const AmrIceBase &a_amrIce)
 compute thermal forcing TFb at the ice shelf base from the 3D 'layered' field TF More...
 
void computeBasinMeans (LevelData< FArrayBox > &a_TFb_basin_mean, LevelData< FArrayBox > &a_TFb, LevelData< FArrayBox > &a_basin_mask, const AmrIceBase &a_amrIce)
 compute the basin means of TFb, store in TFb_mean More...
 
void updateUniformSource (Real a_time, const AmrIceBase &a_amrIce)
 update the uniform source More...
 
void readUniformSource (RefCountedPtr< LevelData< FArrayBox > > &a_source, RealVect &a_dx, int a_year, const AmrIceBase &a_amrIce)
 Read a field TF(x,y,z) and compute source(x,y) More...
 

Protected Attributes

std::map< int, std::string > m_year_file
 
int m_start_year
 
int m_end_year
 
std::string m_name
 
std::string m_basin_file
 
std::string m_basin_var_name
 
std::string m_deltaT_file
 
std::string m_deltaT_var_name
 
bool m_anomaly
 
bool m_local
 
Real m_factor
 
Real m_basin_mean_min_thickness
 
bool m_tf_is_source
 
RefCountedPtr< LevelData< FArrayBox > > m_uniform_source
 
RealVect m_dx
 
int m_uniform_source_year
 
Real m_dz
 
int m_n_layer
 
RefCountedPtr< LevelData< FArrayBox > > m_basin_mask
 
int m_n_basin
 
RefCountedPtr< LevelData< FArrayBox > > m_deltaT
 

Additional Inherited Members

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

Constructor & Destructor Documentation

◆ ISMIP6OceanForcing()

ISMIP6OceanForcing::ISMIP6OceanForcing ( ParmParse &  a_pp)

◆ ~ISMIP6OceanForcing()

virtual ISMIP6OceanForcing::~ISMIP6OceanForcing ( )
inlinevirtual

destructor

References new_surfaceFlux(), and surfaceThicknessFlux().

Member Function Documentation

◆ computeBasinMeans()

void ISMIP6OceanForcing::computeBasinMeans ( LevelData< FArrayBox > &  a_TFb_basin_mean,
LevelData< FArrayBox > &  a_TFb,
LevelData< FArrayBox > &  a_basin_mask,
const AmrIceBase a_amrIce 
)
protected

compute the basin means of TFb, store in TFb_mean

References AmrIceBase::dx(), AmrIceBase::geometry(), m_basin_mean_min_thickness, and m_dx.

Referenced by readUniformSource().

◆ computeSource()

void ISMIP6OceanForcing::computeSource ( LevelData< FArrayBox > &  a_source,
LevelData< FArrayBox > &  a_TFb,
LevelData< FArrayBox > &  a_TFb_basin_mean,
LevelData< FArrayBox > &  a_deltaT,
Real  a_gamma0 
)
protected

compute source from thermal forcing

Referenced by ISMIP6OceanForcing(), and readUniformSource().

◆ computeTFb()

void ISMIP6OceanForcing::computeTFb ( LevelData< FArrayBox > &  a_TFb,
const LevelData< FArrayBox > &  a_TF,
const AmrIceBase a_amrIce 
)
protected

compute thermal forcing TFb at the ice shelf base from the 3D 'layered' field TF

References AmrIceBase::dx(), AmrIceBase::geometry(), m_dx, m_dz, m_n_layer, and readUniformSource().

Referenced by readUniformSource().

◆ new_surfaceFlux()

SurfaceFlux * ISMIP6OceanForcing::new_surfaceFlux ( )
virtual

factory method

return a pointer to a new SurfaceFlux object

Implements SurfaceFlux.

References ISMIP6OceanForcing().

Referenced by ~ISMIP6OceanForcing().

◆ readUniformSource()

void ISMIP6OceanForcing::readUniformSource ( RefCountedPtr< LevelData< FArrayBox > > &  a_source,
RealVect &  a_dx,
int  a_year,
const AmrIceBase a_amrIce 
)
protected

Read a field TF(x,y,z) and compute source(x,y)

Read a field TF(x,y,z) and compute TFb(x,y) = TF(x,y,z = b)

readUniformSource is intended to compute source = - melt on a uniform mesh that covers the entire domain. It should only need to be called once per year (when new TF is needed). It could be called more often if the ice shelf geometry changes rapidly. However, because it computes source even in regions outside the ice shelf, it does not necessairly need to be called simply because the GL or CF have moved

work out TFb(x,y,z) = TF(x,y,z=b)

local formula.

compute the source term

References computeBasinMeans(), computeSource(), computeTFb(), m_basin_file, m_basin_mask, m_basin_var_name, m_deltaT, m_deltaT_file, m_deltaT_var_name, m_factor, m_local, m_n_basin, m_n_layer, m_name, m_tf_is_source, m_year_file, and readLevelData().

Referenced by computeTFb(), and updateUniformSource().

◆ surfaceThicknessFlux()

void ISMIP6OceanForcing::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

Implements SurfaceFlux.

References AmrIceBase::dx(), FillFromReference(), m_dx, m_uniform_source, m_uniform_source_year, ReflectGhostCells(), AmrIceBase::time(), and updateUniformSource().

Referenced by updateUniformSource(), and ~ISMIP6OceanForcing().

◆ updateUniformSource()

void ISMIP6OceanForcing::updateUniformSource ( Real  a_time,
const AmrIceBase a_amrIce 
)
protected

Member Data Documentation

◆ m_anomaly

bool ISMIP6OceanForcing::m_anomaly
protected

◆ m_basin_file

std::string ISMIP6OceanForcing::m_basin_file
protected

◆ m_basin_mask

RefCountedPtr<LevelData<FArrayBox> > ISMIP6OceanForcing::m_basin_mask
protected

Referenced by readUniformSource().

◆ m_basin_mean_min_thickness

Real ISMIP6OceanForcing::m_basin_mean_min_thickness
protected

◆ m_basin_var_name

std::string ISMIP6OceanForcing::m_basin_var_name
protected

◆ m_deltaT

RefCountedPtr<LevelData<FArrayBox> > ISMIP6OceanForcing::m_deltaT
protected

Referenced by readUniformSource().

◆ m_deltaT_file

std::string ISMIP6OceanForcing::m_deltaT_file
protected

◆ m_deltaT_var_name

std::string ISMIP6OceanForcing::m_deltaT_var_name
protected

◆ m_dx

RealVect ISMIP6OceanForcing::m_dx
protected

◆ m_dz

Real ISMIP6OceanForcing::m_dz
protected

Referenced by computeTFb(), and ISMIP6OceanForcing().

◆ m_end_year

int ISMIP6OceanForcing::m_end_year
protected

Referenced by ISMIP6OceanForcing().

◆ m_factor

Real ISMIP6OceanForcing::m_factor
protected

◆ m_local

bool ISMIP6OceanForcing::m_local
protected

◆ m_n_basin

int ISMIP6OceanForcing::m_n_basin
protected

◆ m_n_layer

int ISMIP6OceanForcing::m_n_layer
protected

◆ m_name

std::string ISMIP6OceanForcing::m_name
protected

◆ m_start_year

int ISMIP6OceanForcing::m_start_year
protected

◆ m_tf_is_source

bool ISMIP6OceanForcing::m_tf_is_source
protected

◆ m_uniform_source

RefCountedPtr<LevelData<FArrayBox> > ISMIP6OceanForcing::m_uniform_source
protected

◆ m_uniform_source_year

int ISMIP6OceanForcing::m_uniform_source_year
protected

◆ m_year_file

std::map<int,std::string> ISMIP6OceanForcing::m_year_file
protected

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