Skip to content

File derived_diagnostic.hpp

File List > common > src > diagnostics > derived_diagnostic.hpp

Go to the documentation of this file

#ifndef EMULATOR_DERIVED_DIAGNOSTIC_HPP
#define EMULATOR_DERIVED_DIAGNOSTIC_HPP

#include "../emulator_output_stream.hpp"
#include <memory>
#include <string>
#include <vector>

namespace emulator {

class DerivedDiagnostic {
public:
  virtual ~DerivedDiagnostic() = default;

  virtual std::string name() const = 0;

  virtual std::string source_field() const = 0;

  virtual void compute(const FieldDataProvider &fields,
                       std::vector<double> &output) = 0;

  virtual int output_size(int ncols, int nlevs) const = 0;
};

} // namespace emulator

#endif // EMULATOR_DERIVED_DIAGNOSTIC_HPP