BISICLES AMR ice sheet model
0.9
|
#include <ISMIP6OceanForcing.H>
Public Member Functions | |
ISMIP6OceanForcing (ParmParse &a_pp) | |
virtual | ~ISMIP6OceanForcing () |
destructor More... | |
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 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 SurfaceFlux * | parse (const char *a_prefix) |
assemble a SurfaceFlux* object from ParmParse inputs More... | |
ISMIP6OceanForcing::ISMIP6OceanForcing | ( | ParmParse & | a_pp | ) |
populate the time -> file map
References computeSource(), m_anomaly, m_basin_file, m_basin_mean_min_thickness, m_basin_var_name, m_deltaT_file, m_deltaT_var_name, m_dz, m_end_year, m_factor, m_local, m_n_basin, m_n_layer, m_name, m_start_year, m_tf_is_source, m_uniform_source, m_uniform_source_year, m_year_file, column_thermodynamics::rhoi, and column_thermodynamics::rhoo.
Referenced by new_surfaceFlux().
|
inlinevirtual |
destructor
References new_surfaceFlux(), and surfaceThicknessFlux().
|
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().
|
protected |
compute source from thermal forcing
Referenced by ISMIP6OceanForcing(), and readUniformSource().
|
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().
|
virtual |
factory method
return a pointer to a new SurfaceFlux object
Implements SurfaceFlux.
References ISMIP6OceanForcing().
Referenced by ~ISMIP6OceanForcing().
|
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().
|
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().
|
protected |
update the uniform source
References m_anomaly, m_dx, m_start_year, m_uniform_source, m_uniform_source_year, readUniformSource(), and surfaceThicknessFlux().
Referenced by surfaceThicknessFlux().
|
protected |
Referenced by ISMIP6OceanForcing(), and updateUniformSource().
|
protected |
Referenced by ISMIP6OceanForcing(), and readUniformSource().
|
protected |
Referenced by readUniformSource().
|
protected |
Referenced by computeBasinMeans(), and ISMIP6OceanForcing().
|
protected |
Referenced by ISMIP6OceanForcing(), and readUniformSource().
|
protected |
Referenced by readUniformSource().
|
protected |
Referenced by ISMIP6OceanForcing(), and readUniformSource().
|
protected |
Referenced by ISMIP6OceanForcing(), and readUniformSource().
|
protected |
Referenced by computeBasinMeans(), computeTFb(), surfaceThicknessFlux(), and updateUniformSource().
|
protected |
Referenced by computeTFb(), and ISMIP6OceanForcing().
|
protected |
Referenced by ISMIP6OceanForcing().
|
protected |
Referenced by ISMIP6OceanForcing(), and readUniformSource().
|
protected |
Referenced by ISMIP6OceanForcing(), and readUniformSource().
|
protected |
Referenced by ISMIP6OceanForcing(), and readUniformSource().
|
protected |
Referenced by computeTFb(), ISMIP6OceanForcing(), and readUniformSource().
|
protected |
Referenced by ISMIP6OceanForcing(), and readUniformSource().
|
protected |
Referenced by ISMIP6OceanForcing(), and updateUniformSource().
|
protected |
Referenced by ISMIP6OceanForcing(), and readUniformSource().
|
protected |
Referenced by ISMIP6OceanForcing(), surfaceThicknessFlux(), and updateUniformSource().
|
protected |
Referenced by ISMIP6OceanForcing(), surfaceThicknessFlux(), and updateUniformSource().
|
protected |
Referenced by ISMIP6OceanForcing(), and readUniformSource().