Alsvinn  0.5.3
The fast FVM simulator with UQ support
PythonScript.hpp
Go to the documentation of this file.
1 #pragma once
2 #include "alsutils/config.hpp"
3 #include "alsfvm/io/Writer.hpp"
6 #include <boost/python.hpp>
8 
9 namespace alsfvm {
10 namespace io {
11 
19 class PythonScript : public io::Writer {
20 public:
21 
22 
23  PythonScript(const std::string& basename,
24  const Parameters& parameters,
25  alsutils::mpi::ConfigurationPtr mpiConfigration = nullptr
26 
27  );
34  virtual void write(const volume::Volume& conservedVariables,
35  const grid::Grid& grid,
36  const simulator::TimestepInformation& timestepInformation);
37 
38 
40  virtual void finalize(const grid::Grid& grid,
41  const simulator::TimestepInformation& timestepInformation) override;
42 
43 private:
44 
45  const std::string pythonCode;
46  const std::string pythonClass;
47 
48  python::PythonInterpreter& pythonInterpreterInstance;
49 
50  boost::python::object mainModule;
51  boost::python::object mainNamespace;
52 
53  boost::python::object classInstance;
54 
55  boost::python::dict datasetsConserved;
56 
57  std::vector<real*> rawPointersConserved;
58 
59  void makeDatasets(const volume::Volume& conservedVariables);
60 
61  void copyToDatasets( const volume::Volume& conservedVariables);
62 
63  boost::python::object makeGrid(const grid::Grid& grid);
64 
65  bool datasetsInitialized = false;
66 
67  alsutils::mpi::ConfigurationPtr mpiConfiguration;
68 
69 
70 };
71 } // namespace io
72 } // namespace alsfvm
virtual void write(const volume::Volume &conservedVariables, const grid::Grid &grid, const simulator::TimestepInformation &timestepInformation)
write writes the data to disk
Definition: PythonScript.cpp:73
Definition: PythonInterpreter.hpp:31
Definition: Grid.hpp:27
simulator::SimulatorParameters & parameters
Definition: CellComputerFactory.cpp:60
virtual void finalize(const grid::Grid &grid, const simulator::TimestepInformation &timestepInformation) override
This method should be called at the end of the simulation.
Definition: PythonScript.cpp:100
Holds general parameters based on a boost::property tree.
Definition: Parameters.hpp:24
The Volume class represents a volume (a collection of cells with values for each cell (eg...
Definition: Volume.hpp:30
alsfvm::shared_ptr< Configuration > ConfigurationPtr
Definition: Configuration.hpp:53
const grid::Grid & grid
Definition: NumericalFluxFactory.cpp:104
PythonScript(const std::string &basename, const Parameters &parameters, alsutils::mpi::ConfigurationPtr mpiConfigration=nullptr)
Definition: PythonScript.cpp:42
The Writer class is an abstract interface to represent output writers.
Definition: Writer.hpp:28
Various utility functions to implement the tecno flux.
Definition: types.hpp:30
Definition: PythonScript.hpp:19
Definition: TimestepInformation.hpp:22