Skip to content

Commit c747023

Browse files
committed
#60: update code to 0.17.0
1 parent 4ef1f2a commit c747023

File tree

8 files changed

+34
-42
lines changed

8 files changed

+34
-42
lines changed

end-to-end-roms/cpp/lspg_pick_solver_and_run.hpp

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ void lspg_pick_solver_and_run(const ParserType & parser,
5555
RomStateType & reducedState)
5656
{
5757
namespace pode = pressio::ode;
58-
namespace pnlins = pressio::nonlinearsolvers;
58+
namespace pnlins = pressio::nlsol;
5959

6060
using scalar_type = typename pressio::Traits<RomStateType>::scalar_type;
6161
const auto startTime = static_cast<typename LspgStepperType::independent_variable_type>(0);
@@ -65,48 +65,45 @@ void lspg_pick_solver_and_run(const ParserType & parser,
6565
if (parser.nonlinearSolver() == "GaussNewton")
6666
{
6767
using hessian_t = Eigen::Matrix<scalar_type, -1, -1>;
68-
using solver_tag = pressio::linearsolvers::direct::HouseholderQR;
69-
using linear_solver_t = pressio::linearsolvers::Solver<solver_tag, hessian_t>;
68+
using solver_tag = pressio::linsol::direct::HouseholderQR;
69+
using linear_solver_t = pressio::linsol::Solver<solver_tag, hessian_t>;
7070
linear_solver_t linearSolver;
7171

72-
auto solver = pressio::create_gauss_newton_solver(lspgStepper, linearSolver);
72+
auto solver = pressio::nlsol::create_gauss_newton_solver(lspgStepper, linearSolver);
7373
solver.setStopCriterion(pnlins::Stop::WhenAbsolutel2NormOfGradientBelowTolerance);
7474
solver.setStopTolerance(parser.nonlinearSolverTolerance());
7575

76-
pode::advance_n_steps(lspgStepper, reducedState, startTime,
77-
parser.timeStepSize(), numSteps,
78-
observer, solver);
76+
auto policy = pode::steps_fixed_dt(startTime, numSteps, parser.timeStepSize());
77+
pode::advance(lspgStepper, reducedState, policy, solver, observer);
7978
}
8079

8180
else if (parser.nonlinearSolver() == "GaussNewtonQR")
8281
{
8382
using mat_t = typename LspgStepperType::jacobian_type;
8483
using qr_solver_t = pressio::qr::QRSolver<mat_t, pressio::qr::Householder>;
8584
qr_solver_t qrSolver;
86-
auto solver = pressio::experimental::create_gauss_newton_qr_solver(lspgStepper, qrSolver);
85+
auto solver = pressio::nlsol::experimental::create_gauss_newton_qr_solver(lspgStepper, qrSolver);
8786
solver.setStopCriterion(pnlins::Stop::WhenAbsolutel2NormOfGradientBelowTolerance);
8887
solver.setStopTolerance(parser.nonlinearSolverTolerance());
8988

90-
pode::advance_n_steps(lspgStepper, reducedState, startTime,
91-
parser.timeStepSize(), numSteps,
92-
observer, solver);
89+
auto policy = pode::steps_fixed_dt(startTime, numSteps, parser.timeStepSize());
90+
pode::advance(lspgStepper, reducedState, policy, solver, observer);
9391
}
9492

9593
else if (parser.nonlinearSolver() == "LevenbergMarquardt")
9694
{
9795
using hessian_t = Eigen::Matrix<scalar_type, -1, -1>;
98-
using solver_tag = pressio::linearsolvers::direct::HouseholderQR;
99-
using linear_solver_t = pressio::linearsolvers::Solver<solver_tag, hessian_t>;
96+
using solver_tag = pressio::linsol::direct::HouseholderQR;
97+
using linear_solver_t = pressio::linsol::Solver<solver_tag, hessian_t>;
10098
linear_solver_t linearSolver;
10199

102-
auto solver = pressio::create_levenberg_marquardt_solver(lspgStepper, linearSolver);
100+
auto solver = pressio::nlsol::create_levenberg_marquardt_solver(lspgStepper, linearSolver);
103101
solver.setUpdateCriterion(pnlins::Update::LMSchedule2);
104102
solver.setStopCriterion(pnlins::Stop::WhenAbsolutel2NormOfGradientBelowTolerance);
105103
solver.setStopTolerance(parser.nonlinearSolverTolerance());
106104

107-
pode::advance_n_steps(lspgStepper, reducedState, startTime,
108-
parser.timeStepSize(), numSteps,
109-
observer, solver);
105+
auto policy = pode::steps_fixed_dt(startTime, numSteps, parser.timeStepSize());
106+
pode::advance(lspgStepper, reducedState, policy, solver, observer);
110107
}
111108
}
112109
#endif

end-to-end-roms/cpp/main.cc

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,7 @@
4848

4949
#include "pressio_cmake_config.h"
5050
#include "pressiodemoapps/swe2d.hpp"
51-
#include "pressio/ode_steppers_explicit.hpp"
52-
#include "pressio/ode_steppers_implicit.hpp"
51+
#include "pressio/ode_steppers.hpp"
5352
#include "pressio/ode_advancers.hpp"
5453

5554
#include "parsers.hpp"

end-to-end-roms/cpp/observer.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ class StateObserver
6666
std::enable_if_t< pressio::is_vector_eigen<ObservableType>::value >
6767
operator()(pressio::ode::StepCount step,
6868
const TimeType /*timeIn*/,
69-
const ObservableType & state)
69+
const ObservableType & state) const
7070
{
7171
if (step.get() % sampleFreq_ == 0){
7272
const std::size_t ext = state.size()*sizeof(typename ObservableType::Scalar);
@@ -75,7 +75,7 @@ class StateObserver
7575
}
7676

7777
private:
78-
std::ofstream myfile_;
78+
mutable std::ofstream myfile_;
7979
const int sampleFreq_ = {};
8080
};
8181

@@ -97,7 +97,7 @@ class RhsObserver
9797
operator()(pressio::ode::StepCount step,
9898
pressio::ode::IntermediateStepCount /*imStepCount*/,
9999
const TimeType /*timeIn*/,
100-
const ObservableType & rhs)
100+
const ObservableType & rhs) const
101101
{
102102
if (step.get() % sampleFreq_ == 0){
103103
const std::size_t ext = rhs.size()*sizeof(typename ObservableType::Scalar);
@@ -106,7 +106,7 @@ class RhsObserver
106106
}
107107

108108
private:
109-
std::ofstream myfile_;
109+
mutable std::ofstream myfile_;
110110
const int sampleFreq_ = {};
111111
};
112112

end-to-end-roms/cpp/run_default_galerkin.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,8 @@ void run_galerkin_default(const FomSystemType & fomSystem,
8383

8484
typename FomSystemType::time_type startTime{0};
8585
const auto numSteps = pode::StepCount{parser.numSteps()};
86-
pode::advance_n_steps(problem, reducedState, startTime,
87-
parser.timeStepSize(), numSteps, observer);
86+
auto policy = pode::steps_fixed_dt(startTime, numSteps, parser.timeStepSize());
87+
pode::advance(problem, reducedState, policy, observer);
8888
}
8989
else{
9090
throw std::runtime_error("Default implicit galerkin not impl yet");

end-to-end-roms/cpp/run_fom_explicit.hpp

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
#ifndef PRESSIO_TUTORIALS_ENDTOEND_WORKFLOW_RUN_FOM_EXPLICIT_HPP_
5050
#define PRESSIO_TUTORIALS_ENDTOEND_WORKFLOW_RUN_FOM_EXPLICIT_HPP_
5151

52-
#include "pressio/ode_steppers_explicit.hpp"
52+
#include "pressio/ode_steppers.hpp"
5353
#include "pressio/ode_advancers.hpp"
5454
#include "observer.hpp"
5555

@@ -63,16 +63,14 @@ void run_fom_explicit(const FomSystemType & fomSystem,
6363
write_vector_to_binary(state, "initial_state.bin");
6464

6565
const auto odeScheme = parser.odeScheme();
66-
assert(pressio::ode::is_explicit_scheme(odeScheme));
66+
assert(pode::is_explicit_scheme(odeScheme));
6767
auto stepperObj = pode::create_explicit_stepper(odeScheme, fomSystem);
6868

6969
RhsObserver rhsObs(parser.rhsSamplingFreq());
7070
StateObserver stateObs(parser.stateSamplingFreq());
7171
const auto startTime = static_cast<typename FomSystemType::scalar_type>(0);
72-
pode::advance_n_steps(stepperObj, state, startTime,
73-
parser.timeStepSize(),
74-
pode::StepCount(parser.numSteps()),
75-
stateObs, rhsObs);
72+
auto policy = pode::steps_fixed_dt(startTime, pode::StepCount(parser.numSteps()), parser.timeStepSize());
73+
pode::advance(stepperObj, state, policy, stateObs, rhsObs);
7674
}
7775

7876
#endif

end-to-end-roms/cpp/run_fom_implicit.hpp

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
#ifndef PRESSIO_TUTORIALS_ENDTOEND_WORKFLOW_RUN_FOM_IMPLICIT_HPP_
5050
#define PRESSIO_TUTORIALS_ENDTOEND_WORKFLOW_RUN_FOM_IMPLICIT_HPP_
5151

52-
#include "pressio/ode_steppers_implicit.hpp"
52+
#include "pressio/ode_steppers.hpp"
5353
#include "pressio/ode_advancers.hpp"
5454
#include "observer.hpp"
5555

@@ -58,8 +58,8 @@ void run_fom_implicit(const FomSystemType & fomSystem,
5858
const ParserType & parser)
5959
{
6060
namespace pode = pressio::ode;
61-
namespace plins = pressio::linearsolvers;
62-
namespace pnlins = pressio::nonlinearsolvers;
61+
namespace plins = pressio::linsol;
62+
namespace pnlins = pressio::nlsol;
6363

6464
auto state = fomSystem.initialCondition();
6565
write_vector_to_binary(state, "initial_state.bin");
@@ -77,16 +77,14 @@ void run_fom_implicit(const FomSystemType & fomSystem,
7777
// nonlinear solver
7878
const auto nonlinSolverType = parser.nonlinearSolver();
7979
assert(nonlinSolverType == "NewtonRaphson");
80-
auto nonLinearSolver = pressio::create_newton_solver(stepperObj, linearSolver);
80+
auto nonLinearSolver = pressio::nlsol::create_newton_solver(stepperObj, linearSolver);
8181
nonLinearSolver.setStopTolerance(parser.nonlinearSolverTolerance());
8282

8383
// advance in time
8484
StateObserver observer(parser.stateSamplingFreq());
8585
const auto startTime = static_cast<typename FomSystemType::scalar_type>(0);
86-
pode::advance_n_steps(stepperObj, state, startTime,
87-
parser.timeStepSize(),
88-
pode::StepCount(parser.numSteps()),
89-
observer, nonLinearSolver);
86+
auto policy = pode::steps_fixed_dt(startTime, pode::StepCount(parser.numSteps()), parser.timeStepSize());
87+
pode::advance(stepperObj, state, policy, nonLinearSolver, observer);
9088
}
9189

9290
#endif

end-to-end-roms/cpp/run_hyperreduced_galerkin.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,8 @@ void run_galerkin_hyperreduced(const FomSystemType & fomSystem,
117117

118118
typename FomSystemType::time_type startTime{0};
119119
const auto numSteps = pode::StepCount{parser.numSteps()};
120-
pode::advance_n_steps(problem, reducedState, startTime,
121-
parser.timeStepSize(), numSteps, observer);
120+
auto policy = pode::steps_fixed_dt(startTime, numSteps, parser.timeStepSize());
121+
pode::advance(problem, reducedState, policy, observer);
122122
}
123123
else{
124124
throw std::runtime_error("Hyper-reduced implicit galerkin not impl yet");

version.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11

22
VERSION_MAJOR 0
3-
VERSION_MINOR 16
3+
VERSION_MINOR 17
44
VERSION_PATCH 0

0 commit comments

Comments
 (0)