PISM, A Parallel Ice Sheet Model  stable v2.1-1-g6902d5502 committed by Ed Bueler on 2023-12-20 08:38:27 -0800
Public Member Functions | Private Member Functions | Private Attributes | List of all members
pism::stressbalance::BlatterTestvanderVeen Class Reference

#include <BlatterTestvanderVeen.hh>

+ Inheritance diagram for pism::stressbalance::BlatterTestvanderVeen:

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::Array3Dvelocity_u_sigma () const
 
std::shared_ptr< array::Array3Dvelocity_v_sigma () const
 
- Public Member Functions inherited from pism::stressbalance::ShallowStressBalance
 ShallowStressBalance (std::shared_ptr< const Grid > g)
 
virtual ~ShallowStressBalance ()
 
void init ()
 
const array::Vector1velocity () const
 Get the thickness-advective 2D velocity. More...
 
const array::Scalarbasal_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::FlowLawflow_law () const
 
EnthalpyConverter::Ptr enthalpy_converter () const
 
const IceBasalResistancePlasticLawsliding_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 Gridgrid () const
 
const Timetime () const
 
const Profilingprofiling () 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::Array3Dm_u_sigma
 
std::shared_ptr< array::Array3Dm_v_sigma
 
petsc::DM m_da
 
petsc::Vec m_x
 
petsc::Vec m_x_old
 
petsc::SNES m_snes
 
array::Array2D< Parametersm_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
IceBasalResistancePlasticLawm_basal_sliding_law
 
std::shared_ptr< rheology::FlowLawm_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 Gridm_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
 

Detailed Description

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.


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