From 2bbb6d068cfa1cd608edaeb07c8f6924f803e591 Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Fri, 21 Oct 2016 19:42:23 -0600 Subject: [PATCH] Also add high-level interface to pybind11 interface --- include/Configuration.h | 2 +- src/Configuration.cpp | 2 +- src/pybind11_interface.cxx | 41 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 43 insertions(+), 2 deletions(-) diff --git a/include/Configuration.h b/include/Configuration.h index c829a403..a02740d8 100644 --- a/include/Configuration.h +++ b/include/Configuration.h @@ -66,7 +66,7 @@ configuration_keys config_string_to_key(const std::string &s); std::string config_key_description(configuration_keys keys); /// Return a string description of the configuration key (with the key passed as a string) -std::string config_key_description(std::string key); +std::string config_key_description(const std::string &key); /// A class that contains one entry in configuration /// Can be cast to yield the output value diff --git a/src/Configuration.cpp b/src/Configuration.cpp index b0b9b42f..badf578d 100644 --- a/src/Configuration.cpp +++ b/src/Configuration.cpp @@ -35,7 +35,7 @@ std::string config_key_description(configuration_keys keys) return ""; // will never get here, just to make compiler happy }; -std::string config_key_description(std::string key) +std::string config_key_description(const std::string &key) { /* ***MAGIC WARNING**!! * See http://stackoverflow.com/a/148610 diff --git a/src/pybind11_interface.cxx b/src/pybind11_interface.cxx index 8e8af10b..46126652 100644 --- a/src/pybind11_interface.cxx +++ b/src/pybind11_interface.cxx @@ -2,6 +2,10 @@ #include "CoolProp.h" #include "AbstractState.h" +#include "Configuration.h" +#include "HumidAirProp.h" +#include "DataStructures.h" +#include "Backends/Helmholtz/MixtureParameters.h" #include #include @@ -320,6 +324,43 @@ void init_CoolProp(py::module &m){ .def("d4alphar_dTau4", &AbstractState::d4alphar_dTau4); m.def("AbstractState", &factory); + + m.def("get_config_as_json_string", &get_config_as_json_string); + m.def("set_config_as_json_string", &set_config_as_json_string); + m.def("config_key_description", (std::string (*)(configuration_keys))&config_key_description); + m.def("config_key_description", (std::string (*)(const std::string &))&config_key_description); + m.def("set_config_string", &set_config_string); + m.def("set_config_double", &set_config_double); + m.def("set_config_bool", &set_config_bool); + m.def("get_config_string", &get_config_string); + m.def("get_config_double", &get_config_double); + m.def("get_config_bool", &get_config_bool); + m.def("get_parameter_information", &get_parameter_information); + m.def("get_parameter_index", &get_parameter_index); + m.def("get_phase_index", &get_phase_index); + m.def("is_trivial_parameter", &is_trivial_parameter); + m.def("generate_update_pair", &generate_update_pair); + m.def("Props1SI", &Props1SI); + m.def("PropsSI", &PropsSI); + m.def("PhaseSI", &PhaseSI); + m.def("PropsSImulti", &PropsSImulti); + m.def("get_global_param_string", &get_global_param_string); + m.def("get_debug_level", &get_debug_level); + m.def("set_debug_level", &set_debug_level); + m.def("get_fluid_param_string", &get_fluid_param_string); + m.def("extract_backend", &extract_backend); + m.def("extract_fractions", &extract_fractions); + m.def("set_reference_stateS", &set_reference_stateS); + m.def("set_reference_stateD", &set_reference_stateD); + m.def("saturation_ancillary", &saturation_ancillary); + m.def("add_fluids_as_JSON", &add_fluids_as_JSON); + m.def("HAPropsSI", &HumidAir::HAPropsSI); + m.def("HAProps", &HumidAir::HAProps); + m.def("HAProps_Aux", &HumidAir::HAProps_Aux); + m.def("cair_sat", &HumidAir::cair_sat); + m.def("get_mixture_binary_pair_data", &get_mixture_binary_pair_data); + m.def("set_mixture_binary_pair_data", &set_mixture_binary_pair_data); + m.def("apply_simple_mixing_rule", &apply_simple_mixing_rule); } #if defined(COOLPROP_PYBIND11_MODULE)