20#include "pism/coupler/ocean/Frac_MBP.hh"
21#include "pism/geometry/Geometry.hh"
22#include "pism/util/ScalarForcing.hh"
23#include "pism/util/Logger.hh"
35 "melange back pressure fraction"));
49 "* Initializing melange back pressure fraction forcing...\n");
69 const auto &geometry = *inputs.
geometry;
73 ice_density =
m_config->get_number(
"constants.ice.density"),
74 g =
m_config->get_number(
"constants.standard_gravity");
80 for (
auto p :
m_grid->points()) {
81 const int i = p.i(), j = p.j();
84 P_i = 0.5 * ice_density *
g * geometry.ice_thickness(i, j),
85 P_m = lambda * (P_i - P_o(i, j));
std::shared_ptr< const Config > m_config
configuration database used by this component
const std::shared_ptr< const Grid > m_grid
grid used by this component
std::shared_ptr< const Logger > m_log
logger (for easy access)
Makes sure that we call begin_access() and end_access() for all accessed array::Arrays.
Frac_MBP(std::shared_ptr< const Grid > g, std::shared_ptr< OceanModel > in)
std::unique_ptr< ScalarForcing > m_forcing
void init_impl(const Geometry &geometry)
void update_impl(const Inputs &inputs, double t, double dt)
const array::Scalar & average_water_column_pressure_impl() const
std::shared_ptr< OceanModel > m_input_model
std::shared_ptr< array::Scalar > m_water_column_pressure
static std::shared_ptr< array::Scalar > allocate_water_column_pressure(std::shared_ptr< const Grid > g)
A very rudimentary PISM ocean model.
bool ocean(int M)
An ocean cell (floating ice or ice-free).