diff --git a/homework4/starting_point/.idea/workspace.xml b/homework4/starting_point/.idea/workspace.xml
index afeae20..0a57bb3 100644
--- a/homework4/starting_point/.idea/workspace.xml
+++ b/homework4/starting_point/.idea/workspace.xml
@@ -1,448 +1,448 @@
-
+
-
+
-
-
+
+
true
DEFINITION_ORDER
1545641844292
1545641844292
-
+
-
-
+
+
\ No newline at end of file
diff --git a/homework4/starting_point/main.py b/homework4/starting_point/main.py
index eeb1550..4fba865 100644
--- a/homework4/starting_point/main.py
+++ b/homework4/starting_point/main.py
@@ -1,63 +1,62 @@
#!/bin/env python3
import sys
import argparse
from pypart import MaterialPointsFactory, ParticlesFactoryInterface
from pypart import PingPongBallsFactory, PlanetsFactory
from pypart import CsvWriter
from pypart import ComputeTemperature
-from pypart import SystemEvolution
# help(pypart)
parser = argparse.ArgumentParser(description='Particles code')
parser.add_argument('nsteps', type=int,
help='specify the number of steps to perform')
parser.add_argument('freq', type=int,
help='specify the frequency for dumps')
parser.add_argument('filename', type=str,
help='start/input filename')
parser.add_argument('particle_type', type=str,
help='particle type')
parser.add_argument('timestep', type=float,
help='timestep')
args = parser.parse_args()
nsteps = args.nsteps
freq = args.freq
filename = args.filename
particle_type = args.particle_type
timestep = args.timestep
if particle_type == "planet":
PlanetsFactory.getInstance()
elif particle_type == "ping_pong":
PingPongBallsFactory.getInstance()
elif particle_type == "material_point":
MaterialPointsFactory.getInstance()
else:
print("Unknown particle type: ", particle_type)
sys.exit(-1)
factory = ParticlesFactoryInterface.getInstance()
if particle_type == "material_point":
def createComputes(self, timestep):
compute_temp = ComputeTemperature()
compute_temp.conductivity = 1
compute_temp.L = 2
compute_temp.capacity = 1
compute_temp.density = 1
compute_temp.deltat = 1
self.system_evolution.addCompute(compute_temp)
evol = factory.createSimulation(filename, timestep, createComputes)
else:
evol = factory.createSimulation(filename, timestep)
dumper = CsvWriter("init.csv")
dumper.write(evol.getSystem())
evol.setNSteps(nsteps)
evol.setDumpFreq(freq)
evol.evolve()
diff --git a/homework4/starting_point/py_part.cpp b/homework4/starting_point/py_part.cpp
index 4576465..d818973 100644
--- a/homework4/starting_point/py_part.cpp
+++ b/homework4/starting_point/py_part.cpp
@@ -1,54 +1,56 @@
#include
#include
#include
-#include "particles_factory_interface.hh"
#include "planets_factory.hh"
#include "ping_pong_balls_factory.hh"
#include "material_points_factory.hh"
+#include "csv_writer.hh"
namespace py = pybind11;
PYBIND11_MODULE(pypart, m) {
m.doc() = "pybind particle plugin"; // optional docstring
// wrap the class
py::class_(m, "ParticlesFactoryInterface")
.def("getInstance", &ParticlesFactoryInterface::getInstance,
py::return_value_policy::reference);
py::class_(m, "PingPongBallsFactory")
.def("getInstance", &PingPongBallsFactory::getInstance,
py::return_value_policy::reference)
.def("createSimulation", &PingPongBallsFactory::createSimulation,
py::return_value_policy::reference);
py::class_(m, "PlanetsFactory")
.def("getInstance", &PlanetsFactory::getInstance,
py::return_value_policy::reference)
.def("createSimulation", &PlanetsFactory::createSimulation,
py::return_value_policy::reference);
py::class_(m, "MaterialPointsFactory")
.def("getInstance", &MaterialPointsFactory::getInstance,
py::return_value_policy::reference)
.def("createSimulation",
(SystemEvolution & (MaterialPointsFactory::*)(const std::string &, Real))
&MaterialPointsFactory::createSimulation, py::return_value_policy::reference
)
.def("createSimulation", py::overload_cast
(&MaterialPointsFactory::createSimulation),
py::return_value_policy::reference);
py::class_(m, "SystemEvolution")
.def("setNSteps", &SystemEvolution::setNSteps)
.def("setDumpFreq", &SystemEvolution::setDumpFreq)
.def("evolve", &SystemEvolution::evolve)
.def("getSystem", &SystemEvolution::getSystem,
py::return_value_policy::reference);
py::class_(m, "CsvWriter")
.def(py::init())
- .def("write", &CsvWriter::write)
+ .def("write", &CsvWriter::write);
+
+ py::class_(m, "System");
}