Finite Volume Solver
prototype
A framework to build finite volume solvers for the AG Klein at the Freie Universität Berlin.
|
Classes | |
struct | CoordinatesRange |
struct | HierarchyOptions |
struct | CartesianPatchCoordinates |
class | CompleteFromConsCalculation |
class | FluxMethodAdapter |
This is a wrapper class which dispatches a given base method object and dispatches SAMRAI typed patches. More... | |
class | GriddingAlgorithm |
struct | HyperbolicTimeIntegrator |
class | IntegratorContext |
This class is used by the HypebrolicSplitLevelIntegrator and delegates AMR related tasks to the AMReX library. More... | |
struct | PatchHierarchyOptions |
struct | CoordinateRange |
class | PatchHierarchy |
struct | DataDescription |
struct | ScopeGuard |
Initialises and finalizes the required SAMRAI routines for an application. More... | |
class | ConstantBox |
class | GradientDetector |
Typedefs | |
using | AnyBoundaryCondition = ::fub::AnyBoundaryCondition< GriddingAlgorithm > |
using | AnyInitialData = ::fub::AnyInitialData< GriddingAlgorithm > |
using | AnyTaggingMethod = ::fub::AnyTaggingMethod< GriddingAlgorithm > |
using | HyperbolicMethod = ::fub::HyperbolicMethod< IntegratorContext > |
Functions | |
std::shared_ptr< SAMRAI::hier::PatchHierarchy > | CartesianPatchHierarchy (const SAMRAI::hier::Box &box, const CoordinatesRange &x_up, const HierarchyOptions &options) |
SAMRAI::geom::CartesianPatchGeometry * | GetCartesianPatchGeometry (const SAMRAI::hier::Patch &patch) |
CartesianCoordinates | GetCartesianCoordinates (const SAMRAI::hier::Patch &patch) |
SAMRAI::hier::ComponentSelector | SelectComponents (const SAMRAI::hier::PatchDescriptor &desc) |
SAMRAI::hier::ComponentSelector | SelectComponents (span< const int > data_ids) |
template<typename I , std::size_t Rank> | |
std::enable_if_t< std::is_integral_v< I >, std::shared_ptr< SAMRAI::geom::CartesianGridGeometry > > | MakeCartesianGridGeometry (const std::array< I, Rank > &n_cells, const CoordinateRange< Rank > &coordinates) |
template<typename... Is> | |
std::array< double, sizeof...(Is)> | GetCellCenter (const SAMRAI::geom::CartesianGridGeometry &geom, Is... is) |
template<typename Equation > | |
DataDescription | RegisterVariables (const Equation &equation, std::string prefix=std::string()) |
This function registers all neccessary variables and contexts with SAMRAI. More... | |
template<int Rank, typename T > | |
mdspan< T, Rank > | MakeMdSpan (SAMRAI::pdat::ArrayData< T > &array) |
template<int Rank, typename T > | |
mdspan< const T, Rank > | MakeMdSpan (const SAMRAI::pdat::ArrayData< T > &array) |
template<int Rank> | |
IndexBox< Rank > | AsIndexBox (const SAMRAI::hier::Box &box) |
template<int Rank, typename T > | |
PatchDataView< const T, Rank > | MakePatchDataView (const SAMRAI::pdat::ArrayData< T > &array) |
template<int Rank, typename T > | |
PatchDataView< T, Rank > | MakePatchDataView (SAMRAI::pdat::ArrayData< T > &array) |
template<typename PatchData > | |
std::enable_if_t< std::is_pointer_v< PatchData >, void > | GetPatchData (span< PatchData > patch_datas, SAMRAI::hier::Patch &patch, span< const int > data_ids) |
template<typename PatchData > | |
std::enable_if_t< std::is_pointer_v< PatchData >, void > | GetPatchData (span< PatchData > patch_datas, const SAMRAI::hier::Patch &patch, span< const int > data_ids) |
template<typename State > | |
BasicView< State > | MakeView (span< SAMRAI::pdat::SideData< double > * > span, const typename State::Equation &, Direction dir) |
template<typename State > | |
BasicView< State > | MakeView (span< SAMRAI::pdat::CellData< double > * > span, const typename State::Equation &) |
template<typename State > | |
BasicView< const State > | MakeView (span< SAMRAI::pdat::CellData< double > const * > span, const typename State::Equation &) |
template<typename State , typename Range > | |
View< State > | MakeView (Range &&span, const typename State::Equation &equation, const IndexBox< State::Equation::Rank()> &box) |
template<typename State , typename Range > | |
View< State > | MakeView (Range &&span, const typename State::Equation &equation, Direction dir, const IndexBox< State::Equation::Rank()> &box) |
int | GetDirection (const SAMRAI::hier::IntVector &directions) |
template<typename Eq , typename... Ps> | |
GradientDetector (const Eq &eq, const std::pair< Ps, double > &... ps) -> GradientDetector< Eq, Ps... > | |
using fub::samrai::AnyBoundaryCondition = typedef ::fub::AnyBoundaryCondition<GriddingAlgorithm> |
using fub::samrai::AnyInitialData = typedef ::fub::AnyInitialData<GriddingAlgorithm> |
using fub::samrai::AnyTaggingMethod = typedef ::fub::AnyTaggingMethod<GriddingAlgorithm> |
using fub::samrai::HyperbolicMethod = typedef ::fub::HyperbolicMethod<IntegratorContext> |
IndexBox<Rank> fub::samrai::AsIndexBox | ( | const SAMRAI::hier::Box & | box | ) |
std::shared_ptr<SAMRAI::hier::PatchHierarchy> fub::samrai::CartesianPatchHierarchy | ( | const SAMRAI::hier::Box & | box, |
const CoordinatesRange & | x_up, | ||
const HierarchyOptions & | options | ||
) |
CartesianCoordinates fub::samrai::GetCartesianCoordinates | ( | const SAMRAI::hier::Patch & | patch | ) |
SAMRAI::geom::CartesianPatchGeometry* fub::samrai::GetCartesianPatchGeometry | ( | const SAMRAI::hier::Patch & | patch | ) |
std::array<double, sizeof...(Is)> fub::samrai::GetCellCenter | ( | const SAMRAI::geom::CartesianGridGeometry & | geom, |
Is... | is | ||
) |
int fub::samrai::GetDirection | ( | const SAMRAI::hier::IntVector & | directions | ) |
std::enable_if_t<std::is_pointer_v<PatchData>, void> fub::samrai::GetPatchData | ( | span< PatchData > | patch_datas, |
const SAMRAI::hier::Patch & | patch, | ||
span< const int > | data_ids | ||
) |
std::enable_if_t<std::is_pointer_v<PatchData>, void> fub::samrai::GetPatchData | ( | span< PatchData > | patch_datas, |
SAMRAI::hier::Patch & | patch, | ||
span< const int > | data_ids | ||
) |
fub::samrai::GradientDetector | ( | const Eq & | eq, |
const std::pair< Ps, double > &... | ps | ||
) | -> GradientDetector< Eq, Ps... > |
std::enable_if_t<std::is_integral_v<I>, std::shared_ptr<SAMRAI::geom::CartesianGridGeometry> > fub::samrai::MakeCartesianGridGeometry | ( | const std::array< I, Rank > & | n_cells, |
const CoordinateRange< Rank > & | coordinates | ||
) |
mdspan<const T, Rank> fub::samrai::MakeMdSpan | ( | const SAMRAI::pdat::ArrayData< T > & | array | ) |
mdspan<T, Rank> fub::samrai::MakeMdSpan | ( | SAMRAI::pdat::ArrayData< T > & | array | ) |
PatchDataView<const T, Rank> fub::samrai::MakePatchDataView | ( | const SAMRAI::pdat::ArrayData< T > & | array | ) |
PatchDataView<T, Rank> fub::samrai::MakePatchDataView | ( | SAMRAI::pdat::ArrayData< T > & | array | ) |
View<State> fub::samrai::MakeView | ( | Range && | span, |
const typename State::Equation & | equation, | ||
const IndexBox< State::Equation::Rank()> & | box | ||
) |
View<State> fub::samrai::MakeView | ( | Range && | span, |
const typename State::Equation & | equation, | ||
Direction | dir, | ||
const IndexBox< State::Equation::Rank()> & | box | ||
) |
BasicView<State> fub::samrai::MakeView | ( | span< SAMRAI::pdat::CellData< double > * > | span, |
const typename State::Equation & | |||
) |
BasicView<const State> fub::samrai::MakeView | ( | span< SAMRAI::pdat::CellData< double > const * > | span, |
const typename State::Equation & | |||
) |
BasicView<State> fub::samrai::MakeView | ( | span< SAMRAI::pdat::SideData< double > * > | span, |
const typename State::Equation & | , | ||
Direction | dir | ||
) |
DataDescription fub::samrai::RegisterVariables | ( | const Equation & | equation, |
std::string | prefix = std::string() |
||
) |
This function registers all neccessary variables and contexts with SAMRAI.
The returned DataDescription shall be passed to solver classes.
[in] | equation | The equation describes shape and size for each variable. |
[in] | prefix | An optional prefix which will be prepend to all variable names. |
SAMRAI::hier::ComponentSelector fub::samrai::SelectComponents | ( | const SAMRAI::hier::PatchDescriptor & | desc | ) |
SAMRAI::hier::ComponentSelector fub::samrai::SelectComponents | ( | span< const int > | data_ids | ) |