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

Class for implementation of a TVD/TVB limiter derived from BoundPreservingLimiterState class. More...

#include <tvb_limiter.h>

Inheritance diagram for PHiLiP::TVBLimiter< dim, nstate, real >:
Collaboration diagram for PHiLiP::TVBLimiter< dim, nstate, real >:

Public Member Functions

 TVBLimiter (const Parameters::AllParameters *const parameters_input)
 Constructor.
 
 ~TVBLimiter ()=default
 Destructor.
 
void limit (dealii::LinearAlgebra::distributed::Vector< double > &solution, const dealii::DoFHandler< dim > &dof_handler, const dealii::hp::FECollection< dim > &fe_collection, const dealii::hp::QCollection< dim > &volume_quadrature_collection, const unsigned int grid_degree, const unsigned int max_degree, const dealii::hp::FECollection< 1 > oneD_fe_collection_1state, const dealii::hp::QCollection< 1 > oneD_quadrature_collection)
 
- Public Member Functions inherited from PHiLiP::BoundPreservingLimiterState< dim, nstate, real >
 BoundPreservingLimiterState (const Parameters::AllParameters *const parameters_input)
 Constructor.
 
 ~BoundPreservingLimiterState ()=default
 Destructor.
 
std::array< real, nstateget_soln_cell_avg (const std::array< std::vector< real >, nstate > &soln_at_q, const unsigned int n_quad_pts, const std::vector< real > &quad_weights)
 Function to obtain the solution cell average.
 
- Public Member Functions inherited from PHiLiP::BoundPreservingLimiter< dim, real >
 BoundPreservingLimiter (const int nstate_input, const Parameters::AllParameters *const parameters_input)
 Constructor.
 
 ~BoundPreservingLimiter ()=default
 Destructor.
 

Private Member Functions

std::array< std::vector< real >, nstatelimit_cell (std::array< std::vector< real >, nstate > soln_at_q, const unsigned int n_quad_pts, const std::array< real, nstate > prev_cell_avg, const std::array< real, nstate > soln_cell_avg, const std::array< real, nstate > next_cell_avg, const std::array< real, nstate > M, const double h)
 Function to limit cell - apply minmod function, obtain theta (linear scaling value) and apply limiter.
 
std::array< real, nstateget_neighbour_cell_avg (const dealii::LinearAlgebra::distributed::Vector< double > &solution, const dealii::hp::FECollection< dim > &fe_collection, const dealii::hp::QCollection< dim > &volume_quadrature_collection, OPERATOR::basis_functions< dim, 2 *dim, real > soln_basis, const int poly_degree, const std::vector< dealii::types::global_dof_index > &neigh_dofs_indices, const unsigned int n_dofs_neigh_cell)
 Function to obtain the neighbour cell average.
 
std::array< real, nstateget_current_cell_avg (std::array< std::vector< real >, nstate > soln_at_q, const unsigned int n_quad_pts, const std::vector< real > &quad_weights)
 Function to obtain the current cell average.
 
real apply_modified_minmod (const double a_state, const double M_state, const double h, const double diff_next_state, const double diff_prev_state, const double cell_avg_state, const bool left_face)
 Function to apply modified_minmod using Thm3.7 in Chen, Shu 2017.
 

Additional Inherited Members

- Public Attributes inherited from PHiLiP::BoundPreservingLimiter< dim, real >
const int nstate
 Number of states.
 
const Parameters::AllParameters *const all_parameters
 Pointer to parameters object.
 

Detailed Description

template<int dim, int nstate, typename real>
class PHiLiP::TVBLimiter< dim, nstate, real >

Class for implementation of a TVD/TVB limiter derived from BoundPreservingLimiterState class.

Definition at line 15 of file tvb_limiter.h.

Member Function Documentation

◆ limit()

template<int dim, int nstate, typename real >
void PHiLiP::TVBLimiter< dim, nstate, real >::limit ( dealii::LinearAlgebra::distributed::Vector< double > &  solution,
const dealii::DoFHandler< dim > &  dof_handler,
const dealii::hp::FECollection< dim > &  fe_collection,
const dealii::hp::QCollection< dim > &  volume_quadrature_collection,
const unsigned int  grid_degree,
const unsigned int  max_degree,
const dealii::hp::FECollection< 1 >  oneD_fe_collection_1state,
const dealii::hp::QCollection< 1 >  oneD_quadrature_collection 
)
virtual

Applies total variation bounded limiter to the solution. Using Chen,Shu September 2017 Thm3.7 we apply a limiter on the solution

Implements PHiLiP::BoundPreservingLimiterState< dim, nstate, real >.

Definition at line 174 of file tvb_limiter.cpp.


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