PISM, A Parallel Ice Sheet Model
stable v2.1.1 committed by Constantine Khrulev on 2024-12-04 13:36:58 -0900
|
A virtual class collecting methods common to ice and bedrock 3D fields. More...
#include <Array3D.hh>
Public Member Functions | |
Array3D (std::shared_ptr< const Grid > grid, const std::string &name, Kind ghostedp, const std::vector< double > &levels, unsigned int stencil_width=1) | |
virtual | ~Array3D ()=default |
std::shared_ptr< Array3D > | duplicate (Kind ghostedp=WITHOUT_GHOSTS) const |
void | regrid_impl (const File &file, io::Default default_value) |
Gets an Array from a file file , interpolating onto the current grid. More... | |
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... | |
void | copy_from (const Array3D &input) |
Public Member Functions inherited from pism::array::Array | |
virtual | ~Array () |
std::shared_ptr< const Grid > | 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 Array. Returns 0 if ghosts are not available. More... | |
const 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 Array. More... | |
void | add (double alpha, const Array &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 Array object. More... | |
void | define (const File &file, io::Type default_type) const |
Define variables corresponding to an Array 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, io::Default default_value) |
void | regrid (const File &file, io::Default default_value) |
virtual void | begin_access () const |
Checks if an Array is allocated and calls DAVecGetArray. More... | |
virtual void | end_access () const |
Checks if an Array 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 array::Scalar on processor 0. More... | |
void | get_from_proc0 (petsc::Vec &onp0) |
Gets a local Array2 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_interpolation_type (InterpolationType type) |
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 |
Public Member Functions inherited from pism::PetscAccessible | |
virtual | ~PetscAccessible ()=default |
Additional Inherited Members | |
Protected Member Functions inherited from pism::array::Array | |
Array (std::shared_ptr< const Grid > grid, const std::string &name, Kind 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 Array. More... | |
void | write_impl (const File &file) const |
Writes an Array to a NetCDF file. More... | |
void | checkCompatibility (const char *function, const Array &other) const |
Checks if two Arrays 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 |
Protected Attributes inherited from pism::array::Array | |
Impl * | m_impl |
void * | m_array |
A virtual class collecting methods common to ice and bedrock 3D fields.
Definition at line 33 of file Array3D.hh.