|
[P]arallel [Hi]gh-order [Li]brary for [P]DEs
Latest
Parallel High-Order Library for PDEs through hp-adaptive Discontinuous Galerkin methods
|
Class for implementation of Maximum-Principle-Satisfying limiter derived from BoundPreservingLimiterState class. More...
#include <maximum_principle_limiter.h>
Public Member Functions | |
| MaximumPrincipleLimiter (const Parameters::AllParameters *const parameters_input) | |
| Constructor. | |
| ~MaximumPrincipleLimiter ()=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, double dt) override |
Public Member Functions inherited from PHiLiP::BoundPreservingLimiterState< dim, nstate, real > | |
| BoundPreservingLimiterState (const Parameters::AllParameters *const parameters_input) | |
| Constructor. | |
| ~BoundPreservingLimiterState ()=default | |
| Destructor. | |
| std::array< real, nstate > | get_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. | |
Public Attributes | |
| std::vector< real > | global_max |
| Maximum of initial solution for each state in domain. | |
| std::vector< real > | global_min |
| Minimum of initial solution for each state in domain. | |
| std::shared_ptr< BoundPreservingLimiter< dim, real > > | tvbLimiter |
| Pointer to TVB limiter class (TVB limiter can be applied in conjunction with this limiter) | |
Public Attributes inherited from PHiLiP::BoundPreservingLimiter< dim, real > | |
| const int | nstate |
| Number of states. | |
| const Parameters::AllParameters *const | all_parameters |
| Pointer to parameters object. | |
Private Member Functions | |
| void | get_global_max_and_min_of_solution (const dealii::LinearAlgebra::distributed::Vector< double > &solution, const dealii::DoFHandler< dim > &dof_handler, const dealii::hp::FECollection< dim > &fe_collection) |
| Function to obtain the maximum and minimum of the initial solution for each state. | |
| void | write_limited_solution (dealii::LinearAlgebra::distributed::Vector< double > &solution, const std::array< std::vector< real >, nstate > &soln_coeff, const unsigned int n_shape_fns, const std::vector< dealii::types::global_dof_index > ¤t_dofs_indices) |
Class for implementation of Maximum-Principle-Satisfying limiter derived from BoundPreservingLimiterState class.
Definition at line 14 of file maximum_principle_limiter.h.
|
overridevirtual |
Applies maximum-principle-satisfying limiter to the solution. Using Zhang,Shu May 2010 Eq 3.8 and 3.9 we apply a limiter on the global solution
Implements PHiLiP::BoundPreservingLimiterState< dim, nstate, real >.
Definition at line 107 of file maximum_principle_limiter.cpp.
|
private |
Function to verify the limited solution satisfies the strict maximum principle and write back limited solution
Definition at line 82 of file maximum_principle_limiter.cpp.