Skip to content

Commit 602f9a1

Browse files
authored
Merge pull request #4 from Pressio/update_to_0.17.0
update to use pressio 0.17.0
2 parents 87431fd + 58b83d7 commit 602f9a1

File tree

11 files changed

+66
-60
lines changed

11 files changed

+66
-60
lines changed

.github/workflows/test.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,14 +50,14 @@ jobs:
5050
with:
5151
repository: Pressio/pressio
5252
path: pressio
53-
ref: develop
53+
ref: 0.17.0
5454

5555
- name: Clone pressio-demoapps repository, develop branch
5656
uses: actions/checkout@v2
5757
with:
5858
repository: Pressio/pressio-demoapps
5959
path: pressio-demoapps
60-
ref: develop
60+
ref: 0.17.0
6161

6262
- name: Install packages
6363
run: |

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ else()
1616
FetchContent_Declare(
1717
pressio-ops
1818
GIT_REPOSITORY https://github.com/Pressio/pressio-ops.git
19-
GIT_TAG develop
19+
GIT_TAG 0.17.0
2020
GIT_PROGRESS TRUE
2121
GIT_SHALLOW TRUE
2222
)

include/pressio-schwarz/schwarz.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
#define PRESSIODEMOAPPS_SCHWARZ_HPP_
4848

4949
#include "BS_thread_pool.hpp"
50-
#include "pressio/ode_steppers_implicit.hpp"
50+
#include "pressio/ode_steppers.hpp"
5151
#include "pressiodemoapps/impl/ghost_relative_locations.hpp"
5252
#include "./custom_bcs.hpp"
5353
#include "./subdomain.hpp"

include/pressio-schwarz/subdomain.hpp

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
#include <vector>
5151
#include <math.h>
5252

53-
#include "pressio/ode_steppers_implicit.hpp"
53+
#include "pressio/ode_steppers.hpp"
5454
#include "pressio/rom_subspaces.hpp"
5555
#include "pressio/rom_lspg_unsteady.hpp"
5656

@@ -63,7 +63,7 @@ namespace pschwarz {
6363

6464
namespace pda = pressiodemoapps;
6565
namespace pode = pressio::ode;
66-
namespace pls = pressio::linearsolvers;
66+
namespace pls = pressio::linsol;
6767
namespace prom = pressio::rom;
6868
namespace plspg = pressio::rom::lspg;
6969

@@ -151,10 +151,10 @@ class SubdomainFOM: public SubdomainBase<mesh_t, typename app_type::state_type>
151151
std::declval<app_t&>())
152152
);
153153

154-
using lin_solver_tag = pressio::linearsolvers::iterative::Bicgstab;
155-
using linsolver_t = pressio::linearsolvers::Solver<lin_solver_tag, jacob_t>;
154+
using lin_solver_tag = pls::iterative::Bicgstab;
155+
using linsolver_t = pls::Solver<lin_solver_tag, jacob_t>;
156156
using nonlinsolver_t =
157-
decltype( pressio::create_newton_solver( std::declval<stepper_t &>(),
157+
decltype( pressio::nlsol::create_newton_solver( std::declval<stepper_t &>(),
158158
std::declval<linsolver_t&>()) );
159159

160160
public:
@@ -179,7 +179,7 @@ class SubdomainFOM: public SubdomainBase<mesh_t, typename app_type::state_type>
179179
, m_state(m_app->initialCondition())
180180
, m_stepper(pressio::ode::create_implicit_stepper(odeScheme, *(m_app)))
181181
, m_linSolverObj(std::make_shared<linsolver_t>())
182-
, m_nonlinSolver(pressio::create_newton_solver(m_stepper, *m_linSolverObj))
182+
, m_nonlinSolver(pressio::nlsol::create_newton_solver(m_stepper, *m_linSolverObj))
183183
{
184184
m_fullMeshDims = calc_mesh_dims(*m_mesh);
185185

@@ -201,7 +201,7 @@ class SubdomainFOM: public SubdomainBase<mesh_t, typename app_type::state_type>
201201
}
202202
}
203203

204-
m_nonlinSolver.setStopCriterion(pressio::nonlinearsolvers::Stop::WhenAbsolutel2NormOfCorrectionBelowTolerance);
204+
m_nonlinSolver.setStopCriterion(pressio::nlsol::Stop::WhenAbsolutel2NormOfCorrectionBelowTolerance);
205205
m_nonlinSolver.setStopTolerance(1e-5);
206206
}
207207

@@ -500,11 +500,11 @@ class SubdomainLSPG: public SubdomainROM<mesh_t, app_type, prob_t>
500500
using trial_t = typename base_t::trial_t;
501501

502502
using hessian_t = Eigen::Matrix<scalar_t, -1, -1>; // TODO: generalize?
503-
using solver_tag = pressio::linearsolvers::direct::HouseholderQR;
504-
using linsolver_t = pressio::linearsolvers::Solver<solver_tag, hessian_t>;
503+
using solver_tag = pls::direct::HouseholderQR;
504+
using linsolver_t = pls::Solver<solver_tag, hessian_t>;
505505

506506
using problem_t = decltype(plspg::create_unsteady_problem(pressio::ode::StepScheme(), std::declval<trial_t&>(), std::declval<app_t&>()));
507-
using nonlinsolver_t = decltype(pressio::create_gauss_newton_solver(std::declval<problem_t&>(), std::declval<linsolver_t&>()));
507+
using nonlinsolver_t = decltype(pressio::nlsol::create_gauss_newton_solver(std::declval<problem_t&>(), std::declval<linsolver_t&>()));
508508

509509
public:
510510

@@ -528,10 +528,10 @@ class SubdomainLSPG: public SubdomainROM<mesh_t, app_type, prob_t>
528528
transRoot, basisRoot, nmodes)
529529
, m_problem(plspg::create_unsteady_problem(odeScheme, this->m_trialSpace, *(this->m_app)))
530530
, m_linSolverObj(std::make_shared<linsolver_t>())
531-
, m_nonlinSolver(pressio::create_gauss_newton_solver(m_problem, *m_linSolverObj))
531+
, m_nonlinSolver(pressio::nlsol::create_gauss_newton_solver(m_problem, *m_linSolverObj))
532532
{
533533

534-
m_nonlinSolver.setStopCriterion(pressio::nonlinearsolvers::Stop::WhenAbsolutel2NormOfCorrectionBelowTolerance);
534+
m_nonlinSolver.setStopCriterion(pressio::nlsol::Stop::WhenAbsolutel2NormOfCorrectionBelowTolerance);
535535
m_nonlinSolver.setStopTolerance(1e-5);
536536

537537
}
@@ -833,8 +833,8 @@ class SubdomainLSPGHyper: public SubdomainHyper<mesh_t, app_type, prob_t>
833833
using weigh_t = Weigher<scalar_t>;
834834

835835
using hessian_t = Eigen::Matrix<scalar_t, -1, -1>; // TODO: generalize?
836-
using solver_tag = pressio::linearsolvers::direct::HouseholderQR;
837-
using linsolver_t = pressio::linearsolvers::Solver<solver_tag, hessian_t>;
836+
using solver_tag = pls::direct::HouseholderQR;
837+
using linsolver_t = pls::Solver<solver_tag, hessian_t>;
838838

839839
using trialHyp_t = typename base_t::trialHyp_t;
840840

@@ -845,10 +845,10 @@ class SubdomainLSPGHyper: public SubdomainHyper<mesh_t, app_type, prob_t>
845845
std::declval<app_t&>(),
846846
std::declval<updaterHyp_t&>()));
847847

848-
using tag_t = pressio::nonlinearsolvers::impl::CompactWeightedGaussNewtonNormalEqTag;
848+
using tag_t = pressio::nlsol::impl::CompactWeightedGaussNewtonNormalEqTag;
849849

850850
using nonlinsolverHyp_t =
851-
decltype(pressio::create_gauss_newton_solver(
851+
decltype(pressio::nlsol::create_gauss_newton_solver(
852852
std::declval<problemHyp_t&>(),
853853
std::declval<linsolver_t&>(),
854854
std::declval<weigh_t&>(),
@@ -924,12 +924,12 @@ class SubdomainLSPGHyper: public SubdomainHyper<mesh_t, app_type, prob_t>
924924
);
925925

926926
m_nonlinSolverHyper = std::make_shared<nonlinsolverHyp_t>(
927-
pressio::create_gauss_newton_solver(
927+
pressio::nlsol::create_gauss_newton_solver(
928928
*m_problemHyper, *m_linSolverObjHyper, *m_weigher, *m_tag
929929
)
930930
);
931931

932-
m_nonlinSolverHyper->setStopCriterion(pressio::nonlinearsolvers::Stop::WhenAbsolutel2NormOfCorrectionBelowTolerance);
932+
m_nonlinSolverHyper->setStopCriterion(pressio::nlsol::Stop::WhenAbsolutel2NormOfCorrectionBelowTolerance);
933933
m_nonlinSolverHyper->setStopTolerance(1e-5);
934934
}
935935

tests_cpp/eigen_2d_burgers_outflow_implicit/main.cc

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
#include "pressio/ode_steppers_implicit.hpp"
2+
#include "pressio/ode_steppers.hpp"
33
#include "pressio/ode_advancers.hpp"
44
#include "pressiodemoapps/advection_diffusion2d.hpp"
55
#include "../observer.hpp"
@@ -38,10 +38,10 @@ int main()
3838
auto stepperObj = pressio::ode::create_implicit_stepper(
3939
pressio::ode::StepScheme::BDF1, appObj);
4040

41-
using lin_solver_t = pressio::linearsolvers::Solver<
42-
pressio::linearsolvers::iterative::Bicgstab, jacob_t>;
41+
using lin_solver_t = pressio::linsol::Solver<
42+
pressio::linsol::iterative::Bicgstab, jacob_t>;
4343
lin_solver_t linSolverObj;
44-
auto NonLinSolver = pressio::create_newton_solver(stepperObj, linSolverObj);
44+
auto NonLinSolver = pressio::nlsol::create_newton_solver(stepperObj, linSolverObj);
4545
NonLinSolver.setStopTolerance(1e-5);
4646

4747
FomObserver<state_t> Obs("burgers_outflow2d_solution.bin", 1);
@@ -52,7 +52,8 @@ int main()
5252
const auto Nsteps = pressio::ode::StepCount(tf/dt);
5353

5454
auto runtimeStart = std::chrono::high_resolution_clock::now();
55-
pressio::ode::advance_n_steps(stepperObj, state, 0., dt, Nsteps, Obs, NonLinSolver);
55+
auto policy = pressio::ode::steps_fixed_dt(0., Nsteps, dt);
56+
pressio::ode::advance(stepperObj, state, policy, NonLinSolver, Obs);
5657
auto runtimeEnd = std::chrono::high_resolution_clock::now();
5758
auto nsElapsed = std::chrono::duration_cast<std::chrono::nanoseconds>(runtimeEnd - runtimeStart).count();
5859
double secElapsed = static_cast<double>(nsElapsed) * 1e-9;

tests_cpp/eigen_2d_euler_riemann_implicit/main.cc

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
#include "pressio/ode_steppers_implicit.hpp"
2+
#include "pressio/ode_steppers.hpp"
33
#include "pressio/ode_advancers.hpp"
44
#include "pressiodemoapps/euler2d.hpp"
55
#include "../observer.hpp"
@@ -31,10 +31,10 @@ int main()
3131
auto stepperObj = pressio::ode::create_implicit_stepper(
3232
pressio::ode::StepScheme::CrankNicolson, appObj);
3333

34-
using lin_solver_t = pressio::linearsolvers::Solver<
35-
pressio::linearsolvers::iterative::Bicgstab, jacob_t>;
34+
using lin_solver_t = pressio::linsol::Solver<
35+
pressio::linsol::iterative::Bicgstab, jacob_t>;
3636
lin_solver_t linSolverObj;
37-
auto NonLinSolver = pressio::create_newton_solver(stepperObj, linSolverObj);
37+
auto NonLinSolver = pressio::nlsol::create_newton_solver(stepperObj, linSolverObj);
3838
NonLinSolver.setStopTolerance(1e-5);
3939

4040
FomObserver<state_t> Obs("riemann2d_solution.bin", 2);
@@ -45,7 +45,8 @@ int main()
4545
const auto Nsteps = pressio::ode::StepCount(tf/dt);
4646

4747
auto runtimeStart = std::chrono::high_resolution_clock::now();
48-
pressio::ode::advance_n_steps(stepperObj, state, 0., dt, Nsteps, Obs, NonLinSolver);
48+
auto policy = pressio::ode::steps_fixed_dt(0., Nsteps, dt);
49+
pressio::ode::advance(stepperObj, state, policy, NonLinSolver, Obs);
4950
auto runtimeEnd = std::chrono::high_resolution_clock::now();
5051
auto nsElapsed = std::chrono::duration_cast<std::chrono::nanoseconds>(runtimeEnd - runtimeStart).count();
5152
double secElapsed = static_cast<double>(nsElapsed) * 1e-9;

tests_cpp/eigen_2d_swe_slip_wall_implicit/main.cc

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
#include "pressio/ode_steppers_implicit.hpp"
2+
#include "pressio/ode_steppers.hpp"
33
#include "pressio/ode_advancers.hpp"
44
#include "pressiodemoapps/swe2d.hpp"
55
#include "../observer.hpp"
@@ -31,10 +31,10 @@ int main()
3131
auto stepperObj = pressio::ode::create_implicit_stepper(
3232
pressio::ode::StepScheme::BDF1, appObj);
3333

34-
using lin_solver_t = pressio::linearsolvers::Solver<
35-
pressio::linearsolvers::iterative::Bicgstab, jacob_t>;
34+
using lin_solver_t = pressio::linsol::Solver<
35+
pressio::linsol::iterative::Bicgstab, jacob_t>;
3636
lin_solver_t linSolverObj;
37-
auto NonLinSolver = pressio::create_newton_solver(stepperObj, linSolverObj);
37+
auto NonLinSolver = pressio::nlsol::create_newton_solver(stepperObj, linSolverObj);
3838
NonLinSolver.setStopTolerance(1e-5);
3939

4040
FomObserver<state_t> Obs("swe_slipWall2d_solution.bin", 1);
@@ -45,7 +45,8 @@ int main()
4545
const auto Nsteps = pressio::ode::StepCount(tf/dt);
4646

4747
auto runtimeStart = std::chrono::high_resolution_clock::now();
48-
pressio::ode::advance_n_steps(stepperObj, state, 0., dt, Nsteps, Obs, NonLinSolver);
48+
auto policy = pressio::ode::steps_fixed_dt(0., Nsteps, dt);
49+
pressio::ode::advance(stepperObj, state, policy, NonLinSolver, Obs);
4950
auto runtimeEnd = std::chrono::high_resolution_clock::now();
5051
auto nsElapsed = std::chrono::duration_cast<std::chrono::nanoseconds>(runtimeEnd - runtimeStart).count();
5152
double secElapsed = static_cast<double>(nsElapsed) * 1e-9;

tests_cpp/eigen_2d_swe_slip_wall_implicit_hproms/lspg/main.cc

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
#include "pressio/ode_steppers_implicit.hpp"
2+
#include "pressio/ode_steppers.hpp"
33
#include "pressio/ode_advancers.hpp"
44
#include "pressiodemoapps/swe2d.hpp"
55
#include "../../observer.hpp"
@@ -16,7 +16,7 @@ int main()
1616
namespace pode = pressio::ode;
1717
namespace prom = pressio::rom;
1818
namespace plspg = pressio::rom::lspg;
19-
namespace pnlins = pressio::nonlinearsolvers;
19+
namespace pnlins = pressio::nlsol;
2020

2121
const auto meshObjFull = pda::load_cellcentered_uniform_mesh_eigen("./full_mesh");
2222
const auto meshObjHyp = pda::load_cellcentered_uniform_mesh_eigen("./sample_mesh");
@@ -73,11 +73,11 @@ int main()
7373

7474
// define solver
7575
using hessian_t = Eigen::Matrix<scalar_type, -1, -1>;
76-
using solver_tag = pressio::linearsolvers::direct::HouseholderQR;
77-
using linear_solver_t = pressio::linearsolvers::Solver<solver_tag, hessian_t>;
76+
using solver_tag = pressio::linsol::direct::HouseholderQR;
77+
using linear_solver_t = pressio::linsol::Solver<solver_tag, hessian_t>;
7878
linear_solver_t linearSolver;
7979

80-
auto solver = pressio::create_gauss_newton_solver(problem, linearSolver);
80+
auto solver = pnlins::create_gauss_newton_solver(problem, linearSolver);
8181
solver.setStopCriterion(pnlins::Stop::WhenAbsolutel2NormOfGradientBelowTolerance);
8282
solver.setStopTolerance(1e-5);
8383

@@ -90,7 +90,8 @@ int main()
9090
const auto Nsteps = pressio::ode::StepCount(tf/dt);
9191

9292
auto runtimeStart = std::chrono::high_resolution_clock::now();
93-
pode::advance_n_steps(problem, reducedState, 0.0, dt, Nsteps, Obs, solver);
93+
auto policy = pressio::ode::steps_fixed_dt(0., Nsteps, dt);
94+
pode::advance(problem, reducedState, policy, solver, Obs);
9495
auto runtimeEnd = std::chrono::high_resolution_clock::now();
9596
auto nsElapsed = std::chrono::duration_cast<std::chrono::nanoseconds>(runtimeEnd - runtimeStart).count();
9697
double secElapsed = static_cast<double>(nsElapsed) * 1e-9;

tests_cpp/eigen_2d_swe_slip_wall_implicit_hproms_gpod/lspg/main.cc

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
#include "pressio/ode_steppers_implicit.hpp"
2+
#include "pressio/ode_steppers.hpp"
33
#include "pressio/ode_advancers.hpp"
44
#include "pressiodemoapps/swe2d.hpp"
55
#include "../../observer.hpp"
@@ -16,7 +16,7 @@ int main()
1616
namespace pode = pressio::ode;
1717
namespace prom = pressio::rom;
1818
namespace plspg = pressio::rom::lspg;
19-
namespace pnlins = pressio::nonlinearsolvers;
19+
namespace pnlins = pressio::nlsol;
2020

2121
const auto meshObjFull = pda::load_cellcentered_uniform_mesh_eigen("./full_mesh");
2222
const auto meshObjHyp = pda::load_cellcentered_uniform_mesh_eigen("./sample_mesh");
@@ -74,16 +74,16 @@ int main()
7474

7575
// define solver
7676
using hessian_t = Eigen::Matrix<scalar_type, -1, -1>;
77-
using solver_tag = pressio::linearsolvers::direct::HouseholderQR;
78-
using linear_solver_t = pressio::linearsolvers::Solver<solver_tag, hessian_t>;
79-
using tag_t = pressio::nonlinearsolvers::impl::CompactWeightedGaussNewtonNormalEqTag;
77+
using solver_tag = pressio::linsol::direct::HouseholderQR;
78+
using linear_solver_t = pressio::linsol::Solver<solver_tag, hessian_t>;
79+
using tag_t = pnlins::impl::CompactWeightedGaussNewtonNormalEqTag;
8080
linear_solver_t linearSolver;
8181
tag_t tag;
8282

8383
// Gauss-Newton with gappy POD weighting
8484
auto weighter = pschwarz::Weigher<scalar_type>("gappy_pod", basisfile, sampleFile, nmodes_gpod, numDofsPerCell);
8585
using weigher_t = decltype(weighter);
86-
auto solver = pressio::create_gauss_newton_solver(problem, linearSolver, weighter, tag);
86+
auto solver = pnlins::create_gauss_newton_solver(problem, linearSolver, weighter, tag);
8787
solver.setStopCriterion(pnlins::Stop::WhenAbsolutel2NormOfGradientBelowTolerance);
8888
solver.setStopTolerance(1e-5);
8989

@@ -96,7 +96,8 @@ int main()
9696
const auto Nsteps = pressio::ode::StepCount(tf/dt);
9797

9898
auto runtimeStart = std::chrono::high_resolution_clock::now();
99-
pode::advance_n_steps(problem, reducedState, 0.0, dt, Nsteps, Obs, solver);
99+
auto policy = pressio::ode::steps_fixed_dt(0., Nsteps, dt);
100+
pode::advance(problem, reducedState, policy, solver, Obs);
100101
auto runtimeEnd = std::chrono::high_resolution_clock::now();
101102
auto nsElapsed = std::chrono::duration_cast<std::chrono::nanoseconds>(runtimeEnd - runtimeStart).count();
102103
double secElapsed = static_cast<double>(nsElapsed) * 1e-9;

tests_cpp/eigen_2d_swe_slip_wall_implicit_roms/lspg/main.cc

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
#include "pressio/ode_steppers_implicit.hpp"
2+
#include "pressio/ode_steppers.hpp"
33
#include "pressio/ode_advancers.hpp"
44
#include "pressiodemoapps/swe2d.hpp"
55
#include "../../observer.hpp"
@@ -16,7 +16,7 @@ int main()
1616
namespace pode = pressio::ode;
1717
namespace prom = pressio::rom;
1818
namespace plspg = pressio::rom::lspg;
19-
namespace pnlins = pressio::nonlinearsolvers;
19+
namespace pnlins = pressio::nlsol;
2020

2121
const auto meshObj = pda::load_cellcentered_uniform_mesh_eigen(".");
2222

@@ -60,11 +60,11 @@ int main()
6060

6161
// define solver
6262
using hessian_t = Eigen::Matrix<scalar_type, -1, -1>;
63-
using solver_tag = pressio::linearsolvers::direct::HouseholderQR;
64-
using linear_solver_t = pressio::linearsolvers::Solver<solver_tag, hessian_t>;
63+
using solver_tag = pressio::linsol::direct::HouseholderQR;
64+
using linear_solver_t = pressio::linsol::Solver<solver_tag, hessian_t>;
6565
linear_solver_t linearSolver;
6666

67-
auto solver = pressio::create_gauss_newton_solver(problem, linearSolver);
67+
auto solver = pnlins::create_gauss_newton_solver(problem, linearSolver);
6868
solver.setStopCriterion(pnlins::Stop::WhenAbsolutel2NormOfGradientBelowTolerance);
6969
solver.setStopTolerance(1e-5);
7070

@@ -77,7 +77,8 @@ int main()
7777
const auto Nsteps = pressio::ode::StepCount(tf/dt);
7878

7979
auto runtimeStart = std::chrono::high_resolution_clock::now();
80-
pode::advance_n_steps(problem, reducedState, 0.0, dt, Nsteps, Obs, solver);
80+
auto policy = pressio::ode::steps_fixed_dt(0., Nsteps, dt);
81+
pressio::ode::advance(problem, reducedState, policy, solver, Obs);
8182
auto runtimeEnd = std::chrono::high_resolution_clock::now();
8283
std::chrono::duration<double, std::milli> duration = runtimeEnd - runtimeStart;
8384
Obs_run(duration.count() * 1e-3);

0 commit comments

Comments
 (0)