Loading [MathJax]/extensions/tex2jax.js
PISM, A Parallel Ice Sheet Model 2.2.2-d6b3a29ca committed by Constantine Khrulev on 2025-03-28
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Enumerations | Functions | Variables
pism::details Namespace Reference

Enumerations

enum  IceKind { ICE_COLD , ICE_TEMPERATE }
 

Functions

static bool non_decreasing (const std::vector< double > &a)
 Checks if a vector of doubles is not decreasing.
 
static std::shared_ptr< array::Array3Dallocate_layer_thickness (std::shared_ptr< const Grid > grid, const std::vector< double > &times)
 
static std::shared_ptr< array::Array3Dallocate_layer_thickness (const array::Array3D &input, double T_start, const std::vector< double > &requested_times)
 
static std::vector< doubleprune_deposition_times (const Time &time, const std::vector< double > &times)
 
static std::vector< doubledeposition_times (const File &input_file)
 
std::vector< doubledeposition_times (const Config &config, const Time &time)
 
static std::shared_ptr< array::Array3Dregrid_layer_thickness (std::shared_ptr< const Grid > grid, const File &input_file, int record)
 
static std::shared_ptr< array::Array3Dread_layer_thickness (std::shared_ptr< const Grid > grid, const File &input_file, int record)
 
static size_t n_active_layers (std::vector< double > deposition_times, double current_time)
 
static bool regridp (const Config &config)
 
static void renormalize (const array::Scalar &ice_thickness, array::Array3D &layer_thickness)
 
static double pp (double x)
 
static double np (double x)
 
static double flux_out (const stencils::Star< double > &u, double dx, double dy, double dt)
 
static double ice_volume (const array::Scalar &ice_thickness, const array::Array3D &ice_enthalpy, IceKind kind, double thickness_threshold)
 
static double base_area (const array::Scalar &ice_thickness, const array::Array3D &ice_enthalpy, IceKind kind, double thickness_threshold)
 
int first_label (const Grid &grid)
 
void relabel (array::Scalar &mask, const std::map< int, int > &labels)
 Assign new labels to elements of mask. Does not touch background grid cells.
 
std::map< int, intfinal_labels (array::Scalar1 &input, bool subdomain_is_not_empty, bool mark_isolated_patches)
 
static bool west_boundary (const Grid &grid, int i)
 West boundary of a sub-domain.
 
static bool east_boundary (const Grid &grid, int i)
 East boundary of a sub-domain.
 
static bool north_boundary (const Grid &grid, int j)
 North boundary of a sub-domain.
 
static bool south_boundary (const Grid &grid, int j)
 South boundary of a sub-domain.
 
static std::map< int, std::set< int > > detect_connections (array::Scalar1 &mask)
 
static std::vector< intpack_data (const std::map< int, std::set< int > > &graph)
 
static std::map< int, std::set< int > > unpack_data (const std::vector< int > &buffer)
 
static std::map< int, std::set< int > > assemble_graph (MPI_Comm comm, const std::map< int, std::set< int > > &subgraph)
 
static std::map< int, intresolve_labels (const std::map< int, std::set< int > > &graph, bool mark_isolated_patches)
 

Variables

static const char * layer_thickness_variable_name = "isochronal_layer_thickness"
 
static const char * deposition_time_variable_name = "deposition_time"
 
static const char * isochrone_depth_variable_name = "isochrone_depth"
 
static const char * times_parameter = "isochrones.deposition_times"
 
static const char * N_max_parameter = "isochrones.max_n_layers"
 
static const char * N_boot_parameter = "isochrones.bootstrapping.n_layers"
 

Detailed Description

References:

[Smolarkiewicz1989] P. K. Smolarkiewicz, “Comment on “A Positive Definite Advection Scheme Obtained by Nonlinear Renormalization of the Advective Fluxes”,” Monthly Weather Review, vol. 117, Art. no. 11, 1989.

[Zalesak1979] S. T. Zalesak, “Fully multidimensional flux-corrected transport algorithms for fluids,” Journal of Computational Physics, vol. 31, Art. no. 3, Jun. 1979.