From 5481b1748b170263a055fba7235070278ef132a0 Mon Sep 17 00:00:00 2001 From: Adrian Maldonado Date: Mon, 17 Sep 2018 13:47:19 -0500 Subject: [PATCH] added time step command option and results for a two-step simulation --- examples/psys/main.cpp | 6 ++++-- examples/psys/test/covSTEP0.hdf5 | Bin 0 -> 20480 bytes examples/psys/test/covSTEP1.hdf5 | Bin 0 -> 20480 bytes examples/psys/test/solution.hdf5 | Bin 0 -> 2816 bytes 4 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 examples/psys/test/covSTEP0.hdf5 create mode 100644 examples/psys/test/covSTEP1.hdf5 create mode 100644 examples/psys/test/solution.hdf5 diff --git a/examples/psys/main.cpp b/examples/psys/main.cpp index 08440e5..2198376 100644 --- a/examples/psys/main.cpp +++ b/examples/psys/main.cpp @@ -24,11 +24,13 @@ int main(int argc, char* argv[]) { bool propagate_moments = false; bool TWO_BUS = false; + int tsteps = 200; options.add_options() ("x0", "Read initial conditions from x0.hdf5", cxxopts::value(external_init)) ("m,moments", "Propagate moments with AD", cxxopts::value(propagate_moments)) - ("o,output", "Output trajectory (integration)", cxxopts::value()); + ("o,output", "Output trajectory (integration)", cxxopts::value()) + ("t,timesteps", "Number of time steps", cxxopts::value(tsteps)); auto result = options.parse(argc, argv); @@ -38,7 +40,7 @@ int main(int argc, char* argv[]) { // Variable declaration int nbuses, nbranches, ngen, nload; - int tsteps = 200; + //int tsteps = 200; size_t dim; pVector xold, x, F; pVector x0; diff --git a/examples/psys/test/covSTEP0.hdf5 b/examples/psys/test/covSTEP0.hdf5 new file mode 100644 index 0000000000000000000000000000000000000000..82c8303ac1746a31aff9e590040eb52cea89e12d GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/examples/psys/test/solution.hdf5 b/examples/psys/test/solution.hdf5 new file mode 100644 index 0000000000000000000000000000000000000000..63bbd9a577746624d67028ee2c8c153f673637a3 GIT binary patch literal 2816 zcmeIydrT8a7y$5TDOieJfFcU$0cwFnRNmex_;I9QBPoiHdRTnmspqSTL=jX_PD~&w zMh!;6D1r}SKq|riK!jW8lu4b2^KmpSdas!j~cO@W;`DGh#U@i&8VtVLnj> z?!90Yt#(wln;Z-NE^_f-F#s&RLf=ojo42bo+TcxJ#EycfA8;8NZ@F2K8x(7PX zqshT*hauA<%{e)E2Kp}rU-N&JhgyXuL*+utf*;@_W`2gIKq z-1mQbNQ6c_7AzXsdc{rTBr7jm)xHqWhP%dx*}cw;&7FKR6Lhxljb zFLWmU;r}_DzmNT`DSeKT+Tf-86?P%S|F06mxp55*k{Z`pH?hC>)GTlUDGVE?`PkqjT~Z(DI!@D}@<@*`@CuzygTwq>;b h9<-M~?)Sz1^a