PISM, A Parallel Ice Sheet Model 2.3.0-79cae578d committed by Constantine Khrulev on 2026-03-22
Loading...
Searching...
No Matches
Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
pism::YacOutputWriter Class Reference

#include <YacOutputWriter.hh>

+ Inheritance diagram for pism::YacOutputWriter:

Public Member Functions

 YacOutputWriter (MPI_Comm comm, const Config &config)
 
 ~YacOutputWriter ()
 
- Public Member Functions inherited from pism::OutputWriter
 OutputWriter (MPI_Comm comm, const Config &config)
 
virtual ~OutputWriter ()
 
void initialize (const std::set< VariableMetadata > &array_variables, bool relaxed_mode=false)
 
void define_variable (const std::string &file_name, const VariableMetadata &variable)
 
void set_global_attributes (const std::string &file_name, const std::map< std::string, std::string > &strings, const std::map< std::string, std::vector< double > > &numbers)
 
void append_history (const std::string &file_name, const std::string &text)
 
void append_time (const std::string &file_name, double time_seconds)
 
void write_array (const std::string &file_name, const std::string &variable_name, const std::vector< unsigned int > &start, const std::vector< unsigned int > &count, const std::vector< double > &input)
 
void write_text (const std::string &file_name, const std::string &variable_name, const std::vector< unsigned int > &start, const std::vector< unsigned int > &count, const std::string &input)
 
void write_distributed_array (const std::string &file_name, const std::string &variable_name, const double *input)
 
void write_timeseries (const std::string &file_name, const std::string &variable_name, const std::vector< unsigned int > &start, const std::vector< unsigned int > &count, const std::vector< double > &input)
 
void append (const std::string &file_name)
 
void sync (const std::string &file_name)
 
void close (const std::string &file_name)
 
unsigned int time_dimension_length (const std::string &file_name)
 
double last_time_value (const std::string &file_name)
 
MPI_Comm comm () const
 
bool is_async () const
 

Private Types

enum  TagTreatment : int { CREATE_NEW_TAG , GET_EXISTING_TAG }
 Tags for MPI messages sending non-gridded variable data. More...
 

Private Member Functions

int tag (const std::string &variable_name, TagTreatment flag=GET_EXISTING_TAG)
 
void waitall ()
 Call MPI_Waitall() to ensure that all buffers can be freed.
 
void create_intercomm ()
 
void define_yac_grid (const VariableMetadata &variable)
 
void define_yac_field (const VariableMetadata &variable)
 
void end_yac_definitions ()
 
void send_action (int action_id, const nlohmann::json &metadata)
 
void initialize_impl (const std::set< VariableMetadata > &array_variables)
 
void define_dimension_impl (const std::string &file_name, const std::string &name, unsigned int length)
 
void define_variable_impl (const std::string &file_name, const std::string &variable_name, const std::vector< std::string > &dims, io::Type type, const VariableAttributes &attributes)
 
void set_global_attributes_impl (const std::string &file_name, const std::map< std::string, std::string > &strings, const std::map< std::string, std::vector< double > > &numbers)
 
void append_time_impl (const std::string &file_name, double time_seconds)
 
void append_history_impl (const std::string &file_name, const std::string &text)
 
unsigned int time_dimension_length_impl (const std::string &file_name)
 
double last_time_value_impl (const std::string &file_name)
 
void write_array_impl (const std::string &file_name, const std::string &variable_name, const std::vector< unsigned int > &start, const std::vector< unsigned int > &count, const double *data)
 
void write_text_impl (const std::string &file_name, const std::string &variable_name, const std::vector< unsigned int > &start, const std::vector< unsigned int > &count, const std::string &input)
 
void write_distributed_array_impl (const std::string &file_name, const std::string &variable_name, const double *data)
 
void append_impl (const std::string &file_name)
 
void sync_impl (const std::string &file_name)
 
void close_impl (const std::string &file_name)
 

Private Attributes

MPI_Comm m_intercomm
 
bool m_leader
 True if the current MPI process is responsible for sending non-gridded data.
 
std::map< std::string, intm_time_length
 Length of the time dimension in a file.
 
std::map< std::string, doublem_last_time
 last time value in an output file
 
std::map< std::string, std::map< std::string, bool > > m_defined_variable
 
std::map< std::string, std::map< std::string, bool > > m_defined_dimension
 
std::map< std::string, intm_point_set_id
 YAC point set ID corresponding to a grid name.
 
std::map< std::string, intm_field_ids
 YAC field ID corresponding to a particular variable (by name)
 
std::vector< std::string > m_text_buffers
 buffers used to send text (write_text_impl())
 
std::vector< double * > m_buffers
 buffers used to send arrays of double
 
int m_field_buffer_size = 0
 
doublem_field_buffer = nullptr
 
std::map< std::string, intm_variable_tags
 
std::vector< MPI_Request > m_mpi_requests
 

Additional Inherited Members

- Protected Member Functions inherited from pism::OutputWriter
void define_dimension (const std::string &file_name, const std::string &dimension_name, unsigned int length)
 
void define_variable (const std::string &file_name, const std::string &variable_name, const std::vector< std::string > &dims, io::Type type, const VariableAttributes &attributes)
 
void add_variable (const VariableMetadata &metadata)
 
const VariableMetadatavariable_info (const std::string &variable_name) const
 
bool variable_info_is_available (const std::string &variable_name) const
 
boolalready_written (const std::string &file_name, const std::string &variable_name, bool time_dependent)
 
const std::string & time_name () const
 
std::vector< std::string > define_dimensions (const std::string &file_name, const VariableMetadata &variable)
 
void write_dimensions (const std::string &file_name, const VariableMetadata &variable)
 
const std::string & experiment_id () const
 
void set_is_async (bool flag)
 

Detailed Description

Synchronous implementation of OutputWriter.

Definition at line 60 of file YacOutputWriter.hh.


The documentation for this class was generated from the following files: