19 #ifndef _PISMSTRESSBALANCE_DIAGNOSTICS_H_
20 #define _PISMSTRESSBALANCE_DIAGNOSTICS_H_
22 #include "pism/stressbalance/StressBalance.hh"
23 #include "pism/util/Diagnostic.hh"
26 namespace stressbalance {
34 virtual std::shared_ptr<array::Array>
compute_impl()
const;
44 virtual std::shared_ptr<array::Array>
compute_impl()
const;
54 virtual std::shared_ptr<array::Array>
compute_impl()
const;
64 virtual std::shared_ptr<array::Array>
compute_impl()
const;
74 virtual std::shared_ptr<array::Array>
compute_impl()
const;
84 virtual std::shared_ptr<array::Array>
compute_impl()
const;
93 virtual std::shared_ptr<array::Array>
compute_impl()
const;
114 virtual std::shared_ptr<array::Array>
compute_impl()
const;
123 virtual std::shared_ptr<array::Array>
compute_impl()
const;
132 virtual std::shared_ptr<array::Array>
compute_impl()
const;
141 virtual std::shared_ptr<array::Array>
compute_impl()
const;
150 virtual std::shared_ptr<array::Array>
compute_impl()
const;
159 virtual std::shared_ptr<array::Array>
compute_impl()
const;
168 virtual std::shared_ptr<array::Array>
compute_impl()
const;
178 virtual std::shared_ptr<array::Array>
compute_impl()
const;
187 virtual std::shared_ptr<array::Array>
compute_impl()
const;
196 virtual std::shared_ptr<array::Array>
compute_impl()
const;
205 virtual std::shared_ptr<array::Array>
compute_impl()
const;
214 virtual std::shared_ptr<array::Array>
compute_impl()
const;
223 virtual std::shared_ptr<array::Array>
compute_impl()
const;
232 virtual std::shared_ptr<array::Array>
compute_impl()
const;
A template derived from Diagnostic, adding a "Model".
std::shared_ptr< array::Array > compute() const
Compute a diagnostic quantity and return a pointer to a newly-allocated Array.
virtual std::shared_ptr< array::Array > compute_impl() const
PSB_bfrict(const StressBalance *m)
Computes basal frictional heating.
PSB_deviatoric_stresses(const StressBalance *m)
virtual std::shared_ptr< array::Array > compute_impl() const
Reports the vertically-integrated (2D) deviatoric stresses.
virtual std::shared_ptr< array::Array > compute_impl() const
PSB_flux_mag(const StressBalance *m)
Computes flux_mag, the magnitude of vertically-integrated horizontal flux of ice.
PSB_flux(const StressBalance *m)
virtual std::shared_ptr< array::Array > compute_impl() const
Computes uflux and vflux, components of vertically-integrated horizontal flux of ice.
PSB_pressure(const StressBalance *m)
virtual std::shared_ptr< array::Array > compute_impl() const
Reports the pressure within the ice (3D).
virtual std::shared_ptr< array::Array > compute_impl() const
PSB_strain_rates(const StressBalance *m)
Reports the vertically-integrated (2D) principal strain rates.
PSB_strainheat(const StressBalance *m)
virtual std::shared_ptr< array::Array > compute_impl() const
Reports the volumetric strain heating (3D).
PSB_tauxz(const StressBalance *m)
virtual std::shared_ptr< array::Array > compute_impl() const
Reports the xz component of the shear stress within the ice (3D), according to the SIA formula.
virtual std::shared_ptr< array::Array > compute_impl() const
PSB_tauyz(const StressBalance *m)
Reports the yz component of the shear stress within the ice (3D), according to the SIA formula.
virtual std::shared_ptr< array::Array > compute_impl() const
PSB_uvel(const StressBalance *m)
Computes the x-component of the horizontal ice velocity.
virtual std::shared_ptr< array::Array > compute_impl() const
PSB_velbar_mag(const StressBalance *m)
Computes velbar_mag, the magnitude of vertically-integrated horizontal velocity of ice and masks out ...
virtual std::shared_ptr< array::Array > compute_impl() const
PSB_velbar(const StressBalance *m)
Computes the vertically-averaged ice velocity.
virtual std::shared_ptr< array::Array > compute_impl() const
PSB_velbase_mag(const StressBalance *m)
Computes velbase_mag, the magnitude of horizontal velocity of ice at base of ice and masks out ice-fr...
virtual std::shared_ptr< array::Array > compute_impl() const
PSB_velbase(const StressBalance *m)
Computes horizontal ice velocity at the base of ice.
PSB_velsurf_mag(const StressBalance *m)
virtual std::shared_ptr< array::Array > compute_impl() const
Computes velsurf_mag, the magnitude of horizontal ice velocity at the surface.
PSB_velsurf(const StressBalance *m)
virtual std::shared_ptr< array::Array > compute_impl() const
Computes velsurf, the horizontal velocity of ice at ice surface.
PSB_vonmises_stress(const StressBalance *m)
std::shared_ptr< array::Array > compute_impl() const
virtual std::shared_ptr< array::Array > compute_impl() const
PSB_vvel(const StressBalance *m)
Computes the y-component of the horizontal ice velocity.
PSB_wvel_rel(const StressBalance *m)
virtual std::shared_ptr< array::Array > compute_impl() const
Computes vertical velocity of ice, relative to the bed directly below.
virtual std::shared_ptr< array::Array > compute_impl() const
PSB_wvel(const StressBalance *m)
Computes vertical ice velocity (relative to the geoid).
virtual std::shared_ptr< array::Array > compute_impl() const
PSB_wvelbase(const StressBalance *m)
Computes wvelbase, the vertical velocity of ice at the base of ice.
virtual std::shared_ptr< array::Array > compute_impl() const
PSB_wvelsurf(const StressBalance *m)
Computes wvelsurf, the vertical velocity of ice at ice surface.
The class defining PISM's interface to the shallow stress balance code.
static void zero_above_ice(const array::Array3D &F, const array::Scalar &H, array::Array3D &result)