[P]arallel [Hi]gh-order [Li]brary for [P]DEs  Latest
Parallel High-Order Library for PDEs through hp-adaptive Discontinuous Galerkin methods
PHiLiP::Parameters::ODESolverParam Class Reference

Parameters related to the ODE solver. More...

#include <parameters_ode_solver.h>

Collaboration diagram for PHiLiP::Parameters::ODESolverParam:

Public Types

enum  ODESolverEnum {
  runge_kutta_solver, low_storage_runge_kutta_solver, implicit_solver, rrk_explicit_solver,
  pod_galerkin_solver, pod_petrov_galerkin_solver, hyper_reduced_petrov_galerkin_solver, pod_galerkin_runge_kutta_solver
}
 Types of ODE solver. More...
 
enum  RKMethodEnum {
  rk4_ex, ssprk3_ex, heun2_ex, euler_ex,
  euler_im, dirk_2_im, dirk_3_im, RK4_3_5_3SStar,
  RK3_2_5F_3SStarPlus, RK4_3_9F_3SStarPlus, RK5_4_10F_3SStarPlus
}
 Types of RK method (i.e., unique Butcher tableau) More...
 

Public Member Functions

void parse_parameters (dealii::ParameterHandler &prm)
 Parses input file and sets the variables.
 

Static Public Member Functions

static void declare_parameters (dealii::ParameterHandler &prm)
 Declares the possible variables and sets the defaults.
 

Public Attributes

OutputEnum ode_output
 verbose or quiet.
 
ODESolverEnum ode_solver_type
 ODE solver type.
 
double atol
 Absolute tolerance.
 
double rtol
 Relative tolerance.
 
double beta1
 First value for beta controller;.
 
double beta2
 Second value for beta controller;.
 
double beta3
 Third value for beta controller;.
 
int output_solution_every_x_steps
 Outputs the solution every x steps to .vtk file.
 
double output_solution_every_dt_time_intervals
 Outputs the solution every dt time intervals to .vtk file.
 
bool output_solution_at_fixed_times
 Flag for outputting solution at fixed times.
 
std::string output_solution_fixed_times_string
 String of fixed solution output times.
 
unsigned int number_of_fixed_times_to_output_solution
 Number of fixed times to output the solution.
 
bool output_solution_at_exact_fixed_times
 Flag for outputting the solution at exact fixed times by decreasing the time step on the fly.
 
unsigned int nonlinear_max_iterations
 Maximum number of iterations.
 
unsigned int print_iteration_modulo
 If ode_output==verbose, print every print_iteration_modulo iterations.
 
bool output_final_steady_state_solution_to_file
 Output final steady state solution to file.
 
std::string steady_state_final_solution_filename
 Filename to write final steady state solution.
 
double nonlinear_steady_residual_tolerance
 Tolerance to determine steady-state convergence.
 
double initial_time_step
 Time step used in ODE solver.
 
double time_step_factor_residual
 Multiplies initial time-step by time_step_factor_residual*(-log10(residual_norm_decrease))
 
double time_step_factor_residual_exp
 Scales initial time step by pow(time_step_factor_residual*(-log10(residual_norm_decrease)),time_step_factor_residual_exp)
 
bool output_ode_solver_steady_state_convergence_table
 
double initial_time
 Initial time at which we initialize the ODE solver with.
 
unsigned int initial_iteration
 Initial iteration at which we initialize the ODE solver with.
 
double initial_desired_time_for_output_solution_every_dt_time_intervals
 
RKMethodEnum runge_kutta_method
 Runge-kutta method.
 
int n_rk_stages
 Number of stages for an RK method; assigned based on runge_kutta_method.
 
int rk_order
 Order of the RK method; assigned based on runge_kutta_method.
 
int num_delta
 Number of delta values in low-storage RK methods.
 
bool is_3Sstarplus
 True or false depending on what low-storage RK method is used.
 
bool allocate_matrix_dRdW
 Flag to signal that automatic differentiation (AD) matrix dRdW must be allocated.
 
OutputEnum rrk_root_solver_output
 Do output for root solving routine.
 
double relaxation_runge_kutta_root_tolerance
 Tolerance for RRK root solver, default value 5E-10.
 

Detailed Description

Parameters related to the ODE solver.

Definition at line 11 of file parameters_ode_solver.h.

Member Enumeration Documentation

◆ ODESolverEnum

Types of ODE solver.

Enumerator
low_storage_runge_kutta_solver 

Runge-Kutta (RK), explicit or diagonally implicit.

implicit_solver 

Low Storage Runge-Kutta.

rrk_explicit_solver 

Backward-Euler.

pod_galerkin_solver 

Explicit RK using the relaxation Runge-Kutta method (Ketcheson, 2019)

pod_petrov_galerkin_solver 

Proper Orthogonal Decomposition with Galerkin projection.

hyper_reduced_petrov_galerkin_solver 

Proper Orthogonal Decomposition with Petrov-Galerkin projection (LSPG)

pod_galerkin_runge_kutta_solver 

Proper Orthogonal Decomposition with Petrov-Galerkin projection (LSPG) and ECSW Hyper-reduction.

Proper Orthogonal Decomposition with Galerkin projection Runge Kutta (RK) explicit

Definition at line 15 of file parameters_ode_solver.h.

◆ RKMethodEnum

Types of RK method (i.e., unique Butcher tableau)

Enumerator
ssprk3_ex 

Classical fourth-order RK.

heun2_ex 

Third-order strong-stability preserving.

euler_ex 

Heun's method (second order explicit trapezoidal; SSP)

euler_im 

Forward Euler.

dirk_2_im 

Implicit Euler.

dirk_3_im 

Second-order diagonally-implicit RK.

RK4_3_5_3SStar 

Third-order diagonally-implicit RK.

RK3_2_5F_3SStarPlus 

Fourth-order, three register low-storage Runge-Kutta method.

RK4_3_9F_3SStarPlus 

Third-order, FSAL, three register low-storage Runge-Kutta method with a fourth register for an error estimate.

RK5_4_10F_3SStarPlus 

Fourth-order, FSAL, three register low-storage Runge-Kutta method with a fourth register for an error estimate.

Fifth-order, FSAL, three register low-storage Runge-Kutta method with a fourth register for an error estimate

Definition at line 65 of file parameters_ode_solver.h.

Member Data Documentation

◆ initial_desired_time_for_output_solution_every_dt_time_intervals

double PHiLiP::Parameters::ODESolverParam::initial_desired_time_for_output_solution_every_dt_time_intervals

Initial desired time for outputting the solution every dt time intervals at which we initialize the ODE solver with.

Definition at line 62 of file parameters_ode_solver.h.

◆ output_ode_solver_steady_state_convergence_table

bool PHiLiP::Parameters::ODESolverParam::output_ode_solver_steady_state_convergence_table

Set as false by default. If true, writes the linear solver convergence data for steady state to a file named "ode_solver_steady_state_convergence_data_table.txt"

Definition at line 56 of file parameters_ode_solver.h.


The documentation for this class was generated from the following files: