PISM, A Parallel Ice Sheet Model  stable v2.0.6 committed by Constantine Khrulev on 2023-01-23 15:14:38 -0900
Classes | Namespaces | Enumerations | Functions
iceModelVec.hh File Reference
#include <initializer_list>
#include <memory>
#include <cstdint>
#include <set>
#include <map>
#include <array>
#include "Vector2.hh"
#include "stencils.hh"
#include "pism/util/IceGrid.hh"
#include "pism/util/io/IO_Flags.hh"
#include "pism/pism_config.hh"
#include "pism/util/error_handling.hh"
#include "IceModelVec_inline.hh"

Go to the source code of this file.

Classes

class  pism::PetscAccessible
 
class  pism::AccessList
 Makes sure that we call begin_access() and end_access() for all accessed IceModelVecs. More...
 
class  pism::IceModelVec
 Abstract class for reading, writing, allocating, and accessing a DA-based PETSc Vec (2D and 3D fields) from within IceModel. More...
 
class  pism::IceModelVec2S
 
class  pism::IceModelVec2Int
 A simple class "hiding" the fact that the mask is stored as floating-point scalars (instead of integers). More...
 
class  pism::IceModelVec3
 A virtual class collecting methods common to ice and bedrock 3D fields. More...
 
class  pism::IceModelVec2Stag
 A class for storing and accessing internal staggered-grid 2D fields. Uses dof=2 storage. This class is identical to IceModelVec2V, except that components are not called u and v (to avoid confusion). More...
 

Namespaces

 pism
 
 pism::petsc
 Wrappers for some PETSc objects (these wrappers simplify memory management).
 

Enumerations

enum  pism::IceModelVecKind { pism::WITHOUT_GHOSTS =0 , pism::WITH_GHOSTS =1 }
 What "kind" of a vector to create: with or without ghosts. More...
 

Functions

template<class F , typename T >
pism::interpolate (const F &field, double x, double y)
 
double pism::diff_x (const IceModelVec2S &array, int i, int j)
 Returns the x-derivative at i,j approximated using centered finite differences. More...
 
double pism::diff_y (const IceModelVec2S &array, int i, int j)
 Returns the y-derivative at i,j approximated using centered finite differences. More...
 
double pism::diff_x_p (const IceModelVec2S &array, int i, int j)
 Returns the x-derivative at i,j approximated using centered finite differences. Respects grid periodicity and uses one-sided FD at grid edges if necessary. More...
 
double pism::diff_y_p (const IceModelVec2S &array, int i, int j)
 Returns the y-derivative at i,j approximated using centered finite differences. Respects grid periodicity and uses one-sided FD at grid edges if necessary. More...
 
double pism::sum (const IceModelVec2S &input)
 Sums up all the values in an IceModelVec2S object. Ignores ghosts. More...
 
double pism::min (const IceModelVec2S &input)
 Finds minimum over all the values in an IceModelVec2S object. Ignores ghosts. More...
 
double pism::max (const IceModelVec2S &input)
 Finds maximum over all the values in an IceModelVec2S object. Ignores ghosts. More...
 
double pism::absmax (const IceModelVec2S &input)
 Finds maximum over all the absolute values in an IceModelVec2S object. Ignores ghosts. More...
 
void pism::apply_mask (const IceModelVec2S &M, double fill, IceModelVec2S &result)
 Masks out all the areas where \( M \le 0 \) by setting them to fill. More...
 
void pism::compute_magnitude (const IceModelVec2S &v_x, const IceModelVec2S &v_y, IceModelVec2S &result)
 Sets an IceModelVec2 to the magnitude of a 2D vector field with components v_x and v_y. More...
 
void pism::compute_magnitude (const IceModelVec2V &input, IceModelVec2S &result)
 
std::shared_ptr< IceModelVec2S > pism::duplicate (const IceModelVec2S &source)
 
void pism::extract_surface (const IceModelVec3 &data, double z, IceModelVec2S &output)
 Copies a horizontal slice at level z of an IceModelVec3 into an IceModelVec2S gslice. More...
 
void pism::extract_surface (const IceModelVec3 &data, const IceModelVec2S &z, IceModelVec2S &output)
 Copies the values of an IceModelVec3 at the ice surface (specified by the level z) to an IceModelVec2S gsurf. More...
 
void pism::sum_columns (const IceModelVec3 &data, double A, double B, IceModelVec2S &output)
 
std::shared_ptr< IceModelVec3 > pism::duplicate (const IceModelVec3 &source)
 
std::array< double, 2 > pism::absmax (const IceModelVec2Stag &input)
 
void pism::convert_vec (petsc::Vec &v, std::shared_ptr< units::System > system, const std::string &spec1, const std::string &spec2)
 
void pism::staggered_to_regular (const IceModelVec2CellType &cell_type, const IceModelVec2Stag &input, bool include_floating_ice, IceModelVec2S &result)
 
void pism::staggered_to_regular (const IceModelVec2CellType &cell_type, const IceModelVec2Stag &input, bool include_floating_ice, IceModelVec2V &result)