[P]arallel [Hi]gh-order [Li]brary for [P]DEs  Latest
Parallel High-Order Library for PDEs through hp-adaptive Discontinuous Galerkin methods
PHiLiP::ODE::RootFindingRRKODESolver< dim, real, MeshType > Class Template Reference

#include <root_finding_rrk_ode_solver.h>

Inheritance diagram for PHiLiP::ODE::RootFindingRRKODESolver< dim, real, MeshType >:
Collaboration diagram for PHiLiP::ODE::RootFindingRRKODESolver< dim, real, MeshType >:

Public Member Functions

 RootFindingRRKODESolver (std::shared_ptr< RKTableauBase< dim, real, MeshType >> rk_tableau_input)
 Default constructor that will set the constants.
 
- Public Member Functions inherited from PHiLiP::ODE::RRKODESolverBase< dim, real, MeshType >
 RRKODESolverBase (std::shared_ptr< RKTableauBase< dim, real, MeshType >> rk_tableau_input)
 Constructor.
 
- Public Member Functions inherited from PHiLiP::ODE::RKNumEntropy< dim, real, MeshType >
 RKNumEntropy (std::shared_ptr< RKTableauBase< dim, real, MeshType >> rk_tableau_input)
 Default constructor that will set the constants.
 
real compute_FR_entropy_contribution (const real dt, std::shared_ptr< DGBase< dim, real, MeshType >> dg, const std::vector< dealii::LinearAlgebra::distributed::Vector< double >> &rk_stage, const bool compute_K_norm) const override
 Calculate FR entropy adjustment. More...
 
- Public Member Functions inherited from PHiLiP::ODE::EmptyRRKBase< dim, real, MeshType >
 EmptyRRKBase (std::shared_ptr< RKTableauBase< dim, real, MeshType >>)
 Default constructor that will set the constants.
 

Protected Member Functions

real compute_relaxation_parameter (const real dt, std::shared_ptr< DGBase< dim, real, MeshType >> dg, const std::vector< dealii::LinearAlgebra::distributed::Vector< double >> &rk_stage, const dealii::LinearAlgebra::distributed::Vector< double > &solution_update) override
 
real compute_root_function (const double gamma, const dealii::LinearAlgebra::distributed::Vector< double > &u_n, const dealii::LinearAlgebra::distributed::Vector< double > &d, const double eta_n, const double e, std::shared_ptr< DGBase< dim, real, MeshType >> dg) const
 Compute the remainder of the root function Ranocha 2020 Eq. 2.4.
 
real compute_numerical_entropy (const dealii::LinearAlgebra::distributed::Vector< double > &u, std::shared_ptr< DGBase< dim, real, MeshType >> dg) const
 Compute numerical entropy.
 
real compute_integrated_numerical_entropy (const dealii::LinearAlgebra::distributed::Vector< double > &u, std::shared_ptr< DGBase< dim, real, MeshType >> dg) const
 Compute numerical entropy by integrating over quadrature points.
 
real compute_entropy_change_estimate (const real dt, std::shared_ptr< DGBase< dim, real, MeshType >> dg, const std::vector< dealii::LinearAlgebra::distributed::Vector< double >> &rk_stage, const bool use_M_norm_for_entropy_change_est=true) const
 Compute the estimated entropy change during a timestep.
 
- Protected Member Functions inherited from PHiLiP::ODE::RRKODESolverBase< dim, real, MeshType >
real update_relaxation_parameter (const real dt, std::shared_ptr< DGBase< dim, real, MeshType >> dg, const std::vector< dealii::LinearAlgebra::distributed::Vector< double >> &rk_stage, const dealii::LinearAlgebra::distributed::Vector< double > &solution_update) override
 
- Protected Member Functions inherited from PHiLiP::ODE::RKNumEntropy< dim, real, MeshType >
void store_stage_solutions (const int istage, const dealii::LinearAlgebra::distributed::Vector< double > rk_stage_i) override
 Update stored quantities at the current stage. More...
 
dealii::LinearAlgebra::distributed::Vector< double > compute_entropy_vars (const dealii::LinearAlgebra::distributed::Vector< double > &u, std::shared_ptr< DGBase< dim, real, MeshType >> dg) const
 Return the entropy variables from a solution vector u.
 

Private Attributes

real FR_entropy_cumulative = 0
 Storing cumulative entropy change for output.
 

Additional Inherited Members

- Public Attributes inherited from PHiLiP::ODE::RRKODESolverBase< dim, real, MeshType >
real relaxation_parameter = 1.0
 Relaxation Runge-Kutta parameter gamma^n. More...
 
- Protected Attributes inherited from PHiLiP::ODE::RKNumEntropy< dim, real, MeshType >
std::shared_ptr< RKTableauBase< dim, real, MeshType > > butcher_tableau
 Store pointer to RK tableau.
 
const int n_rk_stages
 Number of RK stages.
 
const MPI_Comm mpi_communicator
 MPI communicator.
 
const int mpi_rank
 MPI rank.
 
dealii::ConditionalOStream pcout
 Parallel std::cout that only outputs on mpi_rank==0.
 
std::vector< dealii::LinearAlgebra::distributed::Vector< double > > rk_stage_solution
 Storage for the solution at each Runge-Kutta stage. More...
 

Detailed Description

template<int dim, typename real, typename MeshType = dealii::parallel::distributed::Triangulation<dim>>
class PHiLiP::ODE::RootFindingRRKODESolver< dim, real, MeshType >

Relaxation Runge-Kutta ODE solver, calculating the relaxation parameter as in Ranocha 2020 see Ranocha, Hendrik, et al. "Relaxation Runge–Kutta methods: Fully discrete explicit entropy-stable schemes for the compressible Euler and Navier–Stokes equations." SIAM Journal on Scientific Computing 42.2 (2020): A612-A638.

Definition at line 20 of file root_finding_rrk_ode_solver.h.

Member Function Documentation

◆ compute_relaxation_parameter()

template<int dim, typename real , typename MeshType >
real PHiLiP::ODE::RootFindingRRKODESolver< dim, real, MeshType >::compute_relaxation_parameter ( const real  dt,
std::shared_ptr< DGBase< dim, real, MeshType >>  dg,
const std::vector< dealii::LinearAlgebra::distributed::Vector< double >> &  rk_stage,
const dealii::LinearAlgebra::distributed::Vector< double > &  solution_update 
)
overrideprotectedvirtual

Compute relaxation parameter numerically (i.e. if energy is NOT the entropy variable) See Ranocha 2020, Eq. 2.4

Implements PHiLiP::ODE::RRKODESolverBase< dim, real, MeshType >.

Definition at line 16 of file root_finding_rrk_ode_solver.cpp.


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