diff --git a/example/exampleRecommendedIndex.py b/example/exampleRecommendedIndex.py new file mode 100644 index 0000000000000000000000000000000000000000..02eabdad039d69d001fe9da2dff3209ddfbb882a --- /dev/null +++ b/example/exampleRecommendedIndex.py @@ -0,0 +1,29 @@ +#!/bin/python + +import eisgenerator as eis + +model = eis.Model("c{1e-6}r{1e3}") +print(f"model: {model}") + +eis.Log.level = eis.Log.level.WARN +print(f'set log level: {eis.Log.level}') + +with eis.ostream_redirect(stdout=True, stderr=True): + data = model.execute(1e6) +print(f"data for omega={data.omega}: {data}") + +model = eis.Model("c{1e-6~1e-5}r{1e3~1e4}") + +omegaRange = eis.Range(1, 1000, 25, True) + +indecies = model.getRecommendedParamIndices(omegaRange, 0.01, True) + +print(f"found {len(indecies)} interesting indecies") + +sweep = model.executeSweep(omegaRange.getRangeVector(), indecies[0]) + +spectra = eis.EisSpectra() +spectra.data = sweep +spectra.model = model.getModelStrWithParam(200) + +print(spectra) diff --git a/src/main.cpp b/src/main.cpp index c297239ddcae8c82f369df875111e277e1fafefa..4cb011e4dacd253c8512770c711017bf95fa321e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -7,6 +7,7 @@ #include <eisgenerator/model.h> #include <eisgenerator/eistype.h> #include <eisgenerator/log.h> +#include <eisgenerator/basicmath.h> #include <vector> #include <sstream> @@ -44,6 +45,7 @@ PYBIND11_MODULE(_core, m) py::arg("omega"), py::arg("index") = 0) .def("executeAllSweeps", &Model::executeAllSweeps) .def("getModelStr", &Model::getModelStr) + .def("setParamSweepCountClosestTotal", &Model::setParamSweepCountClosestTotal, py::arg("total")) .def("getModelStrWithParam", static_cast<std::string (Model::*)(size_t)>(&Model::getModelStrWithParam), py::arg("index") = 0) .def("getUuid", &Model::getUuid) @@ -55,6 +57,8 @@ PYBIND11_MODULE(_core, m) .def("getTorchScript", &Model::getTorchScript) .def("getCompiledFunctionName", &Model::getCompiledFunctionName) .def("getFlatParameters", &Model::getFlatParameters) + .def("getParameterCount", &Model::getParameterCount) + .def("getRecommendedParamIndices", &Model::getRecommendedParamIndices) .def("__repr__", &Model::getModelStr); py::class_<DataPoint>(m, "DataPoint") .def(py::init<std::complex<fvalue>, fvalue>(), py::arg("im") = std::complex<fvalue>(0, 0), py::arg("omega") = 100)