feat(eos): EOS now uses composition module
EOS code updated to make use of composition module. This is part of the larger change to change all composition handling to use the composition module. Note that the current implimentation is a bit hacky since it simply copies back and forth to the alredy used HELMEOSInput and HELMEOSOutput structs. In furture this can be more tightly connected to avoid extra copies.
This commit is contained in:
@@ -34,7 +34,7 @@ void register_eos_bindings(pybind11::module &eos_submodule) {
|
||||
}, py::return_value_policy::reference_internal, // IMPORTANT: Keep this policy!
|
||||
"Get the EOS table data.")
|
||||
.def("__repr__", [](const serif::eos::EOSio &eos) {
|
||||
return "<EOSio(filename='" + eos.getFilename() + "', format='" + eos.getFormat() + "')>";
|
||||
return "<EOSio(filename='" + eos.getFilename() + "', format='" + eos.getFormatName() + "')>";
|
||||
});
|
||||
|
||||
py::class_<serif::eos::EOSTable>(eos_submodule, "EOSTable");
|
||||
@@ -88,64 +88,64 @@ void register_eos_bindings(pybind11::module &eos_submodule) {
|
||||
);
|
||||
}, py::return_value_policy::reference_internal); // Keep parent 'table' alive
|
||||
|
||||
py::class_<serif::eos::helmholtz::EOS>(eos_submodule, "EOS")
|
||||
py::class_<serif::eos::helmholtz::HELMEOSOutput>(eos_submodule, "EOS")
|
||||
.def(py::init<>())
|
||||
.def_readonly("ye", &serif::eos::helmholtz::EOS::ye)
|
||||
.def_readonly("etaele", &serif::eos::helmholtz::EOS::etaele)
|
||||
.def_readonly("xnefer", &serif::eos::helmholtz::EOS::xnefer)
|
||||
.def_readonly("ye", &serif::eos::helmholtz::HELMEOSOutput::ye)
|
||||
.def_readonly("etaele", &serif::eos::helmholtz::HELMEOSOutput::etaele)
|
||||
.def_readonly("xnefer", &serif::eos::helmholtz::HELMEOSOutput::xnefer)
|
||||
|
||||
.def_readonly("ptot", &serif::eos::helmholtz::EOS::ptot)
|
||||
.def_readonly("pgas", &serif::eos::helmholtz::EOS::pgas)
|
||||
.def_readonly("prad", &serif::eos::helmholtz::EOS::prad)
|
||||
.def_readonly("ptot", &serif::eos::helmholtz::HELMEOSOutput::ptot)
|
||||
.def_readonly("pgas", &serif::eos::helmholtz::HELMEOSOutput::pgas)
|
||||
.def_readonly("prad", &serif::eos::helmholtz::HELMEOSOutput::prad)
|
||||
|
||||
.def_readonly("etot", &serif::eos::helmholtz::EOS::etot)
|
||||
.def_readonly("egas", &serif::eos::helmholtz::EOS::egas)
|
||||
.def_readonly("erad", &serif::eos::helmholtz::EOS::erad)
|
||||
.def_readonly("etot", &serif::eos::helmholtz::HELMEOSOutput::etot)
|
||||
.def_readonly("egas", &serif::eos::helmholtz::HELMEOSOutput::egas)
|
||||
.def_readonly("erad", &serif::eos::helmholtz::HELMEOSOutput::erad)
|
||||
|
||||
.def_readonly("stot", &serif::eos::helmholtz::EOS::stot)
|
||||
.def_readonly("sgas", &serif::eos::helmholtz::EOS::sgas)
|
||||
.def_readonly("srad", &serif::eos::helmholtz::EOS::srad)
|
||||
.def_readonly("stot", &serif::eos::helmholtz::HELMEOSOutput::stot)
|
||||
.def_readonly("sgas", &serif::eos::helmholtz::HELMEOSOutput::sgas)
|
||||
.def_readonly("srad", &serif::eos::helmholtz::HELMEOSOutput::srad)
|
||||
|
||||
.def_readonly("dpresdd", &serif::eos::helmholtz::EOS::dpresdd)
|
||||
.def_readonly("dpresdt", &serif::eos::helmholtz::EOS::dpresdt)
|
||||
.def_readonly("dpresda", &serif::eos::helmholtz::EOS::dpresda)
|
||||
.def_readonly("dpresdz", &serif::eos::helmholtz::EOS::dpresdz)
|
||||
// TODO: Finish adding all the derivatives to the bound class
|
||||
.def_readonly("dentrdd", &serif::eos::helmholtz::EOS::dentrdd)
|
||||
.def_readonly("dentrdt", &serif::eos::helmholtz::EOS::dentrdt)
|
||||
.def_readonly("dentrda", &serif::eos::helmholtz::EOS::dentrda)
|
||||
.def_readonly("dentrdz", &serif::eos::helmholtz::EOS::dentrdz)
|
||||
.def_readonly("dpresdd", &serif::eos::helmholtz::HELMEOSOutput::dpresdd)
|
||||
.def_readonly("dpresdt", &serif::eos::helmholtz::HELMEOSOutput::dpresdt)
|
||||
.def_readonly("dpresda", &serif::eos::helmholtz::HELMEOSOutput::dpresda)
|
||||
.def_readonly("dpresdz", &serif::eos::helmholtz::HELMEOSOutput::dpresdz)
|
||||
|
||||
.def_readonly("denerdd", &serif::eos::helmholtz::EOS::denerdd)
|
||||
.def_readonly("denerdt", &serif::eos::helmholtz::EOS::denerdt)
|
||||
.def_readonly("denerda", &serif::eos::helmholtz::EOS::denerda)
|
||||
.def_readonly("denerdz", &serif::eos::helmholtz::EOS::denerdz)
|
||||
.def_readonly("dentrdd", &serif::eos::helmholtz::HELMEOSOutput::dentrdd)
|
||||
.def_readonly("dentrdt", &serif::eos::helmholtz::HELMEOSOutput::dentrdt)
|
||||
.def_readonly("dentrda", &serif::eos::helmholtz::HELMEOSOutput::dentrda)
|
||||
.def_readonly("dentrdz", &serif::eos::helmholtz::HELMEOSOutput::dentrdz)
|
||||
|
||||
.def_readonly("chiT", &serif::eos::helmholtz::EOS::chiT)
|
||||
.def_readonly("chiRho", &serif::eos::helmholtz::EOS::chiRho)
|
||||
.def_readonly("csound", &serif::eos::helmholtz::EOS::csound)
|
||||
.def_readonly("grad_ad", &serif::eos::helmholtz::EOS::grad_ad)
|
||||
.def_readonly("gamma1", &serif::eos::helmholtz::EOS::gamma1)
|
||||
.def_readonly("gamma2", &serif::eos::helmholtz::EOS::gamma2)
|
||||
.def_readonly("gamma3", &serif::eos::helmholtz::EOS::gamma3)
|
||||
.def_readonly("cV", &serif::eos::helmholtz::EOS::cV)
|
||||
.def_readonly("cP", &serif::eos::helmholtz::EOS::cP)
|
||||
.def_readonly("dse", &serif::eos::helmholtz::EOS::dse)
|
||||
.def_readonly("dpe", &serif::eos::helmholtz::EOS::dpe)
|
||||
.def_readonly("dsp", &serif::eos::helmholtz::EOS::dsp)
|
||||
.def_readonly("denerdd", &serif::eos::helmholtz::HELMEOSOutput::denerdd)
|
||||
.def_readonly("denerdt", &serif::eos::helmholtz::HELMEOSOutput::denerdt)
|
||||
.def_readonly("denerda", &serif::eos::helmholtz::HELMEOSOutput::denerda)
|
||||
.def_readonly("denerdz", &serif::eos::helmholtz::HELMEOSOutput::denerdz)
|
||||
|
||||
.def("__repr__", [](const serif::eos::helmholtz::EOS &eos) {
|
||||
.def_readonly("chiT", &serif::eos::helmholtz::HELMEOSOutput::chiT)
|
||||
.def_readonly("chiRho", &serif::eos::helmholtz::HELMEOSOutput::chiRho)
|
||||
.def_readonly("csound", &serif::eos::helmholtz::HELMEOSOutput::csound)
|
||||
.def_readonly("grad_ad", &serif::eos::helmholtz::HELMEOSOutput::grad_ad)
|
||||
.def_readonly("gamma1", &serif::eos::helmholtz::HELMEOSOutput::gamma1)
|
||||
.def_readonly("gamma2", &serif::eos::helmholtz::HELMEOSOutput::gamma2)
|
||||
.def_readonly("gamma3", &serif::eos::helmholtz::HELMEOSOutput::gamma3)
|
||||
.def_readonly("cV", &serif::eos::helmholtz::HELMEOSOutput::cV)
|
||||
.def_readonly("cP", &serif::eos::helmholtz::HELMEOSOutput::cP)
|
||||
.def_readonly("dse", &serif::eos::helmholtz::HELMEOSOutput::dse)
|
||||
.def_readonly("dpe", &serif::eos::helmholtz::HELMEOSOutput::dpe)
|
||||
.def_readonly("dsp", &serif::eos::helmholtz::HELMEOSOutput::dsp)
|
||||
|
||||
.def("__repr__", [](const serif::eos::helmholtz::HELMEOSOutput &eos) {
|
||||
return "<EOS (output from helmholtz eos)>";
|
||||
});
|
||||
|
||||
py::class_<serif::eos::helmholtz::EOSInput>(eos_submodule, "EOSInput")
|
||||
py::class_<serif::eos::helmholtz::HELMEOSInput>(eos_submodule, "HELMEOSInput")
|
||||
.def(py::init<>())
|
||||
.def_readwrite("T", &serif::eos::helmholtz::EOSInput::T)
|
||||
.def_readwrite("rho", &serif::eos::helmholtz::EOSInput::rho)
|
||||
.def_readwrite("abar", &serif::eos::helmholtz::EOSInput::abar)
|
||||
.def_readwrite("zbar", &serif::eos::helmholtz::EOSInput::zbar)
|
||||
.def("__repr__", [](const serif::eos::helmholtz::EOSInput &input) {
|
||||
return "<EOSInput(T=" + std::to_string(input.T) +
|
||||
.def_readwrite("T", &serif::eos::helmholtz::HELMEOSInput::T)
|
||||
.def_readwrite("rho", &serif::eos::helmholtz::HELMEOSInput::rho)
|
||||
.def_readwrite("abar", &serif::eos::helmholtz::HELMEOSInput::abar)
|
||||
.def_readwrite("zbar", &serif::eos::helmholtz::HELMEOSInput::zbar)
|
||||
.def("__repr__", [](const serif::eos::helmholtz::HELMEOSInput &input) {
|
||||
return "<HELMEOSInput(T=" + std::to_string(input.T) +
|
||||
", rho=" + std::to_string(input.rho) +
|
||||
", abar=" + std::to_string(input.abar) +
|
||||
", zbar=" + std::to_string(input.zbar) + ")>";
|
||||
|
||||
Reference in New Issue
Block a user