PISM, A Parallel Ice Sheet Model
stable v2.1-1-g6902d5502 committed by Ed Bueler on 2023-12-20 08:38:27 -0800
|
#include <BlatterTestXY.hh>
Public Member Functions | |
BlatterTestXY (std::shared_ptr< const Grid > grid, int Mz, int coarsening_factor) | |
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... | |
Protected Member Functions | |
bool | marine_boundary (int face, const int *node_type, const double *ice_bottom, const double *sea_level) |
bool | dirichlet_node (const DMDALocalInfo &info, const fem::Element3::GlobalIndex &I) |
Vector2d | u_bc (double x, double y, double z) const |
void | residual_source_term (const fem::Q1Element3 &element, const double *surface, const double *bed, Vector2d *residual) |
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_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 | residual_surface (const fem::Q1Element3 &element, const fem::Q1Element3Face &face, Vector2d *residual) |
virtual 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) |
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) |
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::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) |
Static Protected Attributes inherited from pism::stressbalance::Blatter | |
static const int | m_Nq = 100 |
static const int | m_n_work = 9 |
Implements Dirichlet BC and the source term for a verification test using the following exact solution:
u = exp(x) * sin(2 * pi * y) v = exp(x) * cos(2 * pi * y)
Domain: [0, 1] * [0, 1] * [0, 1].
Ice thickness is equal to 1 everywhere; bed elevation is 0 everywhere.
Dirichlet BC are imposed at all the nodes along the lateral boundary.
Natural boundary conditions are used on the top and bottom boundaries.
Note: KSP iterations seem to stall when the default preconditioner is used. Use "-pc_type gamg" instead.
Definition at line 46 of file BlatterTestXY.hh.