PISM, A Parallel Ice Sheet Model  stable v1.2 committed by Constantine Khrulev on 2020-02-11 20:24:05 -0900
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
pism::ocean::Pico Class Reference

#include <Pico.hh>

+ Inheritance diagram for pism::ocean::Pico:

Public Member Functions

 Pico (IceGrid::ConstPtr g)
 
virtual ~Pico ()
 
- Public Member Functions inherited from pism::ocean::CompleteOceanModel
 CompleteOceanModel (IceGrid::ConstPtr g, std::shared_ptr< OceanModel > input)
 
 CompleteOceanModel (IceGrid::ConstPtr g)
 
virtual ~CompleteOceanModel ()
 
- Public Member Functions inherited from pism::ocean::OceanModel
 OceanModel (IceGrid::ConstPtr g, std::shared_ptr< OceanModel > input)
 
 OceanModel (IceGrid::ConstPtr g)
 
virtual ~OceanModel ()
 
void init (const Geometry &geometry)
 
void update (const Geometry &geometry, double t, double dt)
 
const IceModelVec2Sshelf_base_temperature () const
 
const IceModelVec2Sshelf_base_mass_flux () const
 
const IceModelVec2Smelange_back_pressure_fraction () const
 
- Public Member Functions inherited from pism::Component
 Component (IceGrid::ConstPtr g)
 
virtual ~Component ()
 
DiagnosticList diagnostics () const
 
TSDiagnosticList ts_diagnostics () const
 
IceGrid::ConstPtr grid () const
 
void define_model_state (const File &output) const
 Define model state variables in an output file. More...
 
void write_model_state (const File &output) const
 Write model state variables to an output file. More...
 
MaxTimestep max_timestep (double t) const
 Reports the maximum time-step the model can take at time t. More...
 

Protected Member Functions

void init_impl (const Geometry &geometry)
 
void update_impl (const Geometry &geometry, double t, double dt)
 
MaxTimestep max_timestep_impl (double t) const
 
void define_model_state_impl (const File &output) const
 The default (empty implementation). More...
 
void write_model_state_impl (const File &output) const
 The default (empty implementation). More...
 
std::map< std::string, Diagnostic::Ptrdiagnostics_impl () const
 
- Protected Member Functions inherited from pism::ocean::CompleteOceanModel
virtual const IceModelVec2Sshelf_base_temperature_impl () const
 
virtual const IceModelVec2Sshelf_base_mass_flux_impl () const
 
- Protected Member Functions inherited from pism::ocean::OceanModel
virtual TSDiagnosticList ts_diagnostics_impl () const
 
virtual const IceModelVec2Smelange_back_pressure_fraction_impl () const
 
- Protected Member Functions inherited from pism::Component
virtual void regrid (const std::string &module_name, IceModelVec &variable, RegriddingFlag flag=NO_REGRID_WITHOUT_REGRID_VARS)
 

Private Member Functions

void compute_ocean_input_per_basin (const PicoPhysics &physics, const IceModelVec2Int &basin_mask, const IceModelVec2Int &continental_shelf_mask, const IceModelVec2S &salinity_ocean, const IceModelVec2S &theta_ocean, std::vector< double > &temperature, std::vector< double > &salinity)
 Compute temperature and salinity input from ocean data by averaging. More...
 
void set_ocean_input_fields (const PicoPhysics &physics, const IceModelVec2S &ice_thickness, const IceModelVec2CellType &mask, const IceModelVec2Int &basin_mask, const IceModelVec2Int &shelf_mask, const std::vector< double > basin_temperature, const std::vector< double > basin_salinity, IceModelVec2S &Toc_box0, IceModelVec2S &Soc_box0)
 Set ocean ocean input from box 0 as boundary condition for box 1. More...
 
void process_box1 (const PicoPhysics &physics, const IceModelVec2S &ice_thickness, const IceModelVec2Int &shelf_mask, const IceModelVec2Int &box_mask, const IceModelVec2S &Toc_box0, const IceModelVec2S &Soc_box0, IceModelVec2S &basal_melt_rate, IceModelVec2S &basal_temperature, IceModelVec2S &T_star, IceModelVec2S &Toc, IceModelVec2S &Soc, IceModelVec2S &overturning)
 
void process_other_boxes (const PicoPhysics &cc, const IceModelVec2S &ice_thickness, const IceModelVec2Int &shelf_mask, const IceModelVec2Int &box_mask, IceModelVec2S &basal_melt_rate, IceModelVec2S &basal_temperature, IceModelVec2S &T_star, IceModelVec2S &Toc, IceModelVec2S &Soc)
 
void extend_basal_melt_rates (const IceModelVec2CellType &mask, IceModelVec2S &basal_melt_rate)
 
void beckmann_goosse (const PicoPhysics &physics, const IceModelVec2S &ice_thickness, const IceModelVec2Int &shelf_mask, const IceModelVec2CellType &cell_type, const IceModelVec2S &Toc_box0, const IceModelVec2S &Soc_box0, IceModelVec2S &basal_melt_rate, IceModelVec2S &T_pressure_melting, IceModelVec2S &Toc, IceModelVec2S &Soc)
 
void compute_box_average (int box_id, const IceModelVec2S &field, const IceModelVec2Int &shelf_mask, const IceModelVec2Int &box_mask, std::vector< double > &result)
 
void compute_box_area (int box_id, const IceModelVec2Int &shelf_mask, const IceModelVec2Int &box_mask, std::vector< double > &result)
 

Private Attributes

IceModelVec2S m_Soc
 
IceModelVec2S m_Soc_box0
 
IceModelVec2S m_Toc
 
IceModelVec2S m_Toc_box0
 
IceModelVec2S m_T_star
 
IceModelVec2S m_overturning
 
IceModelVec2S m_basal_melt_rate
 
IceModelVec2Int m_basin_mask
 
std::unique_ptr< PicoGeometrym_geometry
 
IceModelVec2T::Ptr m_theta_ocean
 
IceModelVec2T::Ptr m_salinity_ocean
 
int m_n_basins
 
int m_n_boxes
 
int m_n_shelves
 

Additional Inherited Members

- Protected Types inherited from pism::Component
enum  RegriddingFlag { REGRID_WITHOUT_REGRID_VARS, NO_REGRID_WITHOUT_REGRID_VARS }
 This flag determines whether a variable is read from the -regrid_file file even if it is not listed among variables in -regrid_vars. More...
 
- Static Protected Member Functions inherited from pism::ocean::OceanModel
static IceModelVec2S::Ptr allocate_shelf_base_temperature (IceGrid::ConstPtr g)
 
static IceModelVec2S::Ptr allocate_shelf_base_mass_flux (IceGrid::ConstPtr g)
 
static IceModelVec2S::Ptr allocate_melange_back_pressure (IceGrid::ConstPtr g)
 
- Protected Attributes inherited from pism::ocean::CompleteOceanModel
IceModelVec2S::Ptr m_shelf_base_temperature
 
IceModelVec2S::Ptr m_shelf_base_mass_flux
 
- Protected Attributes inherited from pism::ocean::OceanModel
std::shared_ptr< OceanModelm_input_model
 
IceModelVec2S::Ptr m_melange_back_pressure_fraction
 
- Protected Attributes inherited from pism::Component
const IceGrid::ConstPtr m_grid
 grid used by this component More...
 
const Config::ConstPtr m_config
 configuration database used by this component More...
 
const units::System::Ptr m_sys
 unit system used by this component More...
 
const Logger::ConstPtr m_log
 logger (for easy access) More...
 

Detailed Description

Implements the PICO ocean model as submitted to The Cryosphere (March 2017).

Generalizes the two dimensional ocean box model of [OlbersHellmer2010] for use in PISM, i.e. three dimensions.

Definition at line 39 of file Pico.hh.


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