|
[P]arallel [Hi]gh-order [Li]brary for [P]DEs
Latest
Parallel High-Order Library for PDEs through hp-adaptive Discontinuous Galerkin methods
|
DGWeak class templated on the number of state variables. More...
#include <weak_dg.hpp>
Public Member Functions | |
| DGWeak (const Parameters::AllParameters *const parameters_input, const unsigned int degree, const unsigned int max_degree_input, const unsigned int grid_degree_input, const std::shared_ptr< Triangulation > triangulation_input) | |
| Constructor. | |
| template<typename adtype > | |
| void | build_volume_metric_operators (const unsigned int, const unsigned int, const std::vector< adtype > &, OPERATOR::metric_operators< adtype, dim, 2 *dim > &, OPERATOR::mapping_shape_functions< dim, 2 *dim > &, std::array< std::vector< adtype >, dim > &) |
| < Parallel std::cout that only outputs on mpi_rank==0 More... | |
| void | build_volume_metric_operators (const unsigned int poly_degree, const unsigned int grid_degree, const std::vector< double > &metric_coeffs, OPERATOR::metric_operators< double, dim, 2 *dim > &metric_oper, OPERATOR::mapping_shape_functions< dim, 2 *dim > &mapping_basis, std::array< std::vector< double >, dim > &mapping_support_points) |
| Builds volume metric operators (metric cofactor and determinant of metric Jacobian). Does nothing for weak DG. For double type. | |
| void | build_volume_metric_operators (const unsigned int poly_degree, const unsigned int grid_degree, const std::vector< codi_JacobianComputationType > &metric_coeffs, OPERATOR::metric_operators< codi_JacobianComputationType, dim, 2 *dim > &metric_oper, OPERATOR::mapping_shape_functions< dim, 2 *dim > &mapping_basis, std::array< std::vector< codi_JacobianComputationType >, dim > &mapping_support_points) |
| Builds volume metric operators (metric cofactor and determinant of metric Jacobian). Does nothing for weak DG. For codi_JacobianComputationType. | |
| void | build_volume_metric_operators (const unsigned int poly_degree, const unsigned int grid_degree, const std::vector< codi_HessianComputationType > &metric_coeffs, OPERATOR::metric_operators< codi_HessianComputationType, dim, 2 *dim > &metric_oper, OPERATOR::mapping_shape_functions< dim, 2 *dim > &mapping_basis, std::array< std::vector< codi_HessianComputationType >, dim > &mapping_support_points) |
| Builds volume metric operators (metric cofactor and determinant of metric Jacobian). Does nothing for weak DG. For codi_HessianComputationType. | |
Public Member Functions inherited from PHiLiP::DGBaseState< dim, nspecies, nstate, real, MeshType > | |
| DGBaseState (const Parameters::AllParameters *const parameters_input, const unsigned int degree, const unsigned int max_degree_input, const unsigned int grid_degree_input, const std::shared_ptr< Triangulation > triangulation_input) | |
| < Input parameters. More... | |
| void | set_physics (std::shared_ptr< Physics::PhysicsBase< dim, nspecies, nstate, real > > pde_physics_double_input, std::shared_ptr< Physics::PhysicsBase< dim, nspecies, nstate, FadType > > pde_physics_fad_input, std::shared_ptr< Physics::PhysicsBase< dim, nspecies, nstate, RadType > > pde_physics_rad_input, std::shared_ptr< Physics::PhysicsBase< dim, nspecies, nstate, FadFadType > > pde_physics_fad_fad_input, std::shared_ptr< Physics::PhysicsBase< dim, nspecies, nstate, RadFadType > > pde_physics_rad_fad_input) |
| virtual void | allocate_model_variables () |
| Allocate the necessary variables declared in src/physics/model.h. | |
| virtual void | update_model_variables () |
| Update the necessary variables declared in src/physics/model.h. | |
| void | set_unsteady_model_time_step (const double time_step) |
| Set the necessary unsteady variables declared in src/physics/model.h. | |
| void | set_use_auxiliary_eq () |
| Set use_auxiliary_eq flag. | |
| void | set_store_vol_flux_nodes () |
| Set store_vol_flux_nodes flag. | |
| void | set_store_surf_flux_nodes () |
| Set store_surf_flux_nodes flag. | |
Public Member Functions inherited from PHiLiP::DGBase< dim, nspecies, real, MeshType > | |
| virtual | ~DGBase ()=default |
| Destructor. | |
| DGBase (const int nstate_input, const Parameters::AllParameters *const parameters_input, const unsigned int degree, const unsigned int max_degree_input, const unsigned int grid_degree_input, const std::shared_ptr< Triangulation > triangulation_input) | |
| Principal constructor that will call delegated constructor. More... | |
| void | reinit () |
| Reinitializes the DG object after a change of triangulation. More... | |
| DGBase (const int nstate_input, const Parameters::AllParameters *const parameters_input, const unsigned int degree, const unsigned int max_degree_input, const unsigned int grid_degree_input, const std::shared_ptr< Triangulation > triangulation_input, const MassiveCollectionTuple collection_tuple) | |
| Delegated constructor that initializes collections. More... | |
| void | set_high_order_grid (std::shared_ptr< HighOrderGrid< dim, real, MeshType >> new_high_order_grid) |
| Sets the associated high order grid with the provided one. | |
| void | set_all_cells_fe_degree (const unsigned int degree) |
| Refers to a collection Mappings, which represents the high-order grid. More... | |
| unsigned int | get_max_fe_degree () |
| Gets the maximum value of currently active FE degree. | |
| unsigned int | get_min_fe_degree () |
| Gets the minimum value of currently active FE degree. | |
| dealii::Point< dim > | coordinates_of_highest_refined_cell (bool check_for_p_refined_cell=false) |
| Returns the coordinates of the most refined cell. | |
| virtual void | allocate_system (const bool compute_dRdW=true, const bool compute_dRdX=true, const bool compute_d2R=true) |
| Allocates the system. More... | |
| void | time_scale_solution_update (dealii::LinearAlgebra::distributed::Vector< double > &solution_update, const real CFL) const |
| Scales a solution update with the appropriate maximum time step. More... | |
| void | time_scaled_mass_matrices (const real scale) |
| void | reinit_operators_for_cell_residual_loop (const unsigned int poly_degree_int, const unsigned int poly_degree_ext, const unsigned int grid_degree, OPERATOR::basis_functions< dim, 2 *dim > &soln_basis_int, OPERATOR::basis_functions< dim, 2 *dim > &soln_basis_ext, OPERATOR::basis_functions< dim, 2 *dim > &flux_basis_int, OPERATOR::basis_functions< dim, 2 *dim > &flux_basis_ext, OPERATOR::local_basis_stiffness< dim, 2 *dim > &flux_basis_stiffness, OPERATOR::vol_projection_operator< dim, 2 *dim > &soln_basis_projection_oper_int, OPERATOR::vol_projection_operator< dim, 2 *dim > &soln_basis_projection_oper_ext, OPERATOR::mapping_shape_functions< dim, 2 *dim > &mapping_basis) |
| Builds needed operators for cell residual loop. | |
| void | reinit_operators_for_mass_matrix (const bool Cartesian_element, const unsigned int poly_degree, const unsigned int grid_degree, OPERATOR::mapping_shape_functions< dim, 2 *dim > &mapping_basis, OPERATOR::basis_functions< dim, 2 *dim > &basis, OPERATOR::local_mass< dim, 2 *dim > &reference_mass_matrix, OPERATOR::local_Flux_Reconstruction_operator< dim, 2 *dim > &reference_FR, OPERATOR::local_Flux_Reconstruction_operator_aux< dim, 2 *dim > &reference_FR_aux, OPERATOR::derivative_p< dim, 2 *dim > &deriv_p) |
| Builds needed operators to compute mass matrices/inverses efficiently. | |
| void | evaluate_mass_matrices (bool do_inverse_mass_matrix=false) |
| Allocates and evaluates the mass matrices for the entire grid. | |
| void | evaluate_local_metric_dependent_mass_matrix_and_set_in_global_mass_matrix (const bool Cartesian_element, const bool do_inverse_mass_matrix, const unsigned int poly_degree, const unsigned int curr_grid_degree, const unsigned int n_quad_pts, const unsigned int n_dofs_cell, const std::vector< dealii::types::global_dof_index > dofs_indices, OPERATOR::metric_operators< real, dim, 2 *dim > &metric_oper, OPERATOR::basis_functions< dim, 2 *dim > &basis, OPERATOR::local_mass< dim, 2 *dim > &reference_mass_matrix, OPERATOR::local_Flux_Reconstruction_operator< dim, 2 *dim > &reference_FR, OPERATOR::local_Flux_Reconstruction_operator_aux< dim, 2 *dim > &reference_FR_aux, OPERATOR::derivative_p< dim, 2 *dim > &deriv_p) |
| Evaluates the metric dependent local mass matrices and inverses, then sets them in the global matrices. | |
| void | apply_inverse_global_mass_matrix (const dealii::LinearAlgebra::distributed::Vector< double > &input_vector, dealii::LinearAlgebra::distributed::Vector< double > &output_vector, const bool use_auxiliary_eq=false) |
| Applies the inverse of the local metric dependent mass matrices when the global is not stored. More... | |
| void | apply_global_mass_matrix (const dealii::LinearAlgebra::distributed::Vector< double > &input_vector, dealii::LinearAlgebra::distributed::Vector< double > &output_vector, const bool use_auxiliary_eq=false, const bool use_unmodified_mass_matrix=false) |
| Applies the local metric dependent mass matrices when the global is not stored. More... | |
| std::vector< real > | evaluate_time_steps (const bool exact_time_stepping) |
| Evaluates the maximum stable time step. More... | |
| void | add_mass_matrices (const real scale) |
| Add mass matrices to the system scaled by a factor (likely time-step) More... | |
| void | add_time_scaled_mass_matrices () |
| Add time scaled mass matrices to the system. More... | |
| double | get_residual_l2norm () const |
| Returns the L2-norm of the right_hand_side vector. | |
| double | get_residual_linfnorm () const |
| Returns the Linf-norm of the right_hand_side vector. | |
| unsigned int | n_dofs () const |
| Number of degrees of freedom. | |
| void | set_anisotropic_flags () |
| Set anisotropic flags based on jump indicator. More... | |
| template<typename real2 > | |
| real2 | discontinuity_sensor (const dealii::Quadrature< dim > &volume_quadrature, const std::vector< real2 > &soln_coeff_high, const dealii::FiniteElement< dim, dim > &fe_high, const std::vector< real2 > &jac_det) |
| void | set_dual (const dealii::LinearAlgebra::distributed::Vector< real > &dual_input) |
| Sets the stored dual variables used to compute the dual dotted with the residual Hessians. | |
| dealii::SparsityPattern | get_dRdX_sparsity_pattern () |
| Evaluate SparsityPattern of dRdX. | |
| dealii::SparsityPattern | get_dRdW_sparsity_pattern () |
| Evaluate SparsityPattern of dRdW. | |
| dealii::SparsityPattern | get_d2RdWdW_sparsity_pattern () |
| Evaluate SparsityPattern of the residual Hessian dual.d2RdWdW. | |
| dealii::SparsityPattern | get_d2RdXdX_sparsity_pattern () |
| Evaluate SparsityPattern of the residual Hessian dual.d2RdXdX. | |
| dealii::SparsityPattern | get_d2RdWdX_sparsity_pattern () |
| Evaluate SparsityPattern of the residual Hessian dual.d2RdXdW. | |
| dealii::SparsityPattern | get_dRdXs_sparsity_pattern () |
| Evaluate SparsityPattern of dRdXs. | |
| dealii::SparsityPattern | get_d2RdXsdXs_sparsity_pattern () |
| Evaluate SparsityPattern of the residual Hessian dual.d2RdXsdXs. | |
| dealii::SparsityPattern | get_d2RdWdXs_sparsity_pattern () |
| Evaluate SparsityPattern of the residual Hessian dual.d2RdXsdW. | |
| dealii::TrilinosWrappers::SparseMatrix | get_dRdX_finite_differences (dealii::SparsityPattern dRdX_sparsity_pattern) |
| Evaluate dRdX using finite-differences. | |
| void | initialize_manufactured_solution () |
| Virtual function defined in DG. | |
| void | output_results_vtk (const unsigned int cycle, const double current_time=0.0, const bool output_time_averaged_solution=false, const bool output_fluctuating_quantities=false) |
| Output solution. | |
| void | output_face_results_vtk (const unsigned int cycle, const double current_time=0.0, const bool output_time_averaged_solution=false, const bool output_fluctuating_quantities=false) |
| Output Euler face solution. | |
| void | assemble_residual (const bool compute_dRdW=false, const bool compute_dRdX=false, const bool compute_d2R=false, const double CFL_mass=0.0) |
| Main loop of the DG class. More... | |
| template<typename adtype > | |
| void | assemble_cell_residual_and_ad_derivatives (const dealii::TriaActiveIterator< dealii::DoFCellAccessor< dim, dim, false >> ¤t_cell, const dealii::TriaActiveIterator< dealii::DoFCellAccessor< dim, dim, false >> ¤t_metric_cell, const bool compute_dRdW, const bool compute_dRdX, const bool compute_d2R, dealii::hp::FEValues< dim, dim > &fe_values_collection_volume, dealii::hp::FEFaceValues< dim, dim > &fe_values_collection_face_int, dealii::hp::FEFaceValues< dim, dim > &fe_values_collection_face_ext, dealii::hp::FESubfaceValues< dim, dim > &fe_values_collection_subface, dealii::hp::FEValues< dim, dim > &fe_values_collection_volume_lagrange, OPERATOR::basis_functions< dim, 2 *dim > &soln_basis_int, OPERATOR::basis_functions< dim, 2 *dim > &soln_basis_ext, OPERATOR::basis_functions< dim, 2 *dim > &flux_basis_int, OPERATOR::basis_functions< dim, 2 *dim > &flux_basis_ext, OPERATOR::local_basis_stiffness< dim, 2 *dim > &flux_basis_stiffness, OPERATOR::vol_projection_operator< dim, 2 *dim > &soln_basis_projection_oper_int, OPERATOR::vol_projection_operator< dim, 2 *dim > &soln_basis_projection_oper_ext, OPERATOR::mapping_shape_functions< dim, 2 *dim > &mapping_basis, const bool compute_auxiliary_right_hand_side, dealii::LinearAlgebra::distributed::Vector< double > &rhs, std::array< dealii::LinearAlgebra::distributed::Vector< double >, dim > &rhs_aux) |
| Used in assemble_residual(). More... | |
| template<typename adtype > | |
| std::enable_if<!std::is_same< adtype, double >::value, void >::type | assemble_volume_codi_taped_derivatives_ad (typename dealii::DoFHandler< dim >::active_cell_iterator cell, const dealii::types::global_dof_index current_cell_index, const std::vector< dealii::types::global_dof_index > &soln_dofs_indices, const std::vector< dealii::types::global_dof_index > &metric_dof_indices, const unsigned int poly_degree, const unsigned int grid_degree, OPERATOR::basis_functions< dim, 2 *dim > &soln_basis, OPERATOR::basis_functions< dim, 2 *dim > &flux_basis, OPERATOR::local_basis_stiffness< dim, 2 *dim > &flux_basis_stiffness, OPERATOR::vol_projection_operator< dim, 2 *dim > &soln_basis_projection_oper_int, OPERATOR::vol_projection_operator< dim, 2 *dim > &soln_basis_projection_oper_ext, OPERATOR::metric_operators< adtype, dim, 2 *dim > &metric_oper, OPERATOR::mapping_shape_functions< dim, 2 *dim > &mapping_basis, std::array< std::vector< adtype >, dim > &mapping_support_points, dealii::hp::FEValues< dim, dim > &fe_values_collection_volume, dealii::hp::FEValues< dim, dim > &fe_values_collection_volume_lagrange, const dealii::FESystem< dim, dim > &fe_soln, std::vector< real > &local_rhs_cell, dealii::Tensor< 1, dim, std::vector< real >> &local_auxiliary_RHS, const bool compute_auxiliary_right_hand_side, const bool compute_dRdW, const bool compute_dRdX, const bool compute_d2R) |
| Computes the volume term of the cell and performs automatic differentiation. | |
| void | assemble_volume_codi_taped_derivatives_ad (typename dealii::DoFHandler< dim >::active_cell_iterator cell, const dealii::types::global_dof_index current_cell_index, const std::vector< dealii::types::global_dof_index > &soln_dofs_indices, const std::vector< dealii::types::global_dof_index > &metric_dof_indices, const unsigned int poly_degree, const unsigned int grid_degree, OPERATOR::basis_functions< dim, 2 *dim > &soln_basis, OPERATOR::basis_functions< dim, 2 *dim > &flux_basis, OPERATOR::local_basis_stiffness< dim, 2 *dim > &flux_basis_stiffness, OPERATOR::vol_projection_operator< dim, 2 *dim > &soln_basis_projection_oper_int, OPERATOR::vol_projection_operator< dim, 2 *dim > &soln_basis_projection_oper_ext, OPERATOR::metric_operators< double, dim, 2 *dim > &metric_oper, OPERATOR::mapping_shape_functions< dim, 2 *dim > &mapping_basis, std::array< std::vector< double >, dim > &mapping_support_points, dealii::hp::FEValues< dim, dim > &fe_values_collection_volume, dealii::hp::FEValues< dim, dim > &fe_values_collection_volume_lagrange, const dealii::FESystem< dim, dim > &fe_soln, std::vector< real > &local_rhs_cell, dealii::Tensor< 1, dim, std::vector< real >> &local_auxiliary_RHS, const bool compute_auxiliary_right_hand_side, const bool compute_dRdW, const bool compute_dRdX, const bool compute_d2R) |
| Computes the volume term of the cell. | |
| template<typename adtype > | |
| std::enable_if<!std::is_same< adtype, double >::value, void >::type | assemble_boundary_codi_taped_derivatives_ad (typename dealii::DoFHandler< dim >::active_cell_iterator cell, const dealii::types::global_dof_index current_cell_index, const unsigned int iface, const unsigned int boundary_id, const real penalty, const std::vector< dealii::types::global_dof_index > &soln_dofs_indices, const std::vector< dealii::types::global_dof_index > &metric_dof_indices, const unsigned int poly_degree, const unsigned int grid_degree, OPERATOR::basis_functions< dim, 2 *dim > &soln_basis, OPERATOR::basis_functions< dim, 2 *dim > &flux_basis, OPERATOR::vol_projection_operator< dim, 2 *dim > &soln_basis_projection_oper_int, OPERATOR::metric_operators< adtype, dim, 2 *dim > &metric_oper, OPERATOR::mapping_shape_functions< dim, 2 *dim > &mapping_basis, std::array< std::vector< adtype >, dim > &mapping_support_points, dealii::hp::FEFaceValues< dim, dim > &fe_values_collection_face_int, const dealii::FESystem< dim, dim > &fe_soln, std::vector< real > &local_rhs_cell, dealii::Tensor< 1, dim, std::vector< real >> &local_auxiliary_RHS, const bool compute_auxiliary_right_hand_side, const bool compute_dRdW, const bool compute_dRdX, const bool compute_d2R) |
| Computes boundary term of the cell if the cell has a face at the boundary and performs automatic differentiation. More... | |
| void | assemble_boundary_codi_taped_derivatives_ad (typename dealii::DoFHandler< dim >::active_cell_iterator cell, const dealii::types::global_dof_index current_cell_index, const unsigned int iface, const unsigned int boundary_id, const real penalty, const std::vector< dealii::types::global_dof_index > &soln_dofs_indices, const std::vector< dealii::types::global_dof_index > &metric_dof_indices, const unsigned int poly_degree, const unsigned int grid_degree, OPERATOR::basis_functions< dim, 2 *dim > &soln_basis, OPERATOR::basis_functions< dim, 2 *dim > &flux_basis, OPERATOR::vol_projection_operator< dim, 2 *dim > &soln_basis_projection_oper_int, OPERATOR::metric_operators< double, dim, 2 *dim > &metric_oper, OPERATOR::mapping_shape_functions< dim, 2 *dim > &mapping_basis, std::array< std::vector< double >, dim > &mapping_support_points, dealii::hp::FEFaceValues< dim, dim > &fe_values_collection_face_int, const dealii::FESystem< dim, dim > &fe_soln, std::vector< real > &local_rhs_cell, dealii::Tensor< 1, dim, std::vector< real >> &local_auxiliary_RHS, const bool compute_auxiliary_right_hand_side, const bool compute_dRdW, const bool compute_dRdX, const bool compute_d2R) |
| Computes boundary term of the cell if the cell has a face at the boundary. | |
| template<typename adtype > | |
| std::enable_if<!std::is_same< adtype, double >::value, void >::type | assemble_face_codi_taped_derivatives_ad (typename dealii::DoFHandler< dim >::active_cell_iterator cell, typename dealii::DoFHandler< dim >::active_cell_iterator neighbor_cell, const dealii::types::global_dof_index current_cell_index, const dealii::types::global_dof_index neighbor_cell_index, const unsigned int iface, const unsigned int neighbor_iface, const real penalty, dealii::hp::FEFaceValues< dim, dim > &fe_values_collection_face_int, dealii::hp::FEFaceValues< dim, dim > &fe_values_collection_face_ext, dealii::hp::FESubfaceValues< dim, dim > &fe_values_collection_subface, const dealii::FESystem< dim, dim > &fe_int, const dealii::FESystem< dim, dim > &fe_ext, const std::vector< dealii::types::global_dof_index > &soln_dofs_indices_int, const std::vector< dealii::types::global_dof_index > &soln_dofs_indices_ext, const std::vector< dealii::types::global_dof_index > &metric_dofs_indices_int, const std::vector< dealii::types::global_dof_index > &metric_dofs_indices_ext, const unsigned int poly_degree_int, const unsigned int poly_degree_ext, const unsigned int grid_degree_int, const unsigned int grid_degree_ext, OPERATOR::basis_functions< dim, 2 *dim > &soln_basis_int, OPERATOR::basis_functions< dim, 2 *dim > &soln_basis_ext, OPERATOR::basis_functions< dim, 2 *dim > &flux_basis_int, OPERATOR::basis_functions< dim, 2 *dim > &flux_basis_ext, OPERATOR::local_basis_stiffness< dim, 2 *dim > &flux_basis_stiffness, OPERATOR::vol_projection_operator< dim, 2 *dim > &soln_basis_projection_oper_int, OPERATOR::vol_projection_operator< dim, 2 *dim > &soln_basis_projection_oper_ext, OPERATOR::metric_operators< adtype, dim, 2 *dim > &metric_oper_int, OPERATOR::metric_operators< adtype, dim, 2 *dim > &metric_oper_ext, OPERATOR::mapping_shape_functions< dim, 2 *dim > &mapping_basis, std::array< std::vector< adtype >, dim > &mapping_support_points, std::vector< real > &local_rhs_int_cell, std::vector< real > &local_rhs_ext_cell, dealii::Tensor< 1, dim, std::vector< real >> ¤t_cell_rhs_aux, dealii::LinearAlgebra::distributed::Vector< double > &rhs, std::array< dealii::LinearAlgebra::distributed::Vector< double >, dim > &rhs_aux, const bool compute_auxiliary_right_hand_side, const bool compute_dRdW, const bool compute_dRdX, const bool compute_d2R, const bool is_a_subface=false, const unsigned int neighbor_i_subface=0) |
| Computes face term of the cell and performs automatic differentiation. | |
| void | assemble_face_codi_taped_derivatives_ad (typename dealii::DoFHandler< dim >::active_cell_iterator cell, typename dealii::DoFHandler< dim >::active_cell_iterator neighbor_cell, const dealii::types::global_dof_index current_cell_index, const dealii::types::global_dof_index neighbor_cell_index, const unsigned int iface, const unsigned int neighbor_iface, const real penalty, dealii::hp::FEFaceValues< dim, dim > &fe_values_collection_face_int, dealii::hp::FEFaceValues< dim, dim > &fe_values_collection_face_ext, dealii::hp::FESubfaceValues< dim, dim > &fe_values_collection_subface, const dealii::FESystem< dim, dim > &fe_int, const dealii::FESystem< dim, dim > &fe_ext, const std::vector< dealii::types::global_dof_index > &soln_dofs_indices_int, const std::vector< dealii::types::global_dof_index > &soln_dofs_indices_ext, const std::vector< dealii::types::global_dof_index > &metric_dofs_indices_int, const std::vector< dealii::types::global_dof_index > &metric_dofs_indices_ext, const unsigned int poly_degree_int, const unsigned int poly_degree_ext, const unsigned int grid_degree_int, const unsigned int grid_degree_ext, OPERATOR::basis_functions< dim, 2 *dim > &soln_basis_int, OPERATOR::basis_functions< dim, 2 *dim > &soln_basis_ext, OPERATOR::basis_functions< dim, 2 *dim > &flux_basis_int, OPERATOR::basis_functions< dim, 2 *dim > &flux_basis_ext, OPERATOR::local_basis_stiffness< dim, 2 *dim > &flux_basis_stiffness, OPERATOR::vol_projection_operator< dim, 2 *dim > &soln_basis_projection_oper_int, OPERATOR::vol_projection_operator< dim, 2 *dim > &soln_basis_projection_oper_ext, OPERATOR::metric_operators< double, dim, 2 *dim > &metric_oper_int, OPERATOR::metric_operators< double, dim, 2 *dim > &metric_oper_ext, OPERATOR::mapping_shape_functions< dim, 2 *dim > &mapping_basis, std::array< std::vector< double >, dim > &mapping_support_points, std::vector< real > &local_rhs_int_cell, std::vector< real > &local_rhs_ext_cell, dealii::Tensor< 1, dim, std::vector< real >> ¤t_cell_rhs_aux, dealii::LinearAlgebra::distributed::Vector< double > &rhs, std::array< dealii::LinearAlgebra::distributed::Vector< double >, dim > &rhs_aux, const bool compute_auxiliary_right_hand_side, const bool compute_dRdW, const bool compute_dRdX, const bool compute_d2R, const bool is_a_subface=false, const unsigned int neighbor_i_subface=0) |
| Computes face term of the cell. | |
| template<typename real2 > | |
| double | getValue (const real2 &x) |
| Returns the value from a CoDiPack variable. More... | |
| void | automatic_differentiation_indexing_1 (const bool compute_dRdW, const bool compute_dRdX, const bool compute_d2R, const unsigned int n_soln_dofs, const unsigned int n_metric_dofs, unsigned int &w_start, unsigned int &w_end, unsigned int &x_start, unsigned int &x_end) |
| void | automatic_differentiation_indexing_2 (const bool compute_dRdW, const bool compute_dRdX, const bool compute_d2R, const unsigned int n_soln_dofs_int, const unsigned int n_soln_dofs_ext, const unsigned int n_metric_dofs, unsigned int &w_int_start, unsigned int &w_int_end, unsigned int &w_ext_start, unsigned int &w_ext_end, unsigned int &x_int_start, unsigned int &x_int_end, unsigned int &x_ext_start, unsigned int &x_ext_end) |
| void | set_current_time (const real current_time_input) |
| Sets the current time within DG to be used for unsteady source terms. | |
| void | allocate_auxiliary_equation () |
| Allocates the auxiliary equations' variables and right hand side (primarily for Strong form diffusive) | |
| void | update_artificial_dissipation_discontinuity_sensor () |
| Update discontinuity sensor. More... | |
Protected Types | |
| using | Triangulation = typename DGBaseState< dim, nspecies, nstate, real, MeshType >::Triangulation |
| Alias to base class Triangulation. | |
Protected Types inherited from PHiLiP::DGBaseState< dim, nspecies, nstate, real, MeshType > | |
| using | Triangulation = typename DGBase< dim, nspecies, real, MeshType >::Triangulation |
| Alias to base class Triangulation. | |
Private Member Functions | |
| void | assemble_auxiliary_residual (const bool, const bool, const bool) |
| Assembles the auxiliary equations' residuals and solves for the auxiliary variables. | |
| void | allocate_dual_vector (const bool compute_d2R) |
| Allocate the dual vector for optimization. | |
| template<typename real2 > | |
| void | assemble_volume_term (typename dealii::DoFHandler< dim >::active_cell_iterator cell, const dealii::types::global_dof_index current_cell_index, const LocalSolution< real2, dim, nspecies, nstate > &local_solution, const LocalSolution< real2, dim, nspecies, dim > &local_metric, const std::vector< real > &local_dual, const dealii::Quadrature< dim > &quadrature, const Physics::PhysicsBase< dim, nspecies, nstate, real2 > &physics, std::vector< real2 > &rhs, real2 &dual_dot_residual, const bool compute_metric_derivatives, const dealii::FEValues< dim, dim > &fe_values_vol) |
| Main function responsible for evaluating the integral over the cell volume and the specified derivatives. More... | |
| template<typename real2 > | |
| void | assemble_boundary_term (typename dealii::DoFHandler< dim >::active_cell_iterator cell, const dealii::types::global_dof_index current_cell_index, const LocalSolution< real2, dim, nspecies, nstate > &local_solution, const LocalSolution< real2, dim, nspecies, dim > &local_metric, const std::vector< real > &local_dual, const unsigned int face_number, const unsigned int boundary_id, const Physics::PhysicsBase< dim, nspecies, nstate, real2 > &physics, const NumericalFlux::NumericalFluxConvective< dim, nspecies, nstate, real2 > &conv_num_flux, const NumericalFlux::NumericalFluxDissipative< dim, nspecies, nstate, real2 > &diss_num_flux, const dealii::FEFaceValuesBase< dim, dim > &fe_values_boundary, const real penalty, const dealii::Quadrature< dim-1 > &quadrature, std::vector< real2 > &rhs, real2 &dual_dot_residual, const bool compute_metric_derivatives) |
| Main function responsible for evaluating the boundary integral and the specified derivatives. More... | |
| template<typename real2 > | |
| void | assemble_face_term (typename dealii::DoFHandler< dim >::active_cell_iterator cell, typename dealii::DoFHandler< dim >::active_cell_iterator neighbor_cell, const dealii::types::global_dof_index current_cell_index, const dealii::types::global_dof_index neighbor_cell_index, const LocalSolution< real2, dim, nspecies, nstate > &soln_int, const LocalSolution< real2, dim, nspecies, nstate > &soln_ext, const LocalSolution< real2, dim, nspecies, dim > &metric_int, const LocalSolution< real2, dim, nspecies, dim > &metric_ext, const std::vector< double > &dual_int, const std::vector< double > &dual_ext, const std::pair< unsigned int, int > face_subface_int, const std::pair< unsigned int, int > face_subface_ext, const typename dealii::QProjector< dim >::DataSetDescriptor face_data_set_int, const typename dealii::QProjector< dim >::DataSetDescriptor face_data_set_ext, const Physics::PhysicsBase< dim, nspecies, nstate, real2 > &physics, const NumericalFlux::NumericalFluxConvective< dim, nspecies, nstate, real2 > &conv_num_flux, const NumericalFlux::NumericalFluxDissipative< dim, nspecies, nstate, real2 > &diss_num_flux, const dealii::FEFaceValuesBase< dim, dim > &fe_values_int, const dealii::FEFaceValuesBase< dim, dim > &fe_values_ext, const real penalty, const dealii::Quadrature< dim-1 > &face_quadrature, std::vector< real2 > &rhs_int, std::vector< real2 > &rhs_ext, real2 &dual_dot_residual, const bool compute_dRdW, const bool compute_dRdX, const bool compute_d2R) |
| Main function responsible for evaluating the internal face integral and the specified derivatives. More... | |
| template<typename adtype > | |
| void | assemble_volume_term_and_build_operators_ad_templated (typename dealii::DoFHandler< dim >::active_cell_iterator cell, const dealii::types::global_dof_index current_cell_index, const std::vector< adtype > &soln_coeffs, const dealii::Tensor< 1, dim, std::vector< adtype >> &, const std::vector< adtype > &metric_coeffs, const std::vector< real > &local_dual, const std::vector< dealii::types::global_dof_index > &soln_dofs_indices, const std::vector< dealii::types::global_dof_index > &metric_dofs_indices, const unsigned int poly_degree, const unsigned int grid_degree, const Physics::PhysicsBase< dim, nspecies, nstate, adtype > &physics, OPERATOR::basis_functions< dim, 2 *dim > &, OPERATOR::basis_functions< dim, 2 *dim > &, OPERATOR::local_basis_stiffness< dim, 2 *dim > &, OPERATOR::vol_projection_operator< dim, 2 *dim > &, OPERATOR::vol_projection_operator< dim, 2 *dim > &, OPERATOR::metric_operators< adtype, dim, 2 *dim > &, OPERATOR::mapping_shape_functions< dim, 2 *dim > &, std::array< std::vector< adtype >, dim > &, dealii::hp::FEValues< dim, dim > &fe_values_collection_volume, dealii::hp::FEValues< dim, dim > &fe_values_collection_volume_lagrange, const dealii::FESystem< dim, dim > &fe_soln, std::vector< adtype > &rhs, dealii::Tensor< 1, dim, std::vector< adtype >> &, const bool, adtype &dual_dot_residual) |
| Calls the function to assemble volume residual. | |
| void | assemble_volume_term_and_build_operators_ad (typename dealii::DoFHandler< dim >::active_cell_iterator cell, const dealii::types::global_dof_index current_cell_index, const std::vector< double > &soln_coeffs, const dealii::Tensor< 1, dim, std::vector< double >> &aux_soln_coeffs, const std::vector< double > &metric_coeffs, const std::vector< real > &local_dual, const std::vector< dealii::types::global_dof_index > &soln_dofs_indices, const std::vector< dealii::types::global_dof_index > &metric_dofs_indices, const unsigned int poly_degree, const unsigned int grid_degree, OPERATOR::basis_functions< dim, 2 *dim > &soln_basis, OPERATOR::basis_functions< dim, 2 *dim > &flux_basis, OPERATOR::local_basis_stiffness< dim, 2 *dim > &flux_basis_stiffness, OPERATOR::vol_projection_operator< dim, 2 *dim > &soln_basis_projection_oper_int, OPERATOR::vol_projection_operator< dim, 2 *dim > &soln_basis_projection_oper_ext, OPERATOR::metric_operators< double, dim, 2 *dim > &metric_oper, OPERATOR::mapping_shape_functions< dim, 2 *dim > &mapping_basis, std::array< std::vector< double >, dim > &mapping_support_points, dealii::hp::FEValues< dim, dim > &fe_values_collection_volume, dealii::hp::FEValues< dim, dim > &fe_values_collection_volume_lagrange, const dealii::FESystem< dim, dim > &fe_soln, std::vector< double > &rhs, dealii::Tensor< 1, dim, std::vector< double >> &local_auxiliary_RHS, const bool compute_auxiliary_right_hand_side, double &dual_dot_residual) override |
| Calls the function to assemble volume residual. For double type. | |
| void | assemble_volume_term_and_build_operators_ad (typename dealii::DoFHandler< dim >::active_cell_iterator cell, const dealii::types::global_dof_index current_cell_index, const std::vector< codi_JacobianComputationType > &soln_coeffs, const dealii::Tensor< 1, dim, std::vector< codi_JacobianComputationType >> &aux_soln_coeffs, const std::vector< codi_JacobianComputationType > &metric_coeffs, const std::vector< real > &local_dual, const std::vector< dealii::types::global_dof_index > &soln_dofs_indices, const std::vector< dealii::types::global_dof_index > &metric_dofs_indices, const unsigned int poly_degree, const unsigned int grid_degree, OPERATOR::basis_functions< dim, 2 *dim > &soln_basis, OPERATOR::basis_functions< dim, 2 *dim > &flux_basis, OPERATOR::local_basis_stiffness< dim, 2 *dim > &flux_basis_stiffness, OPERATOR::vol_projection_operator< dim, 2 *dim > &soln_basis_projection_oper_int, OPERATOR::vol_projection_operator< dim, 2 *dim > &soln_basis_projection_oper_ext, OPERATOR::metric_operators< codi_JacobianComputationType, dim, 2 *dim > &metric_oper, OPERATOR::mapping_shape_functions< dim, 2 *dim > &mapping_basis, std::array< std::vector< codi_JacobianComputationType >, dim > &mapping_support_points, dealii::hp::FEValues< dim, dim > &fe_values_collection_volume, dealii::hp::FEValues< dim, dim > &fe_values_collection_volume_lagrange, const dealii::FESystem< dim, dim > &fe_soln, std::vector< codi_JacobianComputationType > &rhs, dealii::Tensor< 1, dim, std::vector< codi_JacobianComputationType >> &local_auxiliary_RHS, const bool compute_auxiliary_right_hand_side, codi_JacobianComputationType &dual_dot_residual) override |
| Calls the function to assemble volume residual. For codi_JacobianComputationType. | |
| void | assemble_volume_term_and_build_operators_ad (typename dealii::DoFHandler< dim >::active_cell_iterator cell, const dealii::types::global_dof_index current_cell_index, const std::vector< codi_HessianComputationType > &soln_coeffs, const dealii::Tensor< 1, dim, std::vector< codi_HessianComputationType >> &aux_soln_coeffs, const std::vector< codi_HessianComputationType > &metric_coeffs, const std::vector< real > &local_dual, const std::vector< dealii::types::global_dof_index > &soln_dofs_indices, const std::vector< dealii::types::global_dof_index > &metric_dofs_indices, const unsigned int poly_degree, const unsigned int grid_degree, OPERATOR::basis_functions< dim, 2 *dim > &soln_basis, OPERATOR::basis_functions< dim, 2 *dim > &flux_basis, OPERATOR::local_basis_stiffness< dim, 2 *dim > &flux_basis_stiffness, OPERATOR::vol_projection_operator< dim, 2 *dim > &soln_basis_projection_oper_int, OPERATOR::vol_projection_operator< dim, 2 *dim > &soln_basis_projection_oper_ext, OPERATOR::metric_operators< codi_HessianComputationType, dim, 2 *dim > &metric_oper, OPERATOR::mapping_shape_functions< dim, 2 *dim > &mapping_basis, std::array< std::vector< codi_HessianComputationType >, dim > &mapping_support_points, dealii::hp::FEValues< dim, dim > &fe_values_collection_volume, dealii::hp::FEValues< dim, dim > &fe_values_collection_volume_lagrange, const dealii::FESystem< dim, dim > &fe_soln, std::vector< codi_HessianComputationType > &rhs, dealii::Tensor< 1, dim, std::vector< codi_HessianComputationType >> &local_auxiliary_RHS, const bool compute_auxiliary_right_hand_side, codi_HessianComputationType &dual_dot_residual) override |
| Calls the function to assemble volume residual. For codi_HessianComputationType. | |
| template<typename adtype > | |
| void | assemble_boundary_term_and_build_operators_ad_templated (typename dealii::DoFHandler< dim >::active_cell_iterator cell, const dealii::types::global_dof_index current_cell_index, const std::vector< adtype > &soln_coeffs, const dealii::Tensor< 1, dim, std::vector< adtype >> &, const std::vector< adtype > &metric_coeffs, const std::vector< real > &local_dual, const unsigned int face_number, const unsigned int boundary_id, const Physics::PhysicsBase< dim, nspecies, nstate, adtype > &physics, const NumericalFlux::NumericalFluxConvective< dim, nspecies, nstate, adtype > &conv_num_flux, const NumericalFlux::NumericalFluxDissipative< dim, nspecies, nstate, adtype > &diss_num_flux, const unsigned int, const unsigned int, OPERATOR::basis_functions< dim, 2 *dim > &, OPERATOR::basis_functions< dim, 2 *dim > &, OPERATOR::vol_projection_operator< dim, 2 *dim > &, OPERATOR::metric_operators< adtype, dim, 2 *dim > &, OPERATOR::mapping_shape_functions< dim, 2 *dim > &, std::array< std::vector< adtype >, dim > &, dealii::hp::FEFaceValues< dim, dim > &fe_values_collection_face_int, const dealii::FESystem< dim, dim > &fe_soln, const real penalty, std::vector< adtype > &rhs, dealii::Tensor< 1, dim, std::vector< adtype >> &, const bool, adtype &dual_dot_residual) |
| Calls the function to assemble boundary residual. | |
| void | assemble_boundary_term_and_build_operators_ad (typename dealii::DoFHandler< dim >::active_cell_iterator cell, const dealii::types::global_dof_index current_cell_index, const std::vector< double > &soln_coeffs, const dealii::Tensor< 1, dim, std::vector< double >> &aux_soln_coeffs, const std::vector< double > &metric_coeffs, const std::vector< real > &local_dual, const unsigned int face_number, const unsigned int boundary_id, const unsigned int poly_degree, const unsigned int grid_degree, OPERATOR::basis_functions< dim, 2 *dim > &soln_basis, OPERATOR::basis_functions< dim, 2 *dim > &flux_basis, OPERATOR::vol_projection_operator< dim, 2 *dim > &soln_basis_projection_oper_int, OPERATOR::metric_operators< double, dim, 2 *dim > &metric_oper, OPERATOR::mapping_shape_functions< dim, 2 *dim > &mapping_basis, std::array< std::vector< double >, dim > &mapping_support_points, dealii::hp::FEFaceValues< dim, dim > &fe_values_collection_face_int, const dealii::FESystem< dim, dim > &fe_soln, const real penalty, std::vector< double > &rhs, dealii::Tensor< 1, dim, std::vector< double >> &local_auxiliary_RHS, const bool compute_auxiliary_right_hand_side, double &dual_dot_residual) override |
| Calls the function to assemble boundary residual. For double type. | |
| void | assemble_boundary_term_and_build_operators_ad (typename dealii::DoFHandler< dim >::active_cell_iterator cell, const dealii::types::global_dof_index current_cell_index, const std::vector< codi_JacobianComputationType > &soln_coeffs, const dealii::Tensor< 1, dim, std::vector< codi_JacobianComputationType >> &aux_soln_coeffs, const std::vector< codi_JacobianComputationType > &metric_coeffs, const std::vector< real > &local_dual, const unsigned int face_number, const unsigned int boundary_id, const unsigned int poly_degree, const unsigned int grid_degree, OPERATOR::basis_functions< dim, 2 *dim > &soln_basis, OPERATOR::basis_functions< dim, 2 *dim > &flux_basis, OPERATOR::vol_projection_operator< dim, 2 *dim > &soln_basis_projection_oper_int, OPERATOR::metric_operators< codi_JacobianComputationType, dim, 2 *dim > &metric_oper, OPERATOR::mapping_shape_functions< dim, 2 *dim > &mapping_basis, std::array< std::vector< codi_JacobianComputationType >, dim > &mapping_support_points, dealii::hp::FEFaceValues< dim, dim > &fe_values_collection_face_int, const dealii::FESystem< dim, dim > &fe_soln, const real penalty, std::vector< codi_JacobianComputationType > &rhs, dealii::Tensor< 1, dim, std::vector< codi_JacobianComputationType >> &local_auxiliary_RHS, const bool compute_auxiliary_right_hand_side, codi_JacobianComputationType &dual_dot_residual) override |
| Calls the function to assemble boundary residual. For codi_JacobianComputationType. | |
| void | assemble_boundary_term_and_build_operators_ad (typename dealii::DoFHandler< dim >::active_cell_iterator cell, const dealii::types::global_dof_index current_cell_index, const std::vector< codi_HessianComputationType > &soln_coeffs, const dealii::Tensor< 1, dim, std::vector< codi_HessianComputationType >> &aux_soln_coeffs, const std::vector< codi_HessianComputationType > &metric_coeffs, const std::vector< real > &local_dual, const unsigned int face_number, const unsigned int boundary_id, const unsigned int poly_degree, const unsigned int grid_degree, OPERATOR::basis_functions< dim, 2 *dim > &soln_basis, OPERATOR::basis_functions< dim, 2 *dim > &flux_basis, OPERATOR::vol_projection_operator< dim, 2 *dim > &soln_basis_projection_oper_int, OPERATOR::metric_operators< codi_HessianComputationType, dim, 2 *dim > &metric_oper, OPERATOR::mapping_shape_functions< dim, 2 *dim > &mapping_basis, std::array< std::vector< codi_HessianComputationType >, dim > &mapping_support_points, dealii::hp::FEFaceValues< dim, dim > &fe_values_collection_face_int, const dealii::FESystem< dim, dim > &fe_soln, const real penalty, std::vector< codi_HessianComputationType > &rhs, dealii::Tensor< 1, dim, std::vector< codi_HessianComputationType >> &local_auxiliary_RHS, const bool compute_auxiliary_right_hand_side, codi_HessianComputationType &dual_dot_residual) override |
| Calls the function to assemble boundary residual. For codi_HessianComputationType. | |
| template<typename adtype > | |
| void | assemble_face_term_and_build_operators_ad_templated (typename dealii::DoFHandler< dim >::active_cell_iterator cell, typename dealii::DoFHandler< dim >::active_cell_iterator neighbor_cell, const dealii::types::global_dof_index current_cell_index, const dealii::types::global_dof_index neighbor_cell_index, const unsigned int iface, const unsigned int neighbor_iface, const std::vector< adtype > &soln_coeff_int, const std::vector< adtype > &soln_coeff_ext, const dealii::Tensor< 1, dim, std::vector< adtype >> &, const dealii::Tensor< 1, dim, std::vector< adtype >> &, const std::vector< adtype > &metric_coeff_int, const std::vector< adtype > &metric_coeff_ext, const std::vector< double > &dual_int, const std::vector< double > &dual_ext, const unsigned int, const unsigned int, const unsigned int, const unsigned int, OPERATOR::basis_functions< dim, 2 *dim > &, OPERATOR::basis_functions< dim, 2 *dim > &, OPERATOR::basis_functions< dim, 2 *dim > &, OPERATOR::basis_functions< dim, 2 *dim > &, OPERATOR::local_basis_stiffness< dim, 2 *dim > &, OPERATOR::vol_projection_operator< dim, 2 *dim > &, OPERATOR::vol_projection_operator< dim, 2 *dim > &, OPERATOR::metric_operators< adtype, dim, 2 *dim > &, OPERATOR::metric_operators< adtype, dim, 2 *dim > &, OPERATOR::mapping_shape_functions< dim, 2 *dim > &, std::array< std::vector< adtype >, dim > &, const Physics::PhysicsBase< dim, nspecies, nstate, adtype > &physics, const NumericalFlux::NumericalFluxConvective< dim, nspecies, nstate, adtype > &conv_num_flux, const NumericalFlux::NumericalFluxDissipative< dim, nspecies, nstate, adtype > &diss_num_flux, dealii::hp::FEFaceValues< dim, dim > &fe_values_collection_face_int, dealii::hp::FEFaceValues< dim, dim > &fe_values_collection_face_ext, dealii::hp::FESubfaceValues< dim, dim > &fe_values_collection_subface, const dealii::FESystem< dim, dim > &fe_int, const dealii::FESystem< dim, dim > &fe_ext, const real penalty, std::vector< adtype > &rhs_int, std::vector< adtype > &rhs_ext, dealii::Tensor< 1, dim, std::vector< adtype >> &, dealii::Tensor< 1, dim, std::vector< adtype >> &, const bool, adtype &dual_dot_residual, const bool compute_dRdW, const bool compute_dRdX, const bool compute_d2R, const bool is_a_subface, const unsigned int neighbor_i_subface) |
| Calls the function to assemble face residual. | |
| void | assemble_face_term_and_build_operators_ad (typename dealii::DoFHandler< dim >::active_cell_iterator cell, typename dealii::DoFHandler< dim >::active_cell_iterator neighbor_cell, const dealii::types::global_dof_index current_cell_index, const dealii::types::global_dof_index neighbor_cell_index, const unsigned int iface, const unsigned int neighbor_iface, const std::vector< double > &soln_coeff_int, const std::vector< double > &soln_coeff_ext, const dealii::Tensor< 1, dim, std::vector< double >> &aux_soln_coeff_int, const dealii::Tensor< 1, dim, std::vector< double >> &aux_soln_coeff_ext, const std::vector< double > &metric_coeff_int, const std::vector< double > &metric_coeff_ext, const std::vector< double > &dual_int, const std::vector< double > &dual_ext, const unsigned int poly_degree_int, const unsigned int poly_degree_ext, const unsigned int grid_degree_int, const unsigned int grid_degree_ext, OPERATOR::basis_functions< dim, 2 *dim > &soln_basis_int, OPERATOR::basis_functions< dim, 2 *dim > &soln_basis_ext, OPERATOR::basis_functions< dim, 2 *dim > &flux_basis_int, OPERATOR::basis_functions< dim, 2 *dim > &flux_basis_ext, OPERATOR::local_basis_stiffness< dim, 2 *dim > &flux_basis_stiffness, OPERATOR::vol_projection_operator< dim, 2 *dim > &soln_basis_projection_oper_int, OPERATOR::vol_projection_operator< dim, 2 *dim > &soln_basis_projection_oper_ext, OPERATOR::metric_operators< double, dim, 2 *dim > &metric_oper_int, OPERATOR::metric_operators< double, dim, 2 *dim > &metric_oper_ext, OPERATOR::mapping_shape_functions< dim, 2 *dim > &mapping_basis, std::array< std::vector< double >, dim > &mapping_support_points, dealii::hp::FEFaceValues< dim, dim > &fe_values_collection_face_int, dealii::hp::FEFaceValues< dim, dim > &fe_values_collection_face_ext, dealii::hp::FESubfaceValues< dim, dim > &fe_values_collection_subface, const dealii::FESystem< dim, dim > &fe_int, const dealii::FESystem< dim, dim > &fe_ext, const real penalty, std::vector< double > &rhs_int, std::vector< double > &rhs_ext, dealii::Tensor< 1, dim, std::vector< double >> &aux_rhs_int, dealii::Tensor< 1, dim, std::vector< double >> &aux_rhs_ext, const bool compute_auxiliary_right_hand_side, double &dual_dot_residual, const bool compute_dRdW, const bool compute_dRdX, const bool compute_d2R, const bool is_a_subface, const unsigned int neighbor_i_subface) override |
| Calls the function to assemble face residual. For double type. | |
| void | assemble_face_term_and_build_operators_ad (typename dealii::DoFHandler< dim >::active_cell_iterator cell, typename dealii::DoFHandler< dim >::active_cell_iterator neighbor_cell, const dealii::types::global_dof_index current_cell_index, const dealii::types::global_dof_index neighbor_cell_index, const unsigned int iface, const unsigned int neighbor_iface, const std::vector< codi_JacobianComputationType > &soln_coeff_int, const std::vector< codi_JacobianComputationType > &soln_coeff_ext, const dealii::Tensor< 1, dim, std::vector< codi_JacobianComputationType >> &aux_soln_coeff_int, const dealii::Tensor< 1, dim, std::vector< codi_JacobianComputationType >> &aux_soln_coeff_ext, const std::vector< codi_JacobianComputationType > &metric_coeff_int, const std::vector< codi_JacobianComputationType > &metric_coeff_ext, const std::vector< double > &dual_int, const std::vector< double > &dual_ext, const unsigned int poly_degree_int, const unsigned int poly_degree_ext, const unsigned int grid_degree_int, const unsigned int grid_degree_ext, OPERATOR::basis_functions< dim, 2 *dim > &soln_basis_int, OPERATOR::basis_functions< dim, 2 *dim > &soln_basis_ext, OPERATOR::basis_functions< dim, 2 *dim > &flux_basis_int, OPERATOR::basis_functions< dim, 2 *dim > &flux_basis_ext, OPERATOR::local_basis_stiffness< dim, 2 *dim > &flux_basis_stiffness, OPERATOR::vol_projection_operator< dim, 2 *dim > &soln_basis_projection_oper_int, OPERATOR::vol_projection_operator< dim, 2 *dim > &soln_basis_projection_oper_ext, OPERATOR::metric_operators< codi_JacobianComputationType, dim, 2 *dim > &metric_oper_int, OPERATOR::metric_operators< codi_JacobianComputationType, dim, 2 *dim > &metric_oper_ext, OPERATOR::mapping_shape_functions< dim, 2 *dim > &mapping_basis, std::array< std::vector< codi_JacobianComputationType >, dim > &mapping_support_points, dealii::hp::FEFaceValues< dim, dim > &fe_values_collection_face_int, dealii::hp::FEFaceValues< dim, dim > &fe_values_collection_face_ext, dealii::hp::FESubfaceValues< dim, dim > &fe_values_collection_subface, const dealii::FESystem< dim, dim > &fe_int, const dealii::FESystem< dim, dim > &fe_ext, const real penalty, std::vector< codi_JacobianComputationType > &rhs_int, std::vector< codi_JacobianComputationType > &rhs_ext, dealii::Tensor< 1, dim, std::vector< codi_JacobianComputationType >> &aux_rhs_int, dealii::Tensor< 1, dim, std::vector< codi_JacobianComputationType >> &aux_rhs_ext, const bool compute_auxiliary_right_hand_side, codi_JacobianComputationType &dual_dot_residual, const bool compute_dRdW, const bool compute_dRdX, const bool compute_d2R, const bool is_a_subface, const unsigned int neighbor_i_subface) override |
| Calls the function to assemble face residual. For codi_JacobianComputationType. | |
| void | assemble_face_term_and_build_operators_ad (typename dealii::DoFHandler< dim >::active_cell_iterator cell, typename dealii::DoFHandler< dim >::active_cell_iterator neighbor_cell, const dealii::types::global_dof_index current_cell_index, const dealii::types::global_dof_index neighbor_cell_index, const unsigned int iface, const unsigned int neighbor_iface, const std::vector< codi_HessianComputationType > &soln_coeff_int, const std::vector< codi_HessianComputationType > &soln_coeff_ext, const dealii::Tensor< 1, dim, std::vector< codi_HessianComputationType >> &aux_soln_coeff_int, const dealii::Tensor< 1, dim, std::vector< codi_HessianComputationType >> &aux_soln_coeff_ext, const std::vector< codi_HessianComputationType > &metric_coeff_int, const std::vector< codi_HessianComputationType > &metric_coeff_ext, const std::vector< double > &dual_int, const std::vector< double > &dual_ext, const unsigned int poly_degree_int, const unsigned int poly_degree_ext, const unsigned int grid_degree_int, const unsigned int grid_degree_ext, OPERATOR::basis_functions< dim, 2 *dim > &soln_basis_int, OPERATOR::basis_functions< dim, 2 *dim > &soln_basis_ext, OPERATOR::basis_functions< dim, 2 *dim > &flux_basis_int, OPERATOR::basis_functions< dim, 2 *dim > &flux_basis_ext, OPERATOR::local_basis_stiffness< dim, 2 *dim > &flux_basis_stiffness, OPERATOR::vol_projection_operator< dim, 2 *dim > &soln_basis_projection_oper_int, OPERATOR::vol_projection_operator< dim, 2 *dim > &soln_basis_projection_oper_ext, OPERATOR::metric_operators< codi_HessianComputationType, dim, 2 *dim > &metric_oper_int, OPERATOR::metric_operators< codi_HessianComputationType, dim, 2 *dim > &metric_oper_ext, OPERATOR::mapping_shape_functions< dim, 2 *dim > &mapping_basis, std::array< std::vector< codi_HessianComputationType >, dim > &mapping_support_points, dealii::hp::FEFaceValues< dim, dim > &fe_values_collection_face_int, dealii::hp::FEFaceValues< dim, dim > &fe_values_collection_face_ext, dealii::hp::FESubfaceValues< dim, dim > &fe_values_collection_subface, const dealii::FESystem< dim, dim > &fe_int, const dealii::FESystem< dim, dim > &fe_ext, const real penalty, std::vector< codi_HessianComputationType > &rhs_int, std::vector< codi_HessianComputationType > &rhs_ext, dealii::Tensor< 1, dim, std::vector< codi_HessianComputationType >> &aux_rhs_int, dealii::Tensor< 1, dim, std::vector< codi_HessianComputationType >> &aux_rhs_ext, const bool compute_auxiliary_right_hand_side, codi_HessianComputationType &dual_dot_residual, const bool compute_dRdW, const bool compute_dRdX, const bool compute_d2R, const bool is_a_subface, const unsigned int neighbor_i_subface) override |
| Calls the function to assemble face residual. For codi_HessianComputationType. | |
| void | assemble_volume_term_explicit (typename dealii::DoFHandler< dim >::active_cell_iterator cell, const dealii::types::global_dof_index current_cell_index, const dealii::FEValues< dim, dim > &fe_values_volume, const std::vector< dealii::types::global_dof_index > ¤t_dofs_indices, const std::vector< dealii::types::global_dof_index > &metric_dof_indices, const unsigned int poly_degree, const unsigned int grid_degree, dealii::Vector< real > ¤t_cell_rhs, const dealii::FEValues< dim, dim > &fe_values_lagrange) |
| Evaluate the integral over the cell volume. | |
Additional Inherited Members | |
Public Types inherited from PHiLiP::DGBase< dim, nspecies, real, MeshType > | |
| using | Triangulation = MeshType |
| using | MassiveCollectionTuple = std::tuple< dealii::hp::FECollection< dim >, dealii::hp::QCollection< dim >, dealii::hp::QCollection< dim-1 >, dealii::hp::FECollection< dim >, dealii::hp::FECollection< 1 >, dealii::hp::FECollection< 1 >, dealii::hp::FECollection< 1 >, dealii::hp::QCollection< 1 > > |
| Makes for cleaner doxygen documentation. | |
Public Attributes inherited from PHiLiP::DGBaseState< dim, nspecies, nstate, real, MeshType > | |
| std::shared_ptr< Physics::PhysicsBase< dim, nspecies, nstate, real > > | pde_physics_double |
| Contains the physics of the PDE with real type. | |
| std::shared_ptr< Physics::ModelBase< dim, nspecies, nstate, real > > | pde_model_double |
| Contains the model terms of the PDEType == PhysicsModel with real type. | |
| std::unique_ptr< NumericalFlux::NumericalFluxConvective< dim, nspecies, nstate, real > > | conv_num_flux_double |
| Convective numerical flux with real type. | |
| std::unique_ptr< NumericalFlux::NumericalFluxDissipative< dim, nspecies, nstate, real > > | diss_num_flux_double |
| Dissipative numerical flux with real type. | |
| std::shared_ptr< ArtificialDissipationBase< dim, nspecies, nstate > > | artificial_dissip |
| Link to Artificial dissipation class (with three dissipation types, depending on the input). | |
| std::shared_ptr< Physics::PhysicsBase< dim, nspecies, nstate, FadType > > | pde_physics_fad |
| Contains the physics of the PDE with FadType. | |
| std::shared_ptr< Physics::ModelBase< dim, nspecies, nstate, FadType > > | pde_model_fad |
| Contains the model terms of the PDEType == PhysicsModel with FadType. | |
| std::unique_ptr< NumericalFlux::NumericalFluxConvective< dim, nspecies, nstate, FadType > > | conv_num_flux_fad |
| Convective numerical flux with FadType. | |
| std::unique_ptr< NumericalFlux::NumericalFluxDissipative< dim, nspecies, nstate, FadType > > | diss_num_flux_fad |
| Dissipative numerical flux with FadType. | |
| std::shared_ptr< Physics::PhysicsBase< dim, nspecies, nstate, RadType > > | pde_physics_rad |
| Contains the physics of the PDE with RadType. | |
| std::shared_ptr< Physics::ModelBase< dim, nspecies, nstate, RadType > > | pde_model_rad |
| Contains the model terms of the PDEType == PhysicsModel with RadType. | |
| std::unique_ptr< NumericalFlux::NumericalFluxConvective< dim, nspecies, nstate, RadType > > | conv_num_flux_rad |
| Convective numerical flux with RadType. | |
| std::unique_ptr< NumericalFlux::NumericalFluxDissipative< dim, nspecies, nstate, RadType > > | diss_num_flux_rad |
| Dissipative numerical flux with RadType. | |
| std::shared_ptr< Physics::PhysicsBase< dim, nspecies, nstate, FadFadType > > | pde_physics_fad_fad |
| Contains the physics of the PDE with FadFadType. | |
| std::shared_ptr< Physics::ModelBase< dim, nspecies, nstate, FadFadType > > | pde_model_fad_fad |
| Contains the model terms of the PDEType == PhysicsModel with FadFadType. | |
| std::unique_ptr< NumericalFlux::NumericalFluxConvective< dim, nspecies, nstate, FadFadType > > | conv_num_flux_fad_fad |
| Convective numerical flux with FadFadType. | |
| std::unique_ptr< NumericalFlux::NumericalFluxDissipative< dim, nspecies, nstate, FadFadType > > | diss_num_flux_fad_fad |
| Dissipative numerical flux with FadFadType. | |
| std::shared_ptr< Physics::PhysicsBase< dim, nspecies, nstate, RadFadType > > | pde_physics_rad_fad |
| Contains the physics of the PDE with RadFadDtype. | |
| std::shared_ptr< Physics::ModelBase< dim, nspecies, nstate, RadFadType > > | pde_model_rad_fad |
| Contains the model terms of the PDEType == PhysicsModel with RadFadType. | |
| std::unique_ptr< NumericalFlux::NumericalFluxConvective< dim, nspecies, nstate, RadFadType > > | conv_num_flux_rad_fad |
| Convective numerical flux with RadFadDtype. | |
| std::unique_ptr< NumericalFlux::NumericalFluxDissipative< dim, nspecies, nstate, RadFadType > > | diss_num_flux_rad_fad |
| Dissipative numerical flux with RadFadDtype. | |
Public Attributes inherited from PHiLiP::DGBase< dim, nspecies, real, MeshType > | |
| const Parameters::AllParameters *const | all_parameters |
| Pointer to all parameters. | |
| const int | nstate |
| Number of state variables. More... | |
| const unsigned int | initial_degree |
| Initial polynomial degree assigned during constructor. | |
| const unsigned int | max_degree |
| Maximum degree used for p-refi1nement. More... | |
| const unsigned int | max_grid_degree |
| Maximum grid degree used for hp-refi1nement. More... | |
| std::shared_ptr< Triangulation > | triangulation |
| Mesh. | |
| dealii::SparsityPattern | sparsity_pattern |
| Sparsity pattern used on the system_matrix. More... | |
| dealii::SparsityPattern | mass_sparsity_pattern |
| Sparsity pattern used on the system_matrix. More... | |
| dealii::TrilinosWrappers::SparseMatrix | time_scaled_global_mass_matrix |
| Global mass matrix divided by the time scales. More... | |
| dealii::TrilinosWrappers::SparseMatrix | global_mass_matrix |
| Global mass matrix. More... | |
| dealii::TrilinosWrappers::SparseMatrix | global_inverse_mass_matrix |
| Global inverser mass matrix. More... | |
| dealii::TrilinosWrappers::SparseMatrix | global_mass_matrix_auxiliary |
| Global auxiliary mass matrix. More... | |
| dealii::TrilinosWrappers::SparseMatrix | global_inverse_mass_matrix_auxiliary |
| Global inverse of the auxiliary mass matrix. | |
| dealii::TrilinosWrappers::SparseMatrix | system_matrix |
| dealii::TrilinosWrappers::SparseMatrix | system_matrix_transpose |
| std::unique_ptr< Epetra_RowMatrixTransposer > | epetra_rowmatrixtransposer_dRdW |
| Epetra_RowMatrixTransposer used to transpose the system_matrix. | |
| dealii::TrilinosWrappers::SparseMatrix | dRdXv |
| dealii::TrilinosWrappers::SparseMatrix | d2RdWdW |
| dealii::TrilinosWrappers::SparseMatrix | d2RdXdX |
| dealii::TrilinosWrappers::SparseMatrix | d2RdWdX |
| dealii::LinearAlgebra::distributed::Vector< double > | right_hand_side |
| Residual of the current solution. More... | |
| dealii::IndexSet | locally_owned_dofs |
| Locally own degrees of freedom. | |
| dealii::IndexSet | ghost_dofs |
| Locally relevant ghost degrees of freedom. | |
| dealii::IndexSet | locally_relevant_dofs |
| Union of locally owned degrees of freedom and relevant ghost degrees of freedom. | |
| dealii::IndexSet | locally_owned_dofs_grid |
| Locally own degrees of freedom for the grid. | |
| dealii::IndexSet | ghost_dofs_grid |
| Locally relevant ghost degrees of freedom for the grid. | |
| dealii::IndexSet | locally_relevant_dofs_grid |
| dealii::LinearAlgebra::distributed::Vector< double > | solution |
| Current modal coefficients of the solution. More... | |
| dealii::LinearAlgebra::distributed::Vector< double > | time_averaged_solution |
| dealii::LinearAlgebra::distributed::Vector< double > | fluctuating_quantities |
| std::array< dealii::LinearAlgebra::distributed::Vector< double >, dim > | auxiliary_right_hand_side |
| The auxiliary equations' right hand sides. | |
| std::array< dealii::LinearAlgebra::distributed::Vector< double >, dim > | auxiliary_solution |
| The auxiliary equations' solution. | |
| dealii::Vector< double > | cell_volume |
| Time it takes for the maximum wavespeed to cross the cell domain. More... | |
| dealii::Vector< double > | max_dt_cell |
| Time it takes for the maximum wavespeed to cross the cell domain. More... | |
| dealii::Vector< double > | reduced_mesh_weights |
| dealii::Vector< double > | artificial_dissipation_coeffs |
| Artificial dissipation in each cell. | |
| dealii::Vector< double > | artificial_dissipation_se |
| Artificial dissipation error ratio sensor in each cell. | |
| dealii::LinearAlgebra::distributed::Vector< real > | dual |
| Current optimization dual variables corresponding to the residual constraints also known as the adjoint. More... | |
| bool | update_artificial_diss |
| const dealii::hp::FECollection< dim > | fe_collection |
| Finite Element Collection for p-finite-element to represent the solution. More... | |
| dealii::hp::QCollection< dim > | volume_quadrature_collection |
| Finite Element Collection to represent the high-order grid. More... | |
| dealii::hp::QCollection< dim-1 > | face_quadrature_collection |
| Quadrature used to evaluate face integrals. | |
| const dealii::hp::FECollection< dim > | fe_collection_lagrange |
| Lagrange basis used in strong form. More... | |
| const dealii::hp::FECollection< 1 > | oneD_fe_collection |
| 1D Finite Element Collection for p-finite-element to represent the solution More... | |
| const dealii::hp::FECollection< 1 > | oneD_fe_collection_1state |
| 1D Finite Element Collection for p-finite-element to represent the solution for a single state. More... | |
| const dealii::hp::FECollection< 1 > | oneD_fe_collection_flux |
| 1D collocated flux basis used in strong form More... | |
| dealii::hp::QCollection< 1 > | oneD_quadrature_collection |
| 1D quadrature to generate Lagrange polynomials for the sake of flux interpolation. | |
| dealii::QGauss< 0 > | oneD_face_quadrature |
| 1D surface quadrature is always one single point for all poly degrees. | |
| dealii::DoFHandler< dim > | dof_handler |
| Finite Element Collection to represent the high-order grid. More... | |
| std::shared_ptr< HighOrderGrid< dim, real, MeshType > > | high_order_grid |
| High order grid that will provide the MappingFEField. | |
| double | assemble_residual_time |
| Computational time for assembling residual. | |
| bool | freeze_artificial_dissipation |
| Flag to freeze artificial dissipation. | |
| double | max_artificial_dissipation_coeff |
| Stores maximum artificial dissipation while assembling the residual. | |
| bool | use_auxiliary_eq |
| Flag for using the auxiliary equation. | |
| bool | store_vol_flux_nodes |
| Flag for storing volume flux nodes. | |
| bool | store_surf_flux_nodes |
| Flag for storing surface flux nodes. | |
Protected Member Functions inherited from PHiLiP::DGBaseState< dim, nspecies, nstate, real, MeshType > | |
| real | evaluate_CFL (std::vector< std::array< real, nstate > > soln_at_q, const real artificial_dissipation, const real cell_diameter, const unsigned int cell_degree) |
| Evaluate the time it takes for the maximum wavespeed to cross the cell domain. More... | |
| void | reset_numerical_fluxes () |
| Reinitializes the numerical fluxes based on the current physics. More... | |
Protected Attributes inherited from PHiLiP::DGBase< dim, nspecies, real, MeshType > | |
| real | current_time |
| The current time set in set_current_time() | |
| const dealii::FE_Q< dim > | fe_q_artificial_dissipation |
| Continuous distribution of artificial dissipation. | |
| dealii::DoFHandler< dim > | dof_handler_artificial_dissipation |
| Degrees of freedom handler for C0 artificial dissipation. | |
| dealii::LinearAlgebra::distributed::Vector< double > | artificial_dissipation_c0 |
| Artificial dissipation coefficients. | |
| const dealii::UpdateFlags | volume_update_flags |
| Update flags needed at volume points. More... | |
| const dealii::UpdateFlags | face_update_flags |
| Update flags needed at face points. More... | |
| const dealii::UpdateFlags | neighbor_face_update_flags = dealii::update_values | dealii::update_gradients | dealii::update_quadrature_points | dealii::update_JxW_values |
| Update flags needed at neighbor' face points. More... | |
| MPI_Comm | mpi_communicator |
| MPI communicator. | |
| dealii::ConditionalOStream | pcout |
| Parallel std::cout that only outputs on mpi_rank==0. | |
DGWeak class templated on the number of state variables.
Definition at line 17 of file weak_dg.hpp.
|
private |
Main function responsible for evaluating the boundary integral and the specified derivatives.
This function templates the solution and metric coefficients in order to possible AD the residual.
Definition at line 565 of file weak_dg.cpp.
|
private |
Main function responsible for evaluating the internal face integral and the specified derivatives.
This function templates the solution and metric coefficients in order to possible AD the residual.
Definition at line 936 of file weak_dg.cpp.
|
private |
Main function responsible for evaluating the integral over the cell volume and the specified derivatives.
This function templates the solution and metric coefficients in order to possible AD the residual.
Definition at line 1412 of file weak_dg.cpp.
|
inline |
< Parallel std::cout that only outputs on mpi_rank==0
Builds volume metric operators (metric cofactor and determinant of metric Jacobian). Does nothing for weak DG.
Definition at line 865 of file weak_dg.hpp.