/home/runner/work/DiFfRG_current/DiFfRG_current/DiFfRG/include/DiFfRG/discretization/FV/assembler/reconstruction_cache.hh File Reference#

DiFfRG: /home/runner/work/DiFfRG_current/DiFfRG_current/DiFfRG/include/DiFfRG/discretization/FV/assembler/reconstruction_cache.hh File Reference
DiFfRG
Discretization Framework for functional Renormalization Group flows
reconstruction_cache.hh File Reference
#include "DiFfRG/common/math.hh"
#include <DiFfRG/discretization/common/types.hh>
#include <DiFfRG/discretization/FV/reconstructor/advection/abstract_reconstructor.hh>
#include <DiFfRG/discretization/FV/reconstructor/diffusion/corrected_weighted_least_squares_reconstructor.hh>
#include <DiFfRG/model/fv_boundaries.hh>
#include <algorithm>
#include <array>
#include <autodiff/forward/real/real.hpp>
#include <cmath>
#include <cstddef>
#include <deal.II/base/numbers.h>
#include <deal.II/base/point.h>
#include <deal.II/base/tensor.h>
#include <deal.II/base/types.h>
#include <utility>
#include <vector>

Go to the source code of this file.

Classes

struct  DiFfRG::FV::KurganovTadmor::internal::BoundaryStencilIndex< dim >
 
struct  DiFfRG::FV::KurganovTadmor::internal::BoundaryStencilIndex< 1 >
 
struct  DiFfRG::FV::KurganovTadmor::internal::FaceReconstructionState< dim, NumberType, n_components >
 
struct  DiFfRG::FV::KurganovTadmor::internal::CellData< dim, NumberType, n_components >
 
struct  DiFfRG::FV::KurganovTadmor::internal::CellGeometryDofs< dim, n_components >
 
struct  DiFfRG::FV::KurganovTadmor::internal::NeighborData< dim, NumberType, n_components >
 
struct  DiFfRG::FV::KurganovTadmor::internal::NeighborTopologyData< dim, n_components >
 
struct  DiFfRG::FV::KurganovTadmor::internal::CellStencilData< dim, NumberType, n_components >
 
struct  DiFfRG::FV::KurganovTadmor::internal::SolutionReconstructionCache< dim, NumberType, n_components >
 
struct  DiFfRG::FV::KurganovTadmor::internal::CellStencilTopologyData< dim, n_components >
 
struct  DiFfRG::FV::KurganovTadmor::internal::FourPointStencil< dim, NumberType, n_components >
 
struct  DiFfRG::FV::KurganovTadmor::internal::BoundaryStencilData< dim, NumberType, n_components >
 
struct  DiFfRG::FV::KurganovTadmor::internal::BoundaryStencilTopologyData< dim, n_components >
 
struct  DiFfRG::FV::KurganovTadmor::internal::BoundaryReconstructionStencilData< dim, NumberType, n_components >
 
struct  DiFfRG::FV::KurganovTadmor::internal::BoundaryReconstructionStencilTopologyData< dim, n_components >
 

Namespaces

namespace  DiFfRG
 
namespace  DiFfRG::FV
 
namespace  DiFfRG::FV::KurganovTadmor
 
namespace  DiFfRG::FV::KurganovTadmor::internal
 

Typedefs

template<int dim, typename NumberType , size_t n_components>
using DiFfRG::FV::KurganovTadmor::internal::GradientType = def::GradientType<dim, NumberType, n_components>
 
template<int dim, typename NumberType , size_t n_components>
using DiFfRG::FV::KurganovTadmor::internal::ThirdDerivativeType = def::ThirdDerivativeType<dim, NumberType, n_components>
 
template<int dim, typename NumberType , size_t n_components>
using DiFfRG::FV::KurganovTadmor::internal::DiffusionFaceState = def::DiffusionFaceState<dim, NumberType, n_components>
 

Functions

template<int dim, typename NumberType , size_t n_components>
FaceReconstructionState< dim, NumberType, n_components > DiFfRG::FV::KurganovTadmor::internal::reverse_face_reconstruction (const FaceReconstructionState< dim, NumberType, n_components > &state)
 
template<int dim, typename NumberType , size_t n_components>
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)
 
template<int dim, typename NumberType , size_t n_components>
void DiFfRG::FV::KurganovTadmor::internal::sort_four_point_stencil (FourPointStencil< dim, NumberType, n_components > &stencil)
 
template<int dim, typename NumberType , size_t n_components>
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)
 
template<int dim, typename NumberType , size_t n_components>
FourPointStencil< dim, NumberType, n_components > DiFfRG::FV::KurganovTadmor::internal::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 > DiFfRG::FV::KurganovTadmor::internal::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 > DiFfRG::FV::KurganovTadmor::internal::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 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)
 
template<def::HasReconstructor Reconstructor, int dim, typename NumberType , size_t n_components, typename DiffusionReconstructor = def::CorrectedWeightedLeastSquaresDiffusionReconstructor<dim, NumberType>>
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)
 
template<def::HasReconstructor Reconstructor, int dim, typename NumberType , size_t n_components>
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)
 
template<int dim, typename NumberType , size_t n_components>
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)
 
template<typename BoundaryNumberType , int dim, size_t n_components, typename VectorType >
BoundaryStencilData< dim, BoundaryNumberType, n_components > DiFfRG::FV::KurganovTadmor::internal::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 > DiFfRG::FV::KurganovTadmor::internal::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 > 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)
 
template<int dim, typename NumberType , size_t n_components>
CellStencilData< dim, NumberType, n_components > DiFfRG::FV::KurganovTadmor::internal::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 > DiFfRG::FV::KurganovTadmor::internal::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 DiFfRG::FV::KurganovTadmor::internal::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 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)
 
template<typename Model , int dim, typename NumberType , size_t n_components>
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)
 
template<typename Model , typename NumberType , size_t n_components>
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)
 
template<int dim, typename NumberType , size_t n_components>
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 > &)
 
template<int dim, typename NumberType , size_t n_components>
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)
 
template<int dim, typename NumberType , size_t n_components>
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 > &)
 
template<int dim, typename NumberType , size_t n_components>
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)
 
template<typename Model , typename NumberType , size_t n_components>
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)
 
template<typename Model , typename NumberType , size_t n_components>
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)
 
template<typename Model , typename NumberType , size_t n_components>
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)
 
template<typename Model , typename NumberType , size_t n_components>
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)
 
template<typename Model , typename NumberType , size_t n_components>
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)
 
template<typename Model , typename NumberType , size_t n_components>
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)
 
template<typename Model , typename NumberType , size_t n_components>
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)
 
template<def::HasReconstructor Reconstructor, typename Model , typename NumberType , size_t n_components>
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)
 
template<def::HasReconstructor Reconstructor, typename Model , typename NumberType , size_t n_components>
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)
 
template<def::HasReconstructor Reconstructor, typename Model , typename NumberType , size_t n_components>
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)
 
template<def::HasReconstructor Reconstructor, typename Model , typename NumberType , size_t n_components>
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)
 
template<int dim, typename NumberType , size_t n_components>
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)
 
template<int dim, typename NumberType , size_t n_components>
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)
 
template<int dim, typename NumberType , size_t n_components>
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)
 
template<int dim, typename NumberType , size_t n_components>
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)
 
template<int dim, typename NumberType , size_t n_components>
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)