diff --git a/homework4/starting_point/.idea/workspace.xml b/homework4/starting_point/.idea/workspace.xml
index 755d3ed..d536772 100644
--- a/homework4/starting_point/.idea/workspace.xml
+++ b/homework4/starting_point/.idea/workspace.xml
@@ -1,652 +1,651 @@
-
-
+
-
-
+
+
true
DEFINITION_ORDER
1545641844292
1545641844292
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
\ No newline at end of file
diff --git a/homework4/starting_point/CMakeLists.txt b/homework4/starting_point/CMakeLists.txt
index f9b61d4..e095efe 100644
--- a/homework4/starting_point/CMakeLists.txt
+++ b/homework4/starting_point/CMakeLists.txt
@@ -1,101 +1,102 @@
cmake_minimum_required (VERSION 3.1)
project (Particles)
cmake_policy(VERSION 3.3)
set(CMAKE_EXPORT_COMPILE_COMMANDS 1)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake")
################################################################
# FFTW
################################################################
find_package(FFTW)
################################################################
# libpart
################################################################
add_library(part SHARED
compute_boundary.cc
compute_verlet_integration.cc
particle.cc
planet.cc
compute_gravity.cc
csv_reader.cc
particles_factory_interface.cc
planets_factory.cc
compute_contact.cc
compute_kinetic_energy.cc
csv_writer.cc
system.cc
compute_energy.cc
compute_potential_energy.cc
ping_pong_ball.cc
material_point.cc
system_evolution.cc
ping_pong_balls_factory.cc
compute_interaction.cc
compute_temperature.cc
material_points_factory.cc
)
target_link_libraries(part ${FFTW_LIBRARIES})
add_executable(particles main.cc)
target_link_libraries(particles part)
################################################################
# Google test
################################################################
include(GoogleTest)
enable_testing()
find_package(GTest)
if (GTEST_FOUND)
include_directories(${GTEST_INCLUDE_DIRS})
add_executable(test_kepler test_kepler.cc)
add_executable(test_fft test_fft.cc)
target_link_libraries(test_kepler part ${GTEST_BOTH_LIBRARIES} pthread)
target_link_libraries(test_fft part ${GTEST_BOTH_LIBRARIES} ${FFTW_LIBRARIES} pthread)
gtest_discover_tests(test_kepler)
gtest_discover_tests(test_fft)
endif()
################################################################
# Doxygen
################################################################
find_package(Doxygen)
if (DOXYGEN_FOUND)
# to set other options, read: https://cmake.org/cmake/help/v3.9/module/FindDoxygen.html
doxygen_add_docs(
doxygen
${PROJECT_SOURCE_DIR}
COMMENT "Generate html pages"
)
add_custom_target(doc DEPENDS doxygen)
endif(DOXYGEN_FOUND)
+
################################################################
# Pypart
################################################################
option (WITH_PYTHON "Python wrapper" ON)
if(WITH_PYTHON)
find_package(pybind11 REQUIRED)
add_library(pypart MODULE py_part.cpp)
target_link_libraries(pypart PRIVATE part)
target_link_libraries(pypart PRIVATE pybind11::module)
set_target_properties(pypart PROPERTIES PREFIX "${PYTHON_MODULE_PREFIX}"
SUFFIX "${PYTHON_MODULE_EXTENSION}")
file(
COPY ${CMAKE_CURRENT_SOURCE_DIR}/main.py
DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/
)
endif(WITH_PYTHON)
\ No newline at end of file
diff --git a/homework4/starting_point/build-cmake-debug/CMakeFiles/pypart.dir/py_part.cpp.o b/homework4/starting_point/build-cmake-debug/CMakeFiles/pypart.dir/py_part.cpp.o
index 037c940..9072145 100644
Binary files a/homework4/starting_point/build-cmake-debug/CMakeFiles/pypart.dir/py_part.cpp.o and b/homework4/starting_point/build-cmake-debug/CMakeFiles/pypart.dir/py_part.cpp.o differ
diff --git a/homework4/starting_point/build-cmake-debug/pypart.cpython-36m-darwin.so b/homework4/starting_point/build-cmake-debug/pypart.cpython-36m-darwin.so
index 223a7eb..13997c4 100755
Binary files a/homework4/starting_point/build-cmake-debug/pypart.cpython-36m-darwin.so and b/homework4/starting_point/build-cmake-debug/pypart.cpython-36m-darwin.so differ
diff --git a/homework4/starting_point/py_part.cpp b/homework4/starting_point/py_part.cpp
index 90aa282..996f56f 100644
--- a/homework4/starting_point/py_part.cpp
+++ b/homework4/starting_point/py_part.cpp
@@ -1,66 +1,70 @@
#include
#include
#include
#include "planets_factory.hh"
#include "ping_pong_balls_factory.hh"
#include "material_points_factory.hh"
#include "csv_writer.hh"
#include "compute_temperature.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);
py::class_(m, "System");
//Compute and ComputeTemperature wrappers are not implemented;
//only name of the class ComputeTemperature for python script's header
+
+
+ py::class_(m, "Compute");
+
py::class_(m, "ComputeTemperature")
.def_property("conductivity", &ComputeTemperature::getConductivity, &ComputeTemperature::setConductivity)
.def_property("capacity", &ComputeTemperature::getCapacity, &ComputeTemperature::setCapacity)
.def_property("desnsity", &ComputeTemperature::getDensity, &ComputeTemperature::setDensity)
.def_property("L", &ComputeTemperature::getL, &ComputeTemperature::setL)
.def_property("deltat", &ComputeTemperature::getDeltat, &ComputeTemperature::setDeltat);
}