19#ifndef PISM_COMPONENT_H
20#define PISM_COMPONENT_H
24#include "pism/util/VariableMetadata.hh"
25#include "pism/util/Units.hh"
26#include "pism/util/Diagnostic.hh"
39template<
typename T>
class Array2D;
127 std::shared_ptr<const Grid>
grid()
const;
135 std::set<VariableMetadata>
state()
const;
143 virtual std::set<VariableMetadata>
state_impl()
const;
158 const std::shared_ptr<const Grid>
m_grid;
164 std::shared_ptr<const Logger>
m_log;
const units::System::Ptr m_sys
unit system used by this component
const Time & time() const
std::shared_ptr< const Grid > grid() const
std::shared_ptr< const Config > m_config
configuration database used by this component
RegriddingFlag
This flag determines whether a variable is read from the -regrid_file file even if it is not listed a...
@ REGRID_WITHOUT_REGRID_VARS
@ NO_REGRID_WITHOUT_REGRID_VARS
virtual DiagnosticList spatial_diagnostics_impl() const
TSDiagnosticList scalar_diagnostics() const
virtual ~Component()=default
const std::shared_ptr< const Grid > m_grid
grid used by this component
void regrid(const std::string &module_name, array::Array &variable, RegriddingFlag flag=NO_REGRID_WITHOUT_REGRID_VARS)
DiagnosticList spatial_diagnostics() const
virtual TSDiagnosticList scalar_diagnostics_impl() const
virtual void write_state_impl(const OutputFile &output) const
The default (empty implementation).
const Profiling & profiling() const
std::set< VariableMetadata > state() const
virtual MaxTimestep max_timestep_impl(double t) const
MaxTimestep max_timestep(double t) const
Reports the maximum time-step the model can take at time t.
void write_state(const OutputFile &output) const
Write model state variables to an output file.
std::shared_ptr< const Logger > m_log
logger (for easy access)
virtual std::set< VariableMetadata > state_impl() const
A class defining a common interface for most PISM sub-models.
Combines the max. time step with the flag indicating if a restriction is active. Makes is possible to...
Abstract class for reading, writing, allocating, and accessing a DA-based PETSc Vec (2D and 3D fields...
std::shared_ptr< System > Ptr
connected_components::details::PISMArray Array
std::map< std::string, TSDiagnostic::Ptr > TSDiagnosticList
std::map< std::string, Diagnostic::Ptr > DiagnosticList
InputOptions process_input_options(MPI_Comm com, std::shared_ptr< const Config > config)