Skip to content

Commit c3522a9

Browse files
author
Jaya Mohan
committed
sort tcopflow functions
1 parent e14277a commit c3522a9

File tree

1 file changed

+49
-7
lines changed

1 file changed

+49
-7
lines changed

interfaces/python/exago_python_tcopflow.cpp

+49-7
Original file line numberDiff line numberDiff line change
@@ -30,20 +30,62 @@ void init_exago_tcopflow(pybind11::module &m) {
3030

3131
pybind11::class_<TCOPFLOW_wrapper>(m, "TCOPFLOW")
3232
.def(pybind11::init())
33-
.def("set_tolerance",
34-
[](TCOPFLOW_wrapper &w, double tol) {
33+
.def("set_network_data",
34+
[](TCOPFLOW_wrapper &w, std::string filename) {
3535
PetscErrorCode ierr;
36-
ierr = TCOPFLOWSetTolerance(w.tcopf, tol);
36+
ierr = TCOPFLOWSetNetworkData(w.tcopf, filename.c_str());
3737
ExaGOCheckError(ierr);
38+
.def("set_solver",
39+
[](TCOPFLOW_wrapper &w, std::string solver) {
40+
PetscErrorCode ierr;
41+
ierr = TCOPFLOWSetSolver(w.tcopf, solver.c_str());
42+
ExaGO
43+
});
44+
45+
.def("setup",
46+
[](TCOPFLOW_wrapper &w) {
47+
PetscErrorCode ierr;
48+
ierr = TCOPFLOWSetUp(w.tcopf);
49+
ExaGOCheckError(ierr);
50+
});
51+
52+
.def("get_convergence_status",
53+
[](TCOPFLOW_wrapper &w) -> bool {
54+
PetscErrorCode ierr;
55+
PetscBool flag;
56+
ierr = TCOPFLOWGetConvergenceStatus(w.tcopf, &flag);
57+
ExaGOCheckError(ierr);
58+
return flag;
3859
})
39-
.def("get_tolerance",
60+
.def("get_objective",
4061
[](TCOPFLOW_wrapper &w) -> double {
4162
PetscErrorCode ierr;
42-
PetscReal tol;
43-
ierr = TCOPFLOWGetTolerance(w.tcopf, &tol);
63+
double obj;
64+
ierr = TCOPFLOWGetObjective(w.tcopf, &obj);
65+
ExaGOCheckError(ierr);
66+
return obj;
67+
})
68+
.def("get_num_iterations",
69+
[](TCCOPFLOW_wrapper &w) -> int {
70+
PetscErrorCode ierr;
71+
PetscInt n;
72+
ierr = TCOPFLOWGetNumIterations(w.tcopf, &n);
73+
ExaGOCheckError(ierr);
74+
return n;
75+
})
76+
.def("save_solution",
77+
[](TCOPFLOW_wrapper &w, OutputFormat fmt, std::string outfile) {
78+
PetscErrorCode ierr;
79+
ierr = TCOPFLOWSaveSolution(w.tcopf, fmt, outfile.c_str());
4480
ExaGOCheckError(ierr);
45-
return tol;
4681
});
82+
.def("save_solution_all",
83+
[](TCCOPFLOW_wrapper &w, OutputFormat fmt, std::string outdir) {
84+
PetscErrorCode ierr;
85+
ierr = TCCOPFLOWSaveSolutionAll(w.tcopf, fmt, outdir.c_str());
86+
ExaGOCheckError(ierr);
87+
});
88+
4789
}
4890

4991

0 commit comments

Comments
 (0)