@@ -504,8 +504,7 @@ class SubdomainLSPG: public SubdomainROM<mesh_t, app_type, prob_t>
504504 using linsolver_t = pressio::linearsolvers::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 stepper_t = decltype (std::declval<problem_t >().lspgStepper());
508- using nonlinsolver_t = decltype (pressio::create_gauss_newton_solver(std::declval<stepper_t &>(), std::declval<linsolver_t &>()));
507+ using nonlinsolver_t = decltype (pressio::create_gauss_newton_solver(std::declval<problem_t &>(), std::declval<linsolver_t &>()));
509508
510509public:
511510
@@ -528,9 +527,8 @@ class SubdomainLSPG: public SubdomainROM<mesh_t, app_type, prob_t>
528527 probId, odeScheme, fluxOrder, icflag, icFileRoot, userParams,
529528 transRoot, basisRoot, nmodes)
530529 , m_problem(plspg::create_unsteady_problem(odeScheme, this ->m_trialSpace, *(this ->m_app)))
531- , m_stepper(m_problem.lspgStepper())
532530 , m_linSolverObj(std::make_shared<linsolver_t >())
533- , m_nonlinSolver(pressio::create_gauss_newton_solver(m_stepper , *m_linSolverObj))
531+ , m_nonlinSolver(pressio::create_gauss_newton_solver(m_problem , *m_linSolverObj))
534532 {
535533
536534 m_nonlinSolver.setStopCriterion (pressio::nonlinearsolvers::Stop::WhenAbsolutel2NormOfCorrectionBelowTolerance);
@@ -539,12 +537,11 @@ class SubdomainLSPG: public SubdomainROM<mesh_t, app_type, prob_t>
539537 }
540538
541539 void doStep (pode::StepStartAt<double > startTime, pode::StepCount step, pode::StepSize<double > dt) final {
542- m_stepper (this ->m_stateReduced , startTime, step, dt, m_nonlinSolver);
540+ m_problem (this ->m_stateReduced , startTime, step, dt, m_nonlinSolver);
543541 }
544542
545543private:
546544 problem_t m_problem;
547- stepper_t m_stepper;
548545 std::shared_ptr<linsolver_t > m_linSolverObj;
549546 nonlinsolver_t m_nonlinSolver;
550547};
@@ -848,13 +845,11 @@ class SubdomainLSPGHyper: public SubdomainHyper<mesh_t, app_type, prob_t>
848845 std::declval<app_t &>(),
849846 std::declval<updaterHyp_t&>()));
850847
851- using stepperHyp_t = std::remove_reference_t <
852- decltype (std::declval<problemHyp_t>().lspgStepper())>;
853848 using tag_t = pressio::nonlinearsolvers::impl::CompactWeightedGaussNewtonNormalEqTag;
854849
855850 using nonlinsolverHyp_t =
856851 decltype (pressio::create_gauss_newton_solver(
857- std::declval<stepperHyp_t &>(),
852+ std::declval<problemHyp_t &>(),
858853 std::declval<linsolver_t &>(),
859854 std::declval<weigh_t &>(),
860855 std::declval<tag_t >()
@@ -892,7 +887,7 @@ class SubdomainLSPGHyper: public SubdomainHyper<mesh_t, app_type, prob_t>
892887 }
893888
894889 void doStep (pode::StepStartAt<double > startTime, pode::StepCount step, pode::StepSize<double > dt) final {
895- (*m_stepperHyper )(this ->m_stateReduced , startTime, step, dt, *m_nonlinSolverHyper);
890+ (*m_problemHyper )(this ->m_stateReduced , startTime, step, dt, *m_nonlinSolverHyper);
896891 }
897892
898893 // Again, this has to be done because the hyper-reduced mesh
@@ -915,8 +910,6 @@ class SubdomainLSPGHyper: public SubdomainHyper<mesh_t, app_type, prob_t>
915910 *(this ->m_appHyper ),
916911 *m_updaterHyper));
917912
918- m_stepperHyper = &(m_problemHyper->lspgStepper ());
919-
920913 m_linSolverObjHyper = std::make_shared<linsolver_t >();
921914 m_tag = std::make_shared<tag_t >();
922915
@@ -932,7 +925,7 @@ class SubdomainLSPGHyper: public SubdomainHyper<mesh_t, app_type, prob_t>
932925
933926 m_nonlinSolverHyper = std::make_shared<nonlinsolverHyp_t>(
934927 pressio::create_gauss_newton_solver (
935- *m_stepperHyper , *m_linSolverObjHyper, *m_weigher, *m_tag
928+ *m_problemHyper , *m_linSolverObjHyper, *m_weigher, *m_tag
936929 )
937930 );
938931
@@ -948,7 +941,6 @@ class SubdomainLSPGHyper: public SubdomainHyper<mesh_t, app_type, prob_t>
948941 int m_nmodes_gpod;
949942 std::shared_ptr<updaterHyp_t> m_updaterHyper;
950943 std::shared_ptr<problemHyp_t> m_problemHyper;
951- stepperHyp_t * m_stepperHyper;
952944 std::shared_ptr<linsolver_t > m_linSolverObjHyper;
953945 std::shared_ptr<weigh_t > m_weigher;
954946 std::shared_ptr<tag_t > m_tag;
0 commit comments