Finite Volume Solver  prototype
A framework to build finite volume solvers for the AG Klein at the Freie Universität Berlin.
Classes | Public Types | Public Member Functions | Public Attributes | Static Public Attributes | Private Member Functions | List of all members
fub::ConservativeHGridReconstruction< Equation > Struct Template Reference

#include <MyStabilisation.hpp>

Classes

struct  AuxiliaryReconstructionData
 

Public Types

using Base = BasicHGridReconstruction< Equation::Rank()>
 
using Conservative = ::fub::Conservative< Equation >
 
using ConservativeArray = ::fub::ConservativeArray< Equation >
 
using Complete = ::fub::Complete< Equation >
 
using CompleteArray = ::fub::CompleteArray< Equation >
 

Public Member Functions

 ConservativeHGridReconstruction (const Equation &equation)
 
void ComputeGradients (span< Conservative, 2 > gradient, span< const Conservative, 4 > states, span< const Coordinates< Rank >, 4 > x)
 
void ComputeGradients (span< Conservative, 2 > gradient, span< const Conservative, 5 > states, span< const Coordinates< Rank >, 5 > x)
 
void ComputeGradients (const View< Conservative > &gradient_x, const View< Conservative > &gradient_y, const View< Conservative > &gradient_z, const View< const Conservative > &states, const StridedDataView< const char, Rank > &flags, const CutCellData< Rank > &geom, const Coordinates< Rank > &dx)
 
std::array< double, 2 > FindAdmissibleInterval (const Coordinates< Rank > &xM, const Coordinates< Rank > &xB, const Coordinates< Rank > &slope, const Coordinates< Rank > &dx)
 
double Length (const std::array< double, 2 > &interval)
 
IndexBox< RankMakeIndexBox (const Index< Rank > &signs) noexcept
 
AuxiliaryReconstructionData Sort (const AuxiliaryReconstructionData &aux_data)
 
std::array< AuxiliaryReconstructionData, 2 > SplitAt (const AuxiliaryReconstructionData &aux, double dx)
 
void SetZero (Conservative &cons)
 
AuxiliaryReconstructionData GetAuxiliaryData (const Index< Rank > &index, const CutCellData< Rank > &geom, const Coordinates< Rank > &dx, const Coordinates< Rank > &slope, double required_length)
 
AuxiliaryReconstructionData GetAuxiliaryData (const Index< Rank > &index, const CutCellData< Rank > &geom, const Coordinates< Rank > &dx, Direction dir)
 
double TotalLength (const AuxiliaryReconstructionData &aux) noexcept
 
bool IntegrateCellState (Conservative &integral, Conservative &integral_gradient, const View< const Conservative > &states, const View< const Conservative > &gradient_x, const View< const Conservative > &gradient_y, const View< const Conservative > &gradient_z, const CutCellData< Rank > &geom, const AuxiliaryReconstructionData &aux_data, const Coordinates< Rank > &dx, double total_length)
 
bool IntegrateCellState (Conservative &integral, Conservative &integral_gradient, const View< const Conservative > &states, const View< const Conservative > &gradient_x, const View< const Conservative > &gradient_y, const View< const Conservative > &gradient_z, const CutCellData< Rank > &geom, const AuxiliaryReconstructionData &aux_data, const Coordinates< Rank > &dx)
 
void ReconstructSinglyShieldedStencil (span< Complete, 2 > h_grid_singly_shielded, span< Conservative, 2 > h_grid_singly_shielded_gradients, const View< const Complete > &states, const View< const Conservative > &gradient_x, const View< const Conservative > &gradient_y, const View< const Conservative > &gradient_z, const CutCellData< Rank > &cutcell_data, const Index< Rank > &cell, Duration, const Coordinates< Rank > &dx, Direction dir)
 
void ReconstructEmbeddedBoundaryStencil (span< Complete, 2 > h_grid_embedded_boundary, span< Conservative, 2 > h_grid_embedded_boundary_slopes, const View< const Complete > &states, const View< const Conservative > &gradient_x, const View< const Conservative > &gradient_y, const View< const Conservative > &gradient_z, const CutCellData< Rank > &cutcell_data, const Index< Rank > &cell, Duration, Eigen::Matrix< double, Rank, 1 > dx, Direction dir)
 
void ReconstructRegularStencil (span< Complete, 2 > h_grid_regular, span< Conservative, 2 > h_grid_regular_gradients, const View< const Complete > &states, const View< const Conservative > &gradient_x, const View< const Conservative > &gradient_y, const View< const Conservative > &gradient_z, const CutCellData< Rank > &geom, const Index< Rank > &face, Duration, Eigen::Matrix< double, Rank, 1 > dx, Direction dir)
 
void ComputeGradients (span< double, 2 > gradient, span< const double, 4 > states, span< const Coordinates< Rank >, 4 > x)
 
void ComputeGradients (span< double, 2 > gradient, span< const double, 5 > states, span< const Coordinates< Rank >, 5 > x)
 
void LimitGradients (const std::array< StridedDataView< double, Rank >, Rank > &grad_u, StridedDataView< const double, Rank > u, StridedDataView< const char, Rank > needs_limiter, const CutCellData< Rank > &geom, const Coordinates< Rank > &dx) const
 

Public Attributes

Equation equation_
 
std::array< Conservative, 3 > gradient_
 
std::array< Conservative, 4 > stencil
 
Conservative limited_slope_
 
Conservative state_
 
Conservative gradient_dir_
 
Conservative boundary_state_
 
Conservative boundary_gradient_
 
Conservative interior_state_
 
Conservative interior_gradient_
 

Static Public Attributes

static constexpr int Rank
 

Private Member Functions

void LimitGradientsAtIndex (const std::array< StridedDataView< double, Rank >, Rank > &grad_u, StridedDataView< const double, Rank > u, const CutCellData< Rank > &geom, const Index< Rank > &index, const Coordinates< Rank > &dx) const
 

Member Typedef Documentation

◆ Base

template<typename Equation >
using fub::ConservativeHGridReconstruction< Equation >::Base = BasicHGridReconstruction<Equation::Rank()>

◆ Complete

template<typename Equation >
using fub::ConservativeHGridReconstruction< Equation >::Complete = ::fub::Complete<Equation>

◆ CompleteArray

template<typename Equation >
using fub::ConservativeHGridReconstruction< Equation >::CompleteArray = ::fub::CompleteArray<Equation>

◆ Conservative

template<typename Equation >
using fub::ConservativeHGridReconstruction< Equation >::Conservative = ::fub::Conservative<Equation>

◆ ConservativeArray

template<typename Equation >
using fub::ConservativeHGridReconstruction< Equation >::ConservativeArray = ::fub::ConservativeArray<Equation>

Constructor & Destructor Documentation

◆ ConservativeHGridReconstruction()

template<typename Equation >
fub::ConservativeHGridReconstruction< Equation >::ConservativeHGridReconstruction ( const Equation &  equation)
inline

Member Function Documentation

◆ ComputeGradients() [1/5]

template<typename Equation >
void fub::ConservativeHGridReconstruction< Equation >::ComputeGradients ( const View< Conservative > &  gradient_x,
const View< Conservative > &  gradient_y,
const View< Conservative > &  gradient_z,
const View< const Conservative > &  states,
const StridedDataView< const char, Rank > &  flags,
const CutCellData< Rank > &  geom,
const Coordinates< Rank > &  dx 
)
inline

◆ ComputeGradients() [2/5]

template<typename Equation >
void fub::ConservativeHGridReconstruction< Equation >::ComputeGradients ( span< Conservative, 2 >  gradient,
span< const Conservative, 4 >  states,
span< const Coordinates< Rank >, 4 >  x 
)
inline

◆ ComputeGradients() [3/5]

template<typename Equation >
void fub::ConservativeHGridReconstruction< Equation >::ComputeGradients ( span< Conservative, 2 >  gradient,
span< const Conservative, 5 >  states,
span< const Coordinates< Rank >, 5 >  x 
)
inline

◆ ComputeGradients() [4/5]

void fub::BasicHGridReconstruction< Rank >::ComputeGradients ( span< double, 2 >  gradient,
span< const double, 4 >  states,
span< const Coordinates< Rank >, 4 >  x 
)
inherited

◆ ComputeGradients() [5/5]

void fub::BasicHGridReconstruction< Rank >::ComputeGradients ( span< double, 2 >  gradient,
span< const double, 5 >  states,
span< const Coordinates< Rank >, 5 >  x 
)
inherited

◆ FindAdmissibleInterval()

template<typename Equation >
std::array<double, 2> fub::ConservativeHGridReconstruction< Equation >::FindAdmissibleInterval ( const Coordinates< Rank > &  xM,
const Coordinates< Rank > &  xB,
const Coordinates< Rank > &  slope,
const Coordinates< Rank > &  dx 
)
inline

◆ GetAuxiliaryData() [1/2]

template<typename Equation >
AuxiliaryReconstructionData fub::ConservativeHGridReconstruction< Equation >::GetAuxiliaryData ( const Index< Rank > &  index,
const CutCellData< Rank > &  geom,
const Coordinates< Rank > &  dx,
const Coordinates< Rank > &  slope,
double  required_length 
)
inline

◆ GetAuxiliaryData() [2/2]

template<typename Equation >
AuxiliaryReconstructionData fub::ConservativeHGridReconstruction< Equation >::GetAuxiliaryData ( const Index< Rank > &  index,
const CutCellData< Rank > &  geom,
const Coordinates< Rank > &  dx,
Direction  dir 
)
inline

◆ IntegrateCellState() [1/2]

template<typename Equation >
bool fub::ConservativeHGridReconstruction< Equation >::IntegrateCellState ( Conservative integral,
Conservative integral_gradient,
const View< const Conservative > &  states,
const View< const Conservative > &  gradient_x,
const View< const Conservative > &  gradient_y,
const View< const Conservative > &  gradient_z,
const CutCellData< Rank > &  geom,
const AuxiliaryReconstructionData aux_data,
const Coordinates< Rank > &  dx 
)
inline

◆ IntegrateCellState() [2/2]

template<typename Equation >
bool fub::ConservativeHGridReconstruction< Equation >::IntegrateCellState ( Conservative integral,
Conservative integral_gradient,
const View< const Conservative > &  states,
const View< const Conservative > &  gradient_x,
const View< const Conservative > &  gradient_y,
const View< const Conservative > &  gradient_z,
const CutCellData< Rank > &  geom,
const AuxiliaryReconstructionData aux_data,
const Coordinates< Rank > &  dx,
double  total_length 
)
inline

◆ Length()

template<typename Equation >
double fub::ConservativeHGridReconstruction< Equation >::Length ( const std::array< double, 2 > &  interval)
inline

◆ LimitGradients()

void fub::BasicHGridReconstruction< Rank >::LimitGradients ( const std::array< StridedDataView< double, Rank >, Rank > &  grad_u,
StridedDataView< const double, Rank >  u,
StridedDataView< const char, Rank >  needs_limiter,
const CutCellData< Rank > &  geom,
const Coordinates< Rank > &  dx 
) const
inherited

◆ LimitGradientsAtIndex()

void fub::BasicHGridReconstruction< Rank >::LimitGradientsAtIndex ( const std::array< StridedDataView< double, Rank >, Rank > &  grad_u,
StridedDataView< const double, Rank >  u,
const CutCellData< Rank > &  geom,
const Index< Rank > &  index,
const Coordinates< Rank > &  dx 
) const
privateinherited

◆ MakeIndexBox()

template<typename Equation >
IndexBox<Rank> fub::ConservativeHGridReconstruction< Equation >::MakeIndexBox ( const Index< Rank > &  signs)
inlinenoexcept

◆ ReconstructEmbeddedBoundaryStencil()

template<typename Equation >
void fub::ConservativeHGridReconstruction< Equation >::ReconstructEmbeddedBoundaryStencil ( span< Complete, 2 >  h_grid_embedded_boundary,
span< Conservative, 2 >  h_grid_embedded_boundary_slopes,
const View< const Complete > &  states,
const View< const Conservative > &  gradient_x,
const View< const Conservative > &  gradient_y,
const View< const Conservative > &  gradient_z,
const CutCellData< Rank > &  cutcell_data,
const Index< Rank > &  cell,
Duration  ,
Eigen::Matrix< double, Rank, 1 >  dx,
Direction  dir 
)
inline

◆ ReconstructRegularStencil()

template<typename Equation >
void fub::ConservativeHGridReconstruction< Equation >::ReconstructRegularStencil ( span< Complete, 2 >  h_grid_regular,
span< Conservative, 2 >  h_grid_regular_gradients,
const View< const Complete > &  states,
const View< const Conservative > &  gradient_x,
const View< const Conservative > &  gradient_y,
const View< const Conservative > &  gradient_z,
const CutCellData< Rank > &  geom,
const Index< Rank > &  face,
Duration  ,
Eigen::Matrix< double, Rank, 1 >  dx,
Direction  dir 
)
inline

◆ ReconstructSinglyShieldedStencil()

template<typename Equation >
void fub::ConservativeHGridReconstruction< Equation >::ReconstructSinglyShieldedStencil ( span< Complete, 2 >  h_grid_singly_shielded,
span< Conservative, 2 >  h_grid_singly_shielded_gradients,
const View< const Complete > &  states,
const View< const Conservative > &  gradient_x,
const View< const Conservative > &  gradient_y,
const View< const Conservative > &  gradient_z,
const CutCellData< Rank > &  cutcell_data,
const Index< Rank > &  cell,
Duration  ,
const Coordinates< Rank > &  dx,
Direction  dir 
)
inline

◆ SetZero()

template<typename Equation >
void fub::ConservativeHGridReconstruction< Equation >::SetZero ( Conservative cons)
inline

◆ Sort()

template<typename Equation >
AuxiliaryReconstructionData fub::ConservativeHGridReconstruction< Equation >::Sort ( const AuxiliaryReconstructionData aux_data)
inline

◆ SplitAt()

template<typename Equation >
std::array<AuxiliaryReconstructionData, 2> fub::ConservativeHGridReconstruction< Equation >::SplitAt ( const AuxiliaryReconstructionData aux,
double  dx 
)
inline

◆ TotalLength()

template<typename Equation >
double fub::ConservativeHGridReconstruction< Equation >::TotalLength ( const AuxiliaryReconstructionData aux)
inlinenoexcept

Member Data Documentation

◆ boundary_gradient_

template<typename Equation >
Conservative fub::ConservativeHGridReconstruction< Equation >::boundary_gradient_

◆ boundary_state_

template<typename Equation >
Conservative fub::ConservativeHGridReconstruction< Equation >::boundary_state_

◆ equation_

template<typename Equation >
Equation fub::ConservativeHGridReconstruction< Equation >::equation_

◆ gradient_

template<typename Equation >
std::array<Conservative, 3> fub::ConservativeHGridReconstruction< Equation >::gradient_

◆ gradient_dir_

template<typename Equation >
Conservative fub::ConservativeHGridReconstruction< Equation >::gradient_dir_

◆ interior_gradient_

template<typename Equation >
Conservative fub::ConservativeHGridReconstruction< Equation >::interior_gradient_

◆ interior_state_

template<typename Equation >
Conservative fub::ConservativeHGridReconstruction< Equation >::interior_state_

◆ limited_slope_

template<typename Equation >
Conservative fub::ConservativeHGridReconstruction< Equation >::limited_slope_

◆ Rank

template<typename Equation >
constexpr int fub::ConservativeHGridReconstruction< Equation >::Rank
staticconstexpr

◆ state_

template<typename Equation >
Conservative fub::ConservativeHGridReconstruction< Equation >::state_

◆ stencil

template<typename Equation >
std::array<Conservative, 4> fub::ConservativeHGridReconstruction< Equation >::stencil

The documentation for this struct was generated from the following file: