File diagnostic_factory.hpp
File List > common > src > diagnostics > diagnostic_factory.hpp
Go to the documentation of this file
#ifndef EMULATOR_DIAGNOSTIC_FACTORY_HPP
#define EMULATOR_DIAGNOSTIC_FACTORY_HPP
#include "derived_diagnostic.hpp"
#include <memory>
#include <mpi.h>
namespace emulator {
struct DiagnosticMetadata {
std::vector<double> area_weights;
MPI_Comm comm = MPI_COMM_WORLD;
int nlevs = 1;
};
std::unique_ptr<DerivedDiagnostic>
create_diagnostic(const std::string &diag_name,
const DiagnosticMetadata &metadata);
bool is_derived_diagnostic(const std::string &name);
std::string get_base_field_name(const std::string &diag_name);
} // namespace emulator
#endif // EMULATOR_DIAGNOSTIC_FACTORY_HPP