internal Namespace Reference#
|
DiFfRG
Discretization Framework for functional Renormalization Group flows
|
Classes | |
| struct | BoundaryReconstructionStencilData |
| struct | BoundaryReconstructionStencilTopologyData |
| struct | BoundaryStencilData |
| struct | BoundaryStencilIndex |
| struct | BoundaryStencilIndex< 1 > |
| struct | BoundaryStencilTopologyData |
| struct | CellData |
| struct | CellGeometryDofs |
| struct | CellStencilData |
| struct | CellStencilTopologyData |
| struct | CopyData_I |
| struct | CopyData_J |
| struct | CopyData_R |
| struct | DiffusionFluxJacobianData |
| struct | FaceReconstructionState |
| struct | FluxDerivativeData |
| struct | FourPointStencil |
| struct | KTFluxData |
| Result struct for compute_kt_flux_and_speeds. More... | |
| struct | KTNumFluxJacobianData |
| struct | NeighborData |
| struct | NeighborTopologyData |
| struct | ScratchData |
| Class to hold data for each assembly thread, i.e. FEValues for cells, interfaces, as well as pre-allocated data structures for the solutions. More... | |
| struct | SolutionReconstructionCache |
Typedefs | |
| template<typename NumberType , size_t n_components> | |
| using | JacobianMatrix = std::array<std::array<NumberType, n_components>, n_components> |
| template<typename NumberType , int dim, size_t n_components> | |
| using | HessianTensor |
| template<typename NumberType , int dim, size_t n_components> | |
| using | FluxGradientJacobian |
| Derivative of every flux component/direction with respect to every component/direction of grad(u). | |
| template<typename NumberType , int dim, size_t n_components> | |
| using | MixedHessianTensor = std::array<HessianTensor<NumberType, dim, n_components>, dim> |
| template<int dim, typename NumberType , size_t n_components> | |
| using | GradientType = def::GradientType<dim, NumberType, n_components> |
| template<int dim, typename NumberType , size_t n_components> | |
| using | ThirdDerivativeType = def::ThirdDerivativeType<dim, NumberType, n_components> |
| template<int dim, typename NumberType , size_t n_components> | |
| using | DiffusionFaceState = def::DiffusionFaceState<dim, NumberType, n_components> |
Functions | |
| template<typename Model , typename NumberType , int dim, size_t n_components, typename ExtractorArray , typename VariableVector > | |
| FluxDerivativeData< NumberType, dim, n_components > | compute_flux_derivatives_ad (const std::array< NumberType, n_components > &u, const std::array< dealii::Tensor< 1, dim, NumberType >, n_components > &grad_u, const dealii::Point< dim > &x_q, const double cell_width, const ExtractorArray &extractors, const VariableVector &variables, const Model &model) |
| Compute F, dF/du, d2F/du2, dF/dgrad(u), and d2F/(du dgrad(u)) with second-order forward AD. | |
| template<typename Model , typename NumberType , int dim, size_t n_components, typename ExtractorArray , typename VariableVector > | |
| auto | compute_flux_jacobian_and_hessian (const std::array< NumberType, n_components > &u, const dealii::Point< dim > &x_q, const double cell_width, const ExtractorArray &extractors, const VariableVector &variables, const Model &model) |
| Backward-compatible state-only view of the full AD derivative extraction. | |
| template<typename... T> | |
| auto | flux_tie (T &&...t) |
| The named tuple handed to model.flux(). | |
| template<typename... T> | |
| auto | diffusion_flux_tie (T &&...t) |
| The named tuple handed to model.diffusion_flux(). | |
| template<typename T > | |
| int | sgn (T val) |
| template<typename NumberType , int dim, size_t n_components> | |
| std::array< JacobianMatrix< NumberType, n_components >, dim > | restrict_jacobian_to_block (const std::array< JacobianMatrix< NumberType, n_components >, dim > &J, const std::array< int, n_components > &blocks, const int block) |
Copy of J with every row and column outside block zeroed. | |
| template<typename NumberType , int dim, size_t n_components> | |
| HessianTensor< NumberType, dim, n_components > | restrict_hessian_to_block (const HessianTensor< NumberType, dim, n_components > &H, const std::array< int, n_components > &blocks, const int block) |
Copy of H with the two jacobian indices restricted to block. | |
| template<size_t n_components, typename Result , typename ComputeFUN > | |
| std::array< Result, n_components > | per_block (const std::array< int, n_components > &blocks, const ComputeFUN &compute) |
Run compute once per distinct block and hand each component its block's result. | |
| template<typename WaveSpeedStrategy , typename Model , typename NumberType , int dim, size_t n_components, typename ExtractorArray , typename VariableVector > | |
| KTFluxData< dim, NumberType, n_components > | compute_kt_flux_and_speeds (const std::array< NumberType, n_components > &u_plus, const std::array< NumberType, n_components > &u_minus, const GradientType< dim, NumberType, n_components > &grad_u_plus, const GradientType< dim, NumberType, n_components > &grad_u_minus, const dealii::Point< dim > &x_q, const double cell_width_plus, const double cell_width_minus, const ExtractorArray &extractors, const VariableVector &variables, const Model &model) |
| template<typename WaveSpeedStrategy , typename Model , typename NumberType , int dim, size_t n_components, typename ExtractorArray , typename VariableVector > | |
| KTFluxData< dim, NumberType, n_components > | compute_kt_flux_and_speeds (const std::array< NumberType, n_components > &u_plus, const std::array< NumberType, n_components > &u_minus, const dealii::Point< dim > &x_q, const double cell_width_plus, const double cell_width_minus, const ExtractorArray &extractors, const VariableVector &variables, const Model &model) |
| template<int dim, typename NumberType , size_t n_components> | |
| std::array< dealii::Tensor< 1, dim, NumberType >, n_components > | compute_numerical_flux (const std::array< dealii::Tensor< 1, dim, NumberType >, n_components > &F_plus, const std::array< dealii::Tensor< 1, dim, NumberType >, n_components > &F_minus, const std::array< dealii::Tensor< 1, dim, NumberType >, n_components > &a_half, const std::array< NumberType, n_components > &u_plus, const std::array< NumberType, n_components > &u_minus) |
| template<typename WaveSpeedStrategy , typename Model , typename NumberType , int dim, size_t n_components, typename ExtractorArray , typename VariableVector > | |
| KTNumFluxJacobianData< dim, NumberType, n_components > | compute_kt_numflux_jacobian (const std::array< NumberType, n_components > &u_plus, const std::array< NumberType, n_components > &u_minus, const GradientType< dim, NumberType, n_components > &grad_u_plus, const GradientType< dim, NumberType, n_components > &grad_u_minus, const dealii::Point< dim > &x_q, const double cell_width_plus, const double cell_width_minus, const ExtractorArray &extractors, const VariableVector &variables, const Model &model) |
| template<typename Model , typename NumberType , int dim, size_t n_components, typename ExtractorArray , typename VariableVector > | |
| std::array< dealii::Tensor< 1, dim, NumberType >, n_components > | compute_diffusion_flux (const std::array< NumberType, n_components > &u_minus, const std::array< NumberType, n_components > &u_plus, const GradientType< dim, NumberType, n_components > &grad_u_minus, const GradientType< dim, NumberType, n_components > &grad_u_plus, const ThirdDerivativeType< dim, NumberType, n_components > &third_derivatives_minus, const ThirdDerivativeType< dim, NumberType, n_components > &third_derivatives_plus, const dealii::Point< dim > &x_q, const double cell_width_minus, const double cell_width_plus, const ExtractorArray &extractors, const VariableVector &variables, const Model &model) |
| template<typename Model , typename NumberType , int dim, size_t n_components, typename ExtractorArray , typename VariableVector > | |
| DiffusionFluxJacobianData< dim, NumberType, n_components > | compute_diffusion_flux_jacobian (const std::array< NumberType, n_components > &u_minus, const std::array< NumberType, n_components > &u_plus, const GradientType< dim, NumberType, n_components > &grad_u_minus, const GradientType< dim, NumberType, n_components > &grad_u_plus, const ThirdDerivativeType< dim, NumberType, n_components > &third_derivatives_minus, const ThirdDerivativeType< dim, NumberType, n_components > &third_derivatives_plus, const dealii::Point< dim > &x_q, const double cell_width_minus, const double cell_width_plus, const ExtractorArray &extractors, const VariableVector &variables, const Model &model) |
| template<int dim, typename NumberType , size_t n_components> | |
| FaceReconstructionState< dim, NumberType, n_components > | reverse_face_reconstruction (const FaceReconstructionState< dim, NumberType, n_components > &state) |
| template<int dim, typename NumberType , size_t n_components> | |
| std::array< NumberType, n_components > | reconstruct_u (const std::array< NumberType, n_components > &u_center, const dealii::Point< dim > ¢er, const dealii::Point< dim > &x, const GradientType< dim, NumberType, n_components > &u_grad) |
| template<int dim, typename NumberType , size_t n_components> | |
| void | sort_four_point_stencil (FourPointStencil< dim, NumberType, n_components > &stencil) |
| template<int dim, typename NumberType , size_t n_components> | |
| FourPointStencil< dim, NumberType, n_components > | make_interior_third_derivative_stencil (const CellStencilData< dim, NumberType, n_components > &minus_stencil, const CellStencilData< dim, NumberType, n_components > &plus_stencil, const dealii::Point< dim > &x_q) |
| template<int dim, typename NumberType , size_t n_components> | |
| FourPointStencil< dim, NumberType, n_components > | make_boundary_third_derivative_stencil (const BoundaryStencilData< dim, NumberType, n_components > &boundary_stencil) |
| template<int dim, typename NumberType , size_t n_components> | |
| DiffusionFaceState< dim, NumberType, n_components > | compute_diffusion_face_state (const CellStencilData< dim, NumberType, n_components > &minus_stencil, const CellStencilData< dim, NumberType, n_components > &plus_stencil) |
| template<int dim, typename NumberType , size_t n_components> | |
| std::array< ReconstructionDerivativeData< dim, NumberType, n_components >, 2 > | extract_diffusion_face_derivatives (const DiffusionFaceState< dim, autodiff::Real< 1, NumberType >, n_components > &state) |
| template<int dim, typename NumberType , size_t n_components, typename VectorType > | |
| void | fill_cell_data_from_topology (const CellGeometryDofs< dim, n_components > &topology, const VectorType &solution_global, CellData< dim, NumberType, n_components > &data) |
| template<def::HasReconstructor Reconstructor, int dim, typename NumberType , size_t n_components, typename DiffusionReconstructor = def::CorrectedWeightedLeastSquaresDiffusionReconstructor<dim, NumberType>> | |
| FaceReconstructionState< dim, NumberType, n_components > | compute_interior_face_reconstruction_state (const CellStencilData< dim, NumberType, n_components > &minus_stencil, const CellStencilData< dim, NumberType, n_components > &plus_stencil, const dealii::Point< dim > &x_q) |
| template<def::HasReconstructor Reconstructor, int dim, typename NumberType , size_t n_components> | |
| std::array< NumberType, n_components > | reconstruct_u_derivative (const std::array< autodiff::Real< 1, NumberType >, n_components > &u_center, const dealii::Point< dim > ¢er, const dealii::Point< dim > &x, const std::array< dealii::Point< dim >, 2 *dim > &x_n, const std::array< std::array< autodiff::Real< 1, NumberType >, n_components >, 2 *dim > &u_n) |
| template<int dim, typename NumberType , size_t n_components> | |
| bool | is_lower_boundary_stencil (const std::array< dealii::Point< dim >, 2 *dim+3 > &x_stencil, const dealii::Point< dim > &x_face) |
| template<typename BoundaryNumberType , int dim, size_t n_components, typename VectorType > | |
| BoundaryStencilData< dim, BoundaryNumberType, n_components > | fill_boundary_stencil_from_topology (const BoundaryStencilTopologyData< dim, n_components > &topology, const VectorType &solution_global) |
| template<typename BoundaryNumberType , int dim, size_t n_components, typename VectorType > | |
| BoundaryReconstructionStencilData< dim, BoundaryNumberType, n_components > | fill_boundary_reconstruction_stencil_from_topology (const BoundaryReconstructionStencilTopologyData< dim, n_components > &topology, const VectorType &solution_global) |
| template<int dim, typename NumberType , size_t n_components> | |
| CellStencilData< dim, NumberType, n_components > | make_boundary_side_stencil (const BoundaryStencilData< dim, NumberType, n_components > &boundary_stencil, const size_t center_index, const size_t left_index, const size_t right_index) |
| template<int dim, typename NumberType , size_t n_components> | |
| CellStencilData< dim, NumberType, n_components > | make_physical_boundary_side_stencil (const BoundaryStencilData< dim, NumberType, n_components > &boundary_stencil) |
| template<int dim, typename NumberType , size_t n_components> | |
| CellStencilData< dim, NumberType, n_components > | make_ghost_boundary_side_stencil (const BoundaryStencilData< dim, NumberType, n_components > &boundary_stencil) |
| template<int dim, typename NumberType , size_t n_components> requires (dim == 1) | |
| void | prepare_boundary_reconstruction_stencil (BoundaryStencilData< dim, NumberType, n_components > &, const CellStencilData< dim, NumberType, n_components > &, const dealii::Point< dim > &) |
| template<int dim, typename NumberType , size_t n_components> requires (dim == 2) | |
| void | prepare_boundary_reconstruction_stencil (BoundaryStencilData< dim, NumberType, n_components > &boundary_stencil, const CellStencilData< dim, NumberType, n_components > &physical_stencil, const dealii::Point< dim > &x_q) |
| template<typename Model , int dim, typename NumberType , size_t n_components> | |
| void | apply_boundary_reconstruction_stencil (BoundaryStencilData< dim, NumberType, n_components > &boundary_stencil, const CellStencilData< dim, NumberType, n_components > &cell_stencil, const Model &model) |
| template<typename Model , typename NumberType , size_t n_components> | |
| BoundaryStencilData< 2, NumberType, n_components > | make_composed_corner_boundary_stencil (const BoundaryReconstructionStencilData< 2, NumberType, n_components > &boundary_reconstruction_stencil, const unsigned int result_face, const CellStencilData< 2, NumberType, n_components > &physical_stencil, const Model &model) |
| template<int dim, typename NumberType , size_t n_components> requires (dim == 1) | |
| CellStencilData< dim, NumberType, n_components > | make_physical_boundary_side_stencil (const BoundaryStencilData< dim, NumberType, n_components > &boundary_stencil, const CellStencilData< dim, NumberType, n_components > &) |
| template<int dim, typename NumberType , size_t n_components> requires (dim == 2) | |
| CellStencilData< dim, NumberType, n_components > | make_physical_boundary_side_stencil (const BoundaryStencilData< dim, NumberType, n_components > &boundary_stencil, const CellStencilData< dim, NumberType, n_components > &physical_stencil) |
| template<int dim, typename NumberType , size_t n_components> requires (dim == 1) | |
| CellStencilData< dim, NumberType, n_components > | make_ghost_boundary_side_stencil (const BoundaryStencilData< dim, NumberType, n_components > &boundary_stencil, const CellStencilData< dim, NumberType, n_components > &) |
| template<int dim, typename NumberType , size_t n_components> requires (dim == 2) | |
| CellStencilData< dim, NumberType, n_components > | make_ghost_boundary_side_stencil (const BoundaryStencilData< dim, NumberType, n_components > &boundary_stencil, const CellStencilData< dim, NumberType, n_components > &physical_stencil) |
| template<typename Model , typename NumberType , size_t n_components> | |
| CellStencilData< 2, NumberType, n_components > | make_ghost_boundary_side_stencil (const BoundaryReconstructionStencilData< 2, NumberType, n_components > &boundary_reconstruction_stencil, const CellStencilData< 2, NumberType, n_components > &physical_stencil, const Model &model) |
| template<typename Model , typename NumberType , size_t n_components> | |
| void | populate_boundary_neighbor_from_model_stencil (BoundaryStencilData< 1, NumberType, n_components > &boundary_stencil, CellStencilData< 1, NumberType, n_components > &cell_stencil, const unsigned int face_index, const dealii::Point< 1 > &x_q, const Model &model) |
| template<typename Model , typename NumberType , size_t n_components> | |
| void | populate_boundary_neighbor_from_model_stencil (BoundaryStencilData< 2, NumberType, n_components > &boundary_stencil, CellStencilData< 2, NumberType, n_components > &cell_stencil, const unsigned int face_index, const dealii::Point< 2 > &x_q, const Model &model) |
| template<typename Model , typename NumberType , size_t n_components> | |
| std::pair< CellStencilData< 1, NumberType, n_components >, CellStencilData< 1, NumberType, n_components > > | make_model_boundary_reconstruction_side_stencils (BoundaryStencilData< 1, NumberType, n_components > boundary_stencil, const CellStencilData< 1, NumberType, n_components > &physical_cell_stencil, const dealii::Point< 1 > &x_q, const Model &model) |
| template<typename Model , typename NumberType , size_t n_components> | |
| std::pair< CellStencilData< 1, NumberType, n_components >, CellStencilData< 1, NumberType, n_components > > | make_model_boundary_reconstruction_side_stencils (BoundaryReconstructionStencilData< 1, NumberType, n_components > boundary_reconstruction_stencil, const CellStencilData< 1, NumberType, n_components > &physical_cell_stencil, const dealii::Point< 1 > &x_q, const Model &model) |
| template<typename Model , typename NumberType , size_t n_components> | |
| std::pair< CellStencilData< 2, NumberType, n_components >, CellStencilData< 2, NumberType, n_components > > | make_model_boundary_reconstruction_side_stencils (BoundaryStencilData< 2, NumberType, n_components > boundary_stencil, const CellStencilData< 2, NumberType, n_components > &physical_cell_stencil, const dealii::Point< 2 > &x_q, const Model &model) |
| template<typename Model , typename NumberType , size_t n_components> | |
| std::pair< CellStencilData< 2, NumberType, n_components >, CellStencilData< 2, NumberType, n_components > > | make_model_boundary_reconstruction_side_stencils (BoundaryReconstructionStencilData< 2, NumberType, n_components > boundary_reconstruction_stencil, const CellStencilData< 2, NumberType, n_components > &physical_cell_stencil, const dealii::Point< 2 > &x_q, const Model &model) |
| template<def::HasReconstructor Reconstructor, typename Model , typename NumberType , size_t n_components> | |
| FaceReconstructionState< 1, NumberType, n_components > | compute_boundary_face_reconstruction_state (BoundaryStencilData< 1, NumberType, n_components > boundary_stencil, const CellStencilData< 1, NumberType, n_components > &physical_cell_stencil, const dealii::Point< 1 > &x_q, const Model &model) |
| template<def::HasReconstructor Reconstructor, typename Model , typename NumberType , size_t n_components> | |
| FaceReconstructionState< 1, NumberType, n_components > | compute_boundary_face_reconstruction_state (BoundaryReconstructionStencilData< 1, NumberType, n_components > boundary_reconstruction_stencil, const CellStencilData< 1, NumberType, n_components > &physical_cell_stencil, const dealii::Point< 1 > &x_q, const Model &model) |
| template<def::HasReconstructor Reconstructor, typename Model , typename NumberType , size_t n_components> | |
| FaceReconstructionState< 2, NumberType, n_components > | compute_boundary_face_reconstruction_state (BoundaryStencilData< 2, NumberType, n_components > boundary_stencil, const CellStencilData< 2, NumberType, n_components > &physical_cell_stencil, const dealii::Point< 2 > &x_q, const Model &model) |
| template<def::HasReconstructor Reconstructor, typename Model , typename NumberType , size_t n_components> | |
| FaceReconstructionState< 2, NumberType, n_components > | compute_boundary_face_reconstruction_state (BoundaryReconstructionStencilData< 2, NumberType, n_components > boundary_reconstruction_stencil, const CellStencilData< 2, NumberType, n_components > &physical_cell_stencil, const dealii::Point< 2 > &x_q, const Model &model) |
| template<int dim, typename NumberType , size_t n_components> | |
| CellData< dim, autodiff::Real< 1, NumberType >, n_components > | tag_cell_dofs (const CellData< dim, NumberType, n_components > &cell_data, dealii::types::global_dof_index dof_j) |
| template<int dim, typename NumberType , size_t n_components> | |
| NeighborData< dim, autodiff::Real< 1, NumberType >, n_components > | make_tagged_neighbors (const NeighborData< dim, NumberType, n_components > &neighbor_data, dealii::types::global_dof_index dof_j) |
| template<int dim, typename NumberType , size_t n_components> | |
| CellStencilData< dim, autodiff::Real< 1, NumberType >, n_components > | tag_cell_stencil_dofs (const CellStencilData< dim, NumberType, n_components > &cell_stencil, dealii::types::global_dof_index dof_j) |
| template<int dim, typename NumberType , size_t n_components> | |
| BoundaryStencilData< dim, autodiff::Real< 1, NumberType >, n_components > | tag_boundary_stencil_dofs (const BoundaryStencilData< dim, NumberType, n_components > &boundary_stencil, dealii::types::global_dof_index dof_j) |
| template<int dim, typename NumberType , size_t n_components> | |
| BoundaryReconstructionStencilData< dim, autodiff::Real< 1, NumberType >, n_components > | tag_boundary_reconstruction_stencil_dofs (const BoundaryReconstructionStencilData< dim, NumberType, n_components > &boundary_reconstruction_stencil, dealii::types::global_dof_index dof_j) |
Typedef Documentation
◆ DiffusionFaceState
| using DiFfRG::FV::KurganovTadmor::internal::DiffusionFaceState = def::DiffusionFaceState<dim, NumberType, n_components> |
◆ FluxGradientJacobian
| using DiFfRG::FV::KurganovTadmor::internal::FluxGradientJacobian |
Derivative of every flux component/direction with respect to every component/direction of grad(u).
Indexed as [flux_component][gradient_component][flux_direction][gradient_direction].
◆ GradientType
| using DiFfRG::FV::KurganovTadmor::internal::GradientType = def::GradientType<dim, NumberType, n_components> |
◆ HessianTensor
| using DiFfRG::FV::KurganovTadmor::internal::HessianTensor |
◆ JacobianMatrix
| using DiFfRG::FV::KurganovTadmor::internal::JacobianMatrix = std::array<std::array<NumberType, n_components>, n_components> |
◆ MixedHessianTensor
| using DiFfRG::FV::KurganovTadmor::internal::MixedHessianTensor = std::array<HessianTensor<NumberType, dim, n_components>, dim> |
◆ ThirdDerivativeType
| using DiFfRG::FV::KurganovTadmor::internal::ThirdDerivativeType = def::ThirdDerivativeType<dim, NumberType, n_components> |
Function Documentation
◆ apply_boundary_reconstruction_stencil()
| void DiFfRG::FV::KurganovTadmor::internal::apply_boundary_reconstruction_stencil | ( | BoundaryStencilData< dim, NumberType, n_components > & | boundary_stencil, |
| const CellStencilData< dim, NumberType, n_components > & | cell_stencil, | ||
| const Model & | model ) |
◆ compute_boundary_face_reconstruction_state() [1/4]
| FaceReconstructionState< 1, NumberType, n_components > DiFfRG::FV::KurganovTadmor::internal::compute_boundary_face_reconstruction_state | ( | BoundaryReconstructionStencilData< 1, NumberType, n_components > | boundary_reconstruction_stencil, |
| const CellStencilData< 1, NumberType, n_components > & | physical_cell_stencil, | ||
| const dealii::Point< 1 > & | x_q, | ||
| const Model & | model ) |
◆ compute_boundary_face_reconstruction_state() [2/4]
| FaceReconstructionState< 2, NumberType, n_components > DiFfRG::FV::KurganovTadmor::internal::compute_boundary_face_reconstruction_state | ( | BoundaryReconstructionStencilData< 2, NumberType, n_components > | boundary_reconstruction_stencil, |
| const CellStencilData< 2, NumberType, n_components > & | physical_cell_stencil, | ||
| const dealii::Point< 2 > & | x_q, | ||
| const Model & | model ) |
◆ compute_boundary_face_reconstruction_state() [3/4]
| FaceReconstructionState< 1, NumberType, n_components > DiFfRG::FV::KurganovTadmor::internal::compute_boundary_face_reconstruction_state | ( | BoundaryStencilData< 1, NumberType, n_components > | boundary_stencil, |
| const CellStencilData< 1, NumberType, n_components > & | physical_cell_stencil, | ||
| const dealii::Point< 1 > & | x_q, | ||
| const Model & | model ) |
◆ compute_boundary_face_reconstruction_state() [4/4]
| FaceReconstructionState< 2, NumberType, n_components > DiFfRG::FV::KurganovTadmor::internal::compute_boundary_face_reconstruction_state | ( | BoundaryStencilData< 2, NumberType, n_components > | boundary_stencil, |
| const CellStencilData< 2, NumberType, n_components > & | physical_cell_stencil, | ||
| const dealii::Point< 2 > & | x_q, | ||
| const Model & | model ) |
◆ compute_diffusion_face_state()
| DiffusionFaceState< dim, NumberType, n_components > DiFfRG::FV::KurganovTadmor::internal::compute_diffusion_face_state | ( | const CellStencilData< dim, NumberType, n_components > & | minus_stencil, |
| const CellStencilData< dim, NumberType, n_components > & | plus_stencil ) |
◆ compute_diffusion_flux()
| std::array< dealii::Tensor< 1, dim, NumberType >, n_components > DiFfRG::FV::KurganovTadmor::internal::compute_diffusion_flux | ( | const std::array< NumberType, n_components > & | u_minus, |
| const std::array< NumberType, n_components > & | u_plus, | ||
| const GradientType< dim, NumberType, n_components > & | grad_u_minus, | ||
| const GradientType< dim, NumberType, n_components > & | grad_u_plus, | ||
| const ThirdDerivativeType< dim, NumberType, n_components > & | third_derivatives_minus, | ||
| const ThirdDerivativeType< dim, NumberType, n_components > & | third_derivatives_plus, | ||
| const dealii::Point< dim > & | x_q, | ||
| const double | cell_width_minus, | ||
| const double | cell_width_plus, | ||
| const ExtractorArray & | extractors, | ||
| const VariableVector & | variables, | ||
| const Model & | model ) |
◆ compute_diffusion_flux_jacobian()
| DiffusionFluxJacobianData< dim, NumberType, n_components > DiFfRG::FV::KurganovTadmor::internal::compute_diffusion_flux_jacobian | ( | const std::array< NumberType, n_components > & | u_minus, |
| const std::array< NumberType, n_components > & | u_plus, | ||
| const GradientType< dim, NumberType, n_components > & | grad_u_minus, | ||
| const GradientType< dim, NumberType, n_components > & | grad_u_plus, | ||
| const ThirdDerivativeType< dim, NumberType, n_components > & | third_derivatives_minus, | ||
| const ThirdDerivativeType< dim, NumberType, n_components > & | third_derivatives_plus, | ||
| const dealii::Point< dim > & | x_q, | ||
| const double | cell_width_minus, | ||
| const double | cell_width_plus, | ||
| const ExtractorArray & | extractors, | ||
| const VariableVector & | variables, | ||
| const Model & | model ) |
◆ compute_flux_derivatives_ad()
| FluxDerivativeData< NumberType, dim, n_components > DiFfRG::FV::KurganovTadmor::internal::compute_flux_derivatives_ad | ( | const std::array< NumberType, n_components > & | u, |
| const std::array< dealii::Tensor< 1, dim, NumberType >, n_components > & | grad_u, | ||
| const dealii::Point< dim > & | x_q, | ||
| const double | cell_width, | ||
| const ExtractorArray & | extractors, | ||
| const VariableVector & | variables, | ||
| const Model & | model ) |
Compute F, dF/du, d2F/du2, dF/dgrad(u), and d2F/(du dgrad(u)) with second-order forward AD.
The gradient is held fixed while extracting dF/du. The Hessian and mixed derivatives are used by the wave-speed strategy to differentiate the physical KT speed.
◆ compute_flux_jacobian_and_hessian()
| auto DiFfRG::FV::KurganovTadmor::internal::compute_flux_jacobian_and_hessian | ( | const std::array< NumberType, n_components > & | u, |
| const dealii::Point< dim > & | x_q, | ||
| const double | cell_width, | ||
| const ExtractorArray & | extractors, | ||
| const VariableVector & | variables, | ||
| const Model & | model ) |
Backward-compatible state-only view of the full AD derivative extraction.
This is intentionally not a second derivative strategy: it calls compute_flux_derivatives_ad with a zero gradient and returns its F/J/H subset.
◆ compute_interior_face_reconstruction_state()
| FaceReconstructionState< dim, NumberType, n_components > DiFfRG::FV::KurganovTadmor::internal::compute_interior_face_reconstruction_state | ( | const CellStencilData< dim, NumberType, n_components > & | minus_stencil, |
| const CellStencilData< dim, NumberType, n_components > & | plus_stencil, | ||
| const dealii::Point< dim > & | x_q ) |
◆ compute_kt_flux_and_speeds() [1/2]
| KTFluxData< dim, NumberType, n_components > DiFfRG::FV::KurganovTadmor::internal::compute_kt_flux_and_speeds | ( | const std::array< NumberType, n_components > & | u_plus, |
| const std::array< NumberType, n_components > & | u_minus, | ||
| const dealii::Point< dim > & | x_q, | ||
| const double | cell_width_plus, | ||
| const double | cell_width_minus, | ||
| const ExtractorArray & | extractors, | ||
| const VariableVector & | variables, | ||
| const Model & | model ) |
◆ compute_kt_flux_and_speeds() [2/2]
| KTFluxData< dim, NumberType, n_components > DiFfRG::FV::KurganovTadmor::internal::compute_kt_flux_and_speeds | ( | const std::array< NumberType, n_components > & | u_plus, |
| const std::array< NumberType, n_components > & | u_minus, | ||
| const GradientType< dim, NumberType, n_components > & | grad_u_plus, | ||
| const GradientType< dim, NumberType, n_components > & | grad_u_minus, | ||
| const dealii::Point< dim > & | x_q, | ||
| const double | cell_width_plus, | ||
| const double | cell_width_minus, | ||
| const ExtractorArray & | extractors, | ||
| const VariableVector & | variables, | ||
| const Model & | model ) |
◆ compute_kt_numflux_jacobian()
| KTNumFluxJacobianData< dim, NumberType, n_components > DiFfRG::FV::KurganovTadmor::internal::compute_kt_numflux_jacobian | ( | const std::array< NumberType, n_components > & | u_plus, |
| const std::array< NumberType, n_components > & | u_minus, | ||
| const GradientType< dim, NumberType, n_components > & | grad_u_plus, | ||
| const GradientType< dim, NumberType, n_components > & | grad_u_minus, | ||
| const dealii::Point< dim > & | x_q, | ||
| const double | cell_width_plus, | ||
| const double | cell_width_minus, | ||
| const ExtractorArray & | extractors, | ||
| const VariableVector & | variables, | ||
| const Model & | model ) |
◆ compute_numerical_flux()
| std::array< dealii::Tensor< 1, dim, NumberType >, n_components > DiFfRG::FV::KurganovTadmor::internal::compute_numerical_flux | ( | const std::array< dealii::Tensor< 1, dim, NumberType >, n_components > & | F_plus, |
| const std::array< dealii::Tensor< 1, dim, NumberType >, n_components > & | F_minus, | ||
| const std::array< dealii::Tensor< 1, dim, NumberType >, n_components > & | a_half, | ||
| const std::array< NumberType, n_components > & | u_plus, | ||
| const std::array< NumberType, n_components > & | u_minus ) |
◆ diffusion_flux_tie()
| auto DiFfRG::FV::KurganovTadmor::internal::diffusion_flux_tie | ( | T &&... | t | ) |
The named tuple handed to model.diffusion_flux().
- See also
- flux_tie for the entries.
◆ extract_diffusion_face_derivatives()
| std::array< ReconstructionDerivativeData< dim, NumberType, n_components >, 2 > DiFfRG::FV::KurganovTadmor::internal::extract_diffusion_face_derivatives | ( | const DiffusionFaceState< dim, autodiff::Real< 1, NumberType >, n_components > & | state | ) |
◆ fill_boundary_reconstruction_stencil_from_topology()
| BoundaryReconstructionStencilData< dim, BoundaryNumberType, n_components > DiFfRG::FV::KurganovTadmor::internal::fill_boundary_reconstruction_stencil_from_topology | ( | const BoundaryReconstructionStencilTopologyData< dim, n_components > & | topology, |
| const VectorType & | solution_global ) |
◆ fill_boundary_stencil_from_topology()
| BoundaryStencilData< dim, BoundaryNumberType, n_components > DiFfRG::FV::KurganovTadmor::internal::fill_boundary_stencil_from_topology | ( | const BoundaryStencilTopologyData< dim, n_components > & | topology, |
| const VectorType & | solution_global ) |
◆ fill_cell_data_from_topology()
| void DiFfRG::FV::KurganovTadmor::internal::fill_cell_data_from_topology | ( | const CellGeometryDofs< dim, n_components > & | topology, |
| const VectorType & | solution_global, | ||
| CellData< dim, NumberType, n_components > & | data ) |
◆ flux_tie()
| auto DiFfRG::FV::KurganovTadmor::internal::flux_tie | ( | T &&... | t | ) |
The named tuple handed to model.flux().
"extractors" and "variables" carry the same data the source() tuple does, filled once per residual and once per jacobian by the assembler's extract() before any flux is evaluated. They are plain NumberType even inside the AD-seeded flux loops, i.e. the flux jacobian does not contain the dependence of an extractor on the FE solution – the extractors are frozen within a Newton step, exactly as they are for source(). A model that solves for something at the EoM in extract() and reads it here therefore gets an approximate jacobian, which costs Newton iterations rather than accuracy: the extraction is redone for every residual.
"cell_width" is the local grid spacing: the width of the cell this trace was reconstructed from, measured along the normal of the face being assembled. See DiFfRG::internal::cell_width. It lets a model build a term whose size is set by the mesh rather than by a parameter – an upwind viscosity being the usual reason. Anything built from it has to vanish as the mesh is refined, or the scheme it belongs to does not converge.
The slot order matches the FEM assemblers' fe_tie and this scheme's own fv_tie: the discretization-specific solution entries first, then "extractors", "variables", "cell_width".
◆ is_lower_boundary_stencil()
| bool DiFfRG::FV::KurganovTadmor::internal::is_lower_boundary_stencil | ( | const std::array< dealii::Point< dim >, 2 *dim+3 > & | x_stencil, |
| const dealii::Point< dim > & | x_face ) |
◆ make_boundary_side_stencil()
| CellStencilData< dim, NumberType, n_components > DiFfRG::FV::KurganovTadmor::internal::make_boundary_side_stencil | ( | const BoundaryStencilData< dim, NumberType, n_components > & | boundary_stencil, |
| const size_t | center_index, | ||
| const size_t | left_index, | ||
| const size_t | right_index ) |
◆ make_boundary_third_derivative_stencil()
| FourPointStencil< dim, NumberType, n_components > DiFfRG::FV::KurganovTadmor::internal::make_boundary_third_derivative_stencil | ( | const BoundaryStencilData< dim, NumberType, n_components > & | boundary_stencil | ) |
◆ make_composed_corner_boundary_stencil()
| BoundaryStencilData< 2, NumberType, n_components > DiFfRG::FV::KurganovTadmor::internal::make_composed_corner_boundary_stencil | ( | const BoundaryReconstructionStencilData< 2, NumberType, n_components > & | boundary_reconstruction_stencil, |
| const unsigned int | result_face, | ||
| const CellStencilData< 2, NumberType, n_components > & | physical_stencil, | ||
| const Model & | model ) |
◆ make_ghost_boundary_side_stencil() [1/4]
| CellStencilData< 2, NumberType, n_components > DiFfRG::FV::KurganovTadmor::internal::make_ghost_boundary_side_stencil | ( | const BoundaryReconstructionStencilData< 2, NumberType, n_components > & | boundary_reconstruction_stencil, |
| const CellStencilData< 2, NumberType, n_components > & | physical_stencil, | ||
| const Model & | model ) |
◆ make_ghost_boundary_side_stencil() [2/4]
| CellStencilData< dim, NumberType, n_components > DiFfRG::FV::KurganovTadmor::internal::make_ghost_boundary_side_stencil | ( | const BoundaryStencilData< dim, NumberType, n_components > & | boundary_stencil | ) |
◆ make_ghost_boundary_side_stencil() [3/4]
requires (dim == 1)
| CellStencilData< dim, NumberType, n_components > DiFfRG::FV::KurganovTadmor::internal::make_ghost_boundary_side_stencil | ( | const BoundaryStencilData< dim, NumberType, n_components > & | boundary_stencil, |
| const CellStencilData< dim, NumberType, n_components > & | ) |
◆ make_ghost_boundary_side_stencil() [4/4]
requires (dim == 2)
| CellStencilData< dim, NumberType, n_components > DiFfRG::FV::KurganovTadmor::internal::make_ghost_boundary_side_stencil | ( | const BoundaryStencilData< dim, NumberType, n_components > & | boundary_stencil, |
| const CellStencilData< dim, NumberType, n_components > & | physical_stencil ) |
◆ make_interior_third_derivative_stencil()
| FourPointStencil< dim, NumberType, n_components > DiFfRG::FV::KurganovTadmor::internal::make_interior_third_derivative_stencil | ( | const CellStencilData< dim, NumberType, n_components > & | minus_stencil, |
| const CellStencilData< dim, NumberType, n_components > & | plus_stencil, | ||
| const dealii::Point< dim > & | x_q ) |
◆ make_model_boundary_reconstruction_side_stencils() [1/4]
| std::pair< CellStencilData< 1, NumberType, n_components >, CellStencilData< 1, NumberType, n_components > > DiFfRG::FV::KurganovTadmor::internal::make_model_boundary_reconstruction_side_stencils | ( | BoundaryReconstructionStencilData< 1, NumberType, n_components > | boundary_reconstruction_stencil, |
| const CellStencilData< 1, NumberType, n_components > & | physical_cell_stencil, | ||
| const dealii::Point< 1 > & | x_q, | ||
| const Model & | model ) |
◆ make_model_boundary_reconstruction_side_stencils() [2/4]
| std::pair< CellStencilData< 2, NumberType, n_components >, CellStencilData< 2, NumberType, n_components > > DiFfRG::FV::KurganovTadmor::internal::make_model_boundary_reconstruction_side_stencils | ( | BoundaryReconstructionStencilData< 2, NumberType, n_components > | boundary_reconstruction_stencil, |
| const CellStencilData< 2, NumberType, n_components > & | physical_cell_stencil, | ||
| const dealii::Point< 2 > & | x_q, | ||
| const Model & | model ) |
◆ make_model_boundary_reconstruction_side_stencils() [3/4]
| std::pair< CellStencilData< 1, NumberType, n_components >, CellStencilData< 1, NumberType, n_components > > DiFfRG::FV::KurganovTadmor::internal::make_model_boundary_reconstruction_side_stencils | ( | BoundaryStencilData< 1, NumberType, n_components > | boundary_stencil, |
| const CellStencilData< 1, NumberType, n_components > & | physical_cell_stencil, | ||
| const dealii::Point< 1 > & | x_q, | ||
| const Model & | model ) |
◆ make_model_boundary_reconstruction_side_stencils() [4/4]
| std::pair< CellStencilData< 2, NumberType, n_components >, CellStencilData< 2, NumberType, n_components > > DiFfRG::FV::KurganovTadmor::internal::make_model_boundary_reconstruction_side_stencils | ( | BoundaryStencilData< 2, NumberType, n_components > | boundary_stencil, |
| const CellStencilData< 2, NumberType, n_components > & | physical_cell_stencil, | ||
| const dealii::Point< 2 > & | x_q, | ||
| const Model & | model ) |
◆ make_physical_boundary_side_stencil() [1/3]
| CellStencilData< dim, NumberType, n_components > DiFfRG::FV::KurganovTadmor::internal::make_physical_boundary_side_stencil | ( | const BoundaryStencilData< dim, NumberType, n_components > & | boundary_stencil | ) |
◆ make_physical_boundary_side_stencil() [2/3]
requires (dim == 1)
| CellStencilData< dim, NumberType, n_components > DiFfRG::FV::KurganovTadmor::internal::make_physical_boundary_side_stencil | ( | const BoundaryStencilData< dim, NumberType, n_components > & | boundary_stencil, |
| const CellStencilData< dim, NumberType, n_components > & | ) |
◆ make_physical_boundary_side_stencil() [3/3]
requires (dim == 2)
| CellStencilData< dim, NumberType, n_components > DiFfRG::FV::KurganovTadmor::internal::make_physical_boundary_side_stencil | ( | const BoundaryStencilData< dim, NumberType, n_components > & | boundary_stencil, |
| const CellStencilData< dim, NumberType, n_components > & | physical_stencil ) |
◆ make_tagged_neighbors()
| NeighborData< dim, autodiff::Real< 1, NumberType >, n_components > DiFfRG::FV::KurganovTadmor::internal::make_tagged_neighbors | ( | const NeighborData< dim, NumberType, n_components > & | neighbor_data, |
| dealii::types::global_dof_index | dof_j ) |
◆ per_block()
| std::array< Result, n_components > DiFfRG::FV::KurganovTadmor::internal::per_block | ( | const std::array< int, n_components > & | blocks, |
| const ComputeFUN & | compute ) |
Run compute once per distinct block and hand each component its block's result.
Components carrying no_wave_speed are skipped and keep the value-initialised entry. compute(block) is called at most once per distinct id, so a model that declares one block pays exactly what it paid before blocks existed.
◆ populate_boundary_neighbor_from_model_stencil() [1/2]
| void DiFfRG::FV::KurganovTadmor::internal::populate_boundary_neighbor_from_model_stencil | ( | BoundaryStencilData< 1, NumberType, n_components > & | boundary_stencil, |
| CellStencilData< 1, NumberType, n_components > & | cell_stencil, | ||
| const unsigned int | face_index, | ||
| const dealii::Point< 1 > & | x_q, | ||
| const Model & | model ) |
◆ populate_boundary_neighbor_from_model_stencil() [2/2]
| void DiFfRG::FV::KurganovTadmor::internal::populate_boundary_neighbor_from_model_stencil | ( | BoundaryStencilData< 2, NumberType, n_components > & | boundary_stencil, |
| CellStencilData< 2, NumberType, n_components > & | cell_stencil, | ||
| const unsigned int | face_index, | ||
| const dealii::Point< 2 > & | x_q, | ||
| const Model & | model ) |
◆ prepare_boundary_reconstruction_stencil() [1/2]
requires (dim == 1)
| void DiFfRG::FV::KurganovTadmor::internal::prepare_boundary_reconstruction_stencil | ( | BoundaryStencilData< dim, NumberType, n_components > & | , |
| const CellStencilData< dim, NumberType, n_components > & | , | ||
| const dealii::Point< dim > & | ) |
◆ prepare_boundary_reconstruction_stencil() [2/2]
requires (dim == 2)
| void DiFfRG::FV::KurganovTadmor::internal::prepare_boundary_reconstruction_stencil | ( | BoundaryStencilData< dim, NumberType, n_components > & | boundary_stencil, |
| const CellStencilData< dim, NumberType, n_components > & | physical_stencil, | ||
| const dealii::Point< dim > & | x_q ) |
◆ reconstruct_u()
| std::array< NumberType, n_components > DiFfRG::FV::KurganovTadmor::internal::reconstruct_u | ( | const std::array< NumberType, n_components > & | u_center, |
| const dealii::Point< dim > & | center, | ||
| const dealii::Point< dim > & | x, | ||
| const GradientType< dim, NumberType, n_components > & | u_grad ) |
◆ reconstruct_u_derivative()
| std::array< NumberType, n_components > DiFfRG::FV::KurganovTadmor::internal::reconstruct_u_derivative | ( | const std::array< autodiff::Real< 1, NumberType >, n_components > & | u_center, |
| const dealii::Point< dim > & | center, | ||
| const dealii::Point< dim > & | x, | ||
| const std::array< dealii::Point< dim >, 2 *dim > & | x_n, | ||
| const std::array< std::array< autodiff::Real< 1, NumberType >, n_components >, 2 *dim > & | u_n ) |
◆ restrict_hessian_to_block()
| HessianTensor< NumberType, dim, n_components > DiFfRG::FV::KurganovTadmor::internal::restrict_hessian_to_block | ( | const HessianTensor< NumberType, dim, n_components > & | H, |
| const std::array< int, n_components > & | blocks, | ||
| const int | block ) |
Copy of H with the two jacobian indices restricted to block.
The differentiation index is left alone: the block's speed depends on the whole solution through the entries of its own sub-matrix.
- See also
- restrict_jacobian_to_block.
◆ restrict_jacobian_to_block()
| std::array< JacobianMatrix< NumberType, n_components >, dim > DiFfRG::FV::KurganovTadmor::internal::restrict_jacobian_to_block | ( | const std::array< JacobianMatrix< NumberType, n_components >, dim > & | J, |
| const std::array< int, n_components > & | blocks, | ||
| const int | block ) |
Copy of J with every row and column outside block zeroed.
The spectral radius of the result is that of the block's own diagonal sub-matrix, padded with zero eigenvalues, so a wave-speed strategy can be handed this and needs to know nothing about blocks.
- See also
- AbstractModel::wave_speed_blocks.
◆ reverse_face_reconstruction()
| FaceReconstructionState< dim, NumberType, n_components > DiFfRG::FV::KurganovTadmor::internal::reverse_face_reconstruction | ( | const FaceReconstructionState< dim, NumberType, n_components > & | state | ) |
◆ sgn()
| int DiFfRG::FV::KurganovTadmor::internal::sgn | ( | T | val | ) |
◆ sort_four_point_stencil()
| void DiFfRG::FV::KurganovTadmor::internal::sort_four_point_stencil | ( | FourPointStencil< dim, NumberType, n_components > & | stencil | ) |
◆ tag_boundary_reconstruction_stencil_dofs()
| BoundaryReconstructionStencilData< dim, autodiff::Real< 1, NumberType >, n_components > DiFfRG::FV::KurganovTadmor::internal::tag_boundary_reconstruction_stencil_dofs | ( | const BoundaryReconstructionStencilData< dim, NumberType, n_components > & | boundary_reconstruction_stencil, |
| dealii::types::global_dof_index | dof_j ) |
◆ tag_boundary_stencil_dofs()
| BoundaryStencilData< dim, autodiff::Real< 1, NumberType >, n_components > DiFfRG::FV::KurganovTadmor::internal::tag_boundary_stencil_dofs | ( | const BoundaryStencilData< dim, NumberType, n_components > & | boundary_stencil, |
| dealii::types::global_dof_index | dof_j ) |
◆ tag_cell_dofs()
| CellData< dim, autodiff::Real< 1, NumberType >, n_components > DiFfRG::FV::KurganovTadmor::internal::tag_cell_dofs | ( | const CellData< dim, NumberType, n_components > & | cell_data, |
| dealii::types::global_dof_index | dof_j ) |
◆ tag_cell_stencil_dofs()
| CellStencilData< dim, autodiff::Real< 1, NumberType >, n_components > DiFfRG::FV::KurganovTadmor::internal::tag_cell_stencil_dofs | ( | const CellStencilData< dim, NumberType, n_components > & | cell_stencil, |
| dealii::types::global_dof_index | dof_j ) |
Generated by