PISM, A Parallel Ice Sheet Model
stable v2.0.6 committed by Constantine Khrulev on 2023-01-23 15:14:38 -0900
|
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...
#include <iceModelVec.hh>
Public Types | |
typedef std::shared_ptr< IceModelVec2Stag > | Ptr |
typedef std::shared_ptr< const IceModelVec2Stag > | ConstPtr |
![]() | |
typedef std::shared_ptr< IceModelVec3 > | Ptr |
typedef std::shared_ptr< const IceModelVec3 > | ConstPtr |
![]() | |
typedef std::shared_ptr< IceModelVec > | Ptr |
typedef std::shared_ptr< const IceModelVec > | ConstPtr |
typedef pism::AccessList | AccessList |
Public Member Functions | |
IceModelVec2Stag (IceGrid::ConstPtr grid, const std::string &name, IceModelVecKind ghostedp, unsigned int stencil_width=1) | |
stencils::Star< double > | star (int i, int j) const |
Returns the values at interfaces of the cell i,j using the staggered grid. More... | |
![]() | |
IceModelVec3 (IceGrid::ConstPtr grid, const std::string &name, IceModelVecKind ghostedp, const std::vector< double > &levels, unsigned int stencil_width=1) | |
IceModelVec3 (IceGrid::ConstPtr grid, const std::string &name, IceModelVecKind ghostedp, unsigned int dof, unsigned int stencil_width=1) | |
virtual | ~IceModelVec3 ()=default |
void | set_column (int i, int j, double c) |
Set all values of scalar quantity to given a single value in a particular column. More... | |
void | set_column (int i, int j, const double *input) |
double * | get_column (int i, int j) |
const double * | get_column (int i, int j) const |
double | interpolate (int i, int j, double z) const |
Return value of scalar quantity at level z (m) above base of ice (by linear interpolation). More... | |
double & | operator() (int i, int j, int k) |
const double & | operator() (int i, int j, int k) const |
void | copy_from (const IceModelVec3 &input) |
![]() | |
virtual | ~IceModelVec () |
IceGrid::ConstPtr | grid () const |
unsigned int | ndims () const |
Returns the number of spatial dimensions. More... | |
std::vector< int > | shape () const |
unsigned int | ndof () const |
Returns the number of degrees of freedom per grid point. More... | |
unsigned int | stencil_width () const |
Get the stencil width of the current IceModelVec. Returns 0 if ghosts are not available. More... | |
std::vector< double > | levels () const |
std::array< double, 2 > | range () const |
Result: min <- min(v[j]), max <- max(v[j]). More... | |
std::vector< double > | norm (int n) const |
Computes the norm of all the components of an IceModelVec. More... | |
void | add (double alpha, const IceModelVec &x) |
Result: v <- v + alpha * x. Calls VecAXPY. More... | |
void | shift (double alpha) |
Result: v[j] <- v[j] + alpha for all j. Calls VecShift. More... | |
void | scale (double alpha) |
Result: v <- v * alpha. Calls VecScale. More... | |
petsc::Vec & | vec () const |
std::shared_ptr< petsc::DM > | dm () const |
void | set_name (const std::string &name) |
Sets the variable name to name . More... | |
const std::string & | get_name () const |
Get the name of an IceModelVec object. More... | |
void | set_attrs (const std::string &pism_intent, const std::string &long_name, const std::string &units, const std::string &glaciological_units, const std::string &standard_name, unsigned int component) |
Sets NetCDF attributes of an IceModelVec object. More... | |
void | define (const File &file, IO_Type default_type=PISM_DOUBLE) const |
Define variables corresponding to an IceModelVec in a file opened using file . More... | |
void | read (const std::string &filename, unsigned int time) |
void | read (const File &file, unsigned int time) |
void | write (const std::string &filename) const |
void | write (const File &file) const |
void | regrid (const std::string &filename, RegriddingFlag flag, double default_value=0.0) |
void | regrid (const File &file, RegriddingFlag flag, double default_value=0.0) |
virtual void | begin_access () const |
Checks if an IceModelVec is allocated and calls DAVecGetArray. More... | |
virtual void | end_access () const |
Checks if an IceModelVec is allocated and calls DAVecRestoreArray. More... | |
void | update_ghosts () |
Updates ghost points. More... | |
std::shared_ptr< petsc::Vec > | allocate_proc0_copy () const |
void | put_on_proc0 (petsc::Vec &onp0) const |
Puts a local IceModelVec2S on processor 0. More... | |
void | get_from_proc0 (petsc::Vec &onp0) |
Gets a local IceModelVec2 from processor 0. More... | |
void | set (double c) |
Result: v[j] <- c for all j. More... | |
SpatialVariableMetadata & | metadata (unsigned int N=0) |
Returns a reference to the SpatialVariableMetadata object containing metadata for the compoment N. More... | |
const SpatialVariableMetadata & | metadata (unsigned int N=0) const |
int | state_counter () const |
Get the object state counter. More... | |
void | inc_state_counter () |
Increment the object state counter. More... | |
void | set_time_independent (bool flag) |
Set the time independent flag for all variables corresponding to this IceModelVec instance. More... | |
void | view (std::vector< std::shared_ptr< petsc::Viewer > > viewers) const |
View a 2D vector field using existing PETSc viewers. More... | |
void | dump (const char filename[]) const |
Dumps a variable to a file, overwriting this file's contents (for debugging). More... | |
uint64_t | fletcher64_serial () const |
uint64_t | fletcher64 () const |
std::string | checksum (bool serial) const |
void | print_checksum (const char *prefix="", bool serial=false) const |
![]() | |
virtual | ~PetscAccessible ()=default |
Additional Inherited Members | |
![]() | |
template<class T > | |
static T::Ptr | cast (IceModelVec::Ptr input) |
dynamic_pointer_cast wrapper that checks if the cast succeeded. More... | |
![]() | |
IceModelVec (IceGrid::ConstPtr grid, const std::string &name, IceModelVecKind ghostedp, size_t dof, size_t stencil_width, const std::vector< double > &zlevels) | |
void | set_begin_access_use_dof (bool flag) |
void | read_impl (const File &file, unsigned int time) |
Reads appropriate NetCDF variable(s) into an IceModelVec. More... | |
void | regrid_impl (const File &file, RegriddingFlag flag, double default_value=0.0) |
Gets an IceModelVec from a file file , interpolating onto the current grid. More... | |
void | write_impl (const File &file) const |
Writes an IceModelVec to a NetCDF file. More... | |
void | checkCompatibility (const char *function, const IceModelVec &other) const |
Checks if two IceModelVecs have compatible sizes, dimensions and numbers of degrees of freedom. More... | |
void | check_array_indices (int i, int j, unsigned int k) const |
Check array indices and warn if they are out of range. More... | |
void | copy_to_vec (std::shared_ptr< petsc::DM > destination_da, petsc::Vec &destination) const |
Copies v to a global vector 'destination'. Ghost points are discarded. More... | |
void | get_dof (std::shared_ptr< petsc::DM > da_result, petsc::Vec &result, unsigned int start, unsigned int count=1) const |
void | set_dof (std::shared_ptr< petsc::DM > da_source, petsc::Vec &source, unsigned int start, unsigned int count=1) |
void | put_on_proc0 (petsc::Vec ¶llel, petsc::Vec &onp0) const |
void | get_from_proc0 (petsc::Vec &onp0, petsc::Vec ¶llel) const |
![]() | |
Impl * | m_impl |
void * | m_array |
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).
Definition at line 449 of file iceModelVec.hh.