1 #include "unsteady_reduced_order.h" 2 #include "flow_solver/flow_solver.h" 3 #include "flow_solver/flow_solver_factory.h" 4 #include "ode_solver/ode_solver_factory.h" 5 #include "reduced_order/pod_basis_online.h" 9 template<
int dim,
int nstate>
11 const dealii::ParameterHandler ¶meter_handler_input)
13 , parameter_handler(parameter_handler_input)
16 template<
int dim,
int nstate>
19 pcout <<
"Starting unsteady reduced-order test..." << std::endl;
24 flow_solver_full_order->run();
34 const int modes = flow_solver_galerkin->ode_solver->pod->getPODBasis()->n();
35 flow_solver_galerkin->run();
37 dealii::LinearAlgebra::distributed::Vector<double> full_order_solution(flow_solver_full_order->dg->solution);
38 dealii::LinearAlgebra::distributed::Vector<double> galerkin_solution(flow_solver_galerkin->dg->solution);
40 const double galerkin_solution_error = ((galerkin_solution-=full_order_solution).l2_norm()/full_order_solution.l2_norm());
42 pcout <<
"Galerkin solution error: " << galerkin_solution_error << std::endl;
43 if (std::abs(galerkin_solution_error) > 6E-9) testfail = 1;
46 if (constexpr
int expected_modes = 7; modes != expected_modes) testfail = 1;
Files for the baseline physics.
const dealii::ParameterHandler & parameter_handler
Dummy parameter handler because flowsolver requires it.
Main parameter class that contains the various other sub-parameter classes.
bool allocate_matrix_dRdW
Flag to signal that automatic differentiation (AD) matrix dRdW must be allocated. ...
ODESolverParam ode_solver_param
Contains parameters for ODE solver.
static std::unique_ptr< FlowSolver< dim, nstate > > select_flow_case(const Parameters::AllParameters *const parameters_input, const dealii::ParameterHandler ¶meter_handler_input)
Factory to return the correct flow solver given input file.
const Parameters::AllParameters *const all_parameters
Pointer to all parameters.
ODESolverEnum ode_solver_type
ODE solver type.
Unsteady POD reduced order test, verifies consistency of solution and implementation of threshold fun...
dealii::ConditionalOStream pcout
ConditionalOStream.
UnsteadyReducedOrder(const Parameters::AllParameters *const parameters_input, const dealii::ParameterHandler ¶meter_handler_input)
Constructor.
Base class of all the tests.
int run_test() const override
Run Unsteady POD reduced order.