PISM, A Parallel Ice Sheet Model
stable v2.1-1-g6902d5502 committed by Ed Bueler on 2023-12-20 08:38:27 -0800
|
#include <BlatterTestvanderVeen.hh>
Public Member Functions | |
BlatterTestvanderVeen (std::shared_ptr< const Grid > grid, int Mz, int coarsening_factor) | |
Vector2d | u_exact (double x) const |
double | H_exact (double x) const |
double | b_exact (double x) const |
double | beta_exact (double x) const |
Public Member Functions inherited from pism::stressbalance::Blatter | |
Blatter (std::shared_ptr< const Grid > grid, int Mz, int coarsening_factor) | |
virtual | ~Blatter ()=default |
void | update (const Inputs &inputs, bool) |
std::shared_ptr< array::Array3D > | velocity_u_sigma () const |
std::shared_ptr< array::Array3D > | velocity_v_sigma () const |
Public Member Functions inherited from pism::stressbalance::ShallowStressBalance | |
ShallowStressBalance (std::shared_ptr< const Grid > g) | |
virtual | ~ShallowStressBalance () |
void | init () |
const array::Vector1 & | velocity () const |
Get the thickness-advective 2D velocity. More... | |
const array::Scalar & | basal_frictional_heating () |
Get the basal frictional heating (for the adaptive energy time-stepping). More... | |
void | compute_basal_frictional_heating (const array::Vector &velocity, const array::Scalar &tauc, const array::CellType &mask, array::Scalar &result) const |
Compute the basal frictional heating. More... | |
virtual std::string | stdout_report () const |
Produce a report string for the standard output. More... | |
std::shared_ptr< const rheology::FlowLaw > | flow_law () const |
EnthalpyConverter::Ptr | enthalpy_converter () const |
const IceBasalResistancePlasticLaw * | sliding_law () const |
double | flow_enhancement_factor () const |
Public Member Functions inherited from pism::Component | |
Component (std::shared_ptr< const Grid > grid) | |
virtual | ~Component ()=default |
DiagnosticList | diagnostics () const |
TSDiagnosticList | ts_diagnostics () const |
std::shared_ptr< const Grid > | grid () const |
const Time & | time () const |
const Profiling & | profiling () 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... | |
Private Member Functions | |
bool | dirichlet_node (const DMDALocalInfo &info, const fem::Element3::GlobalIndex &I) |
bool | marine_boundary (int face, const int *node_type, const double *ice_bottom, const double *sea_level) |
Vector2d | u_bc (double x, double y, double z) const |
void | residual_lateral (const fem::Q1Element3 &element, const fem::Q1Element3Face &face, const double *surface_nodal, const double *z_nodal, const double *sl_nodal, Vector2d *residual) |
void | residual_surface (const fem::Q1Element3 &element, const fem::Q1Element3Face &face, Vector2d *residual) |
Private Attributes | |
double | m_B |
double | m_H0 |
double | m_V0 |
double | m_alpha |
double | m_rho_ice |
double | m_g |
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... | |
Protected Member Functions inherited from pism::stressbalance::Blatter | |
void | init_impl () |
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... | |
void | compute_node_type (double min_thickness) |
virtual void | nodal_parameter_values (const fem::Q1Element3 &element, Parameters **P, int i, int j, int *node_type, double *bottom, double *thickness, double *surface, double *sea_level) const |
void | compute_jacobian (DMDALocalInfo *info, const Vector2d ***x, Mat A, Mat J) |
void | jacobian_dirichlet (const DMDALocalInfo &info, Parameters **P, Mat J) |
virtual void | jacobian_f (const fem::Q1Element3 &element, const Vector2d *u_nodal, const double *B_nodal, double K[2 *fem::q13d::n_chi][2 *fem::q13d::n_chi]) |
virtual void | jacobian_basal (const fem::Q1Element3Face &face, const double *tauc_nodal, const double *f_nodal, const Vector2d *u_nodal, double K[2 *fem::q13d::n_chi][2 *fem::q13d::n_chi]) |
void | compute_residual (DMDALocalInfo *info, const Vector2d ***X, Vector2d ***R) |
void | residual_dirichlet (const DMDALocalInfo &info, Parameters **P, const Vector2d ***x, Vector2d ***R) |
virtual void | residual_f (const fem::Q1Element3 &element, const Vector2d *u_nodal, const double *B_nodal, Vector2d *residual) |
virtual void | residual_source_term (const fem::Q1Element3 &element, const double *surface, const double *bed, Vector2d *residual) |
virtual void | residual_basal (const fem::Q1Element3 &element, const fem::Q1Element3Face &face, const double *tauc_nodal, const double *f_nodal, const Vector2d *u_nodal, Vector2d *residual) |
virtual void | init_2d_parameters (const Inputs &inputs) |
void | init_ice_hardness (const Inputs &inputs, const petsc::DM &da) |
PetscErrorCode | setup (DM pism_da, grid::Periodicity p, int Mz, int coarsening_factor, const std::string &prefix) |
void | set_initial_guess (const array::Array3D &u_sigma, const array::Array3D &v_sigma) |
void | copy_solution () |
void | compute_averaged_velocity (array::Vector &result) |
void | get_basal_velocity (array::Vector &result) |
void | report_mesh_info () |
SolutionInfo | solve () |
SolutionInfo | parameter_continuation () |
Protected Member Functions inherited from pism::stressbalance::ShallowStressBalance | |
virtual DiagnosticList | diagnostics_impl () const |
Protected Member Functions inherited from pism::Component | |
virtual MaxTimestep | max_timestep_impl (double t) const |
virtual TSDiagnosticList | ts_diagnostics_impl () const |
void | regrid (const std::string &module_name, array::Array &variable, RegriddingFlag flag=NO_REGRID_WITHOUT_REGRID_VARS) |
Static Protected Member Functions inherited from pism::stressbalance::Blatter | |
static bool | exterior_element (const int *node_type) |
static bool | grounding_line (const double *F) |
static bool | partially_submerged_face (int face, const double *z, const double *sea_level) |
static PetscErrorCode | jacobian_callback (DMDALocalInfo *info, const Vector2d ***x, Mat A, Mat J, Blatter *solver) |
static PetscErrorCode | function_callback (DMDALocalInfo *info, const Vector2d ***x, Vector2d ***f, Blatter *solver) |
Protected Attributes inherited from pism::stressbalance::Blatter | |
std::shared_ptr< array::Array3D > | m_u_sigma |
std::shared_ptr< array::Array3D > | m_v_sigma |
petsc::DM | m_da |
petsc::Vec | m_x |
petsc::Vec | m_x_old |
petsc::SNES | m_snes |
array::Array2D< Parameters > | m_parameters |
double | m_scaling |
double | m_rho_ice_g |
double | m_rho_ocean_g |
double | m_glen_exponent |
bool | m_eta_transform |
double | m_viscosity_eps |
double | m_E_viscosity |
bool | m_ksp_use_ew |
double | m_work [m_n_work][m_Nq] |
Vector2d | m_work2 [m_n_work][m_Nq] |
fem::Q1Element3Face | m_face4 |
fem::Q1Element3Face | m_face100 |
Protected Attributes inherited from pism::stressbalance::ShallowStressBalance | |
IceBasalResistancePlasticLaw * | m_basal_sliding_law |
std::shared_ptr< rheology::FlowLaw > | m_flow_law |
EnthalpyConverter::Ptr | m_EC |
array::Vector2 | m_velocity |
array::Scalar | m_basal_frictional_heating |
double | m_e_factor |
flow enhancement factor More... | |
Protected Attributes inherited from pism::Component | |
const std::shared_ptr< const Grid > | 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... | |
Static Protected Attributes inherited from pism::stressbalance::Blatter | |
static const int | m_Nq = 100 |
static const int | m_n_work = 9 |
Implements the Dirichlet BC at the inflow boundary and the stress BC at the calving front boundary for the X-Z van der Veen shelf setup.
The basal drag coefficient beta is x-dependent but its values are passed in using the basal yield stress input field.
Definition at line 35 of file BlatterTestvanderVeen.hh.