Finite Volume Solver  prototype
A framework to build finite volume solvers for the AG Klein at the Freie Universität Berlin.
Public Types | Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | List of all members
fub::amrex::BK19LevelIntegrator Class Reference

#include <BK19LevelIntegrator.hpp>

Public Types

using Coordinates = Eigen::Matrix< double, Rank, 1 >
 
using Equation = CompressibleAdvection< Rank >
 
using Complete = ::fub::Complete< Equation >
 
using Conservative = ::fub::Conservative< Equation >
 
using SplittingMethod = ::fub::AnySplitMethod
 
using AdvectionSolver = DimensionalSplitLevelIntegrator< Rank, CompressibleAdvectionIntegratorContext, SplittingMethod >
 

Public Member Functions

AdvectionSolverGetAdvection ()
 
const AdvectionSolverGetAdvection () const
 
 BK19LevelIntegrator (const CompressibleAdvection< Rank > &equation, AdvectionSolver advection, std::shared_ptr<::amrex::MLNodeHelmholtz > linop, const BK19PhysicalParameters &physical_parameters, const BK19LevelIntegratorOptions &options=BK19LevelIntegratorOptions())
 
void ResetPatchHierarchy (std::shared_ptr< GriddingAlgorithm > grid)
 
Result< void, TimeStepTooLargeAdvanceLevelNonRecursively (int level, Duration dt, std::pair< int, int > subcycle)
 
void InitialProjection (int level)
 
Duration ComputeStableDt (int level_number)
 Returns a stable dt on a specified level across all spatial directions. More...
 
const IntegratorContextGetContext () const noexcept
 
IntegratorContextGetContext () noexcept
 
void PostAdvanceHierarchy ([[maybe_unused]] Duration time_step_size)
 
Result< void, TimeStepTooLargePostAdvanceLevel ([[maybe_unused]] int level,[[maybe_unused]] Duration time_step_size,[[maybe_unused]] std::pair< int, int > subcycle)
 
void PreAdvanceHierarchy ()
 
void PreAdvanceLevel ([[maybe_unused]] int level,[[maybe_unused]] Duration time_step_size,[[maybe_unused]] std::pair< int, int > subcycle)
 

Static Public Attributes

static constexpr int Rank
 

Private Member Functions

const CompressibleAdvectionIntegratorContextGetContext () const noexcept
 
const AnySplitMethod & GetSplitMethod () const noexcept
 
void PostAdvanceHierarchy ([[maybe_unused]] Duration time_step_size)
 
void PreAdvanceLevel ([[maybe_unused]] int level,[[maybe_unused]] Duration time_step_size,[[maybe_unused]] std::pair< int, int > subcycle)
 
Result< void, TimeStepTooLargePostAdvanceLevel ([[maybe_unused]] int level,[[maybe_unused]] Duration time_step_size,[[maybe_unused]] std::pair< int, int > subcycle)
 
Duration ComputeStableDt (int level_number)
 Returns a stable dt on a specified level across all spatial directions. More...
 

Private Attributes

BK19PhysicalParameters phys_param_
 
BK19LevelIntegratorOptions options_
 
CompressibleAdvection< Rankequation_
 
fub::IndexMapping< fub::CompressibleAdvection< 2 > > index_
 
std::shared_ptr<::amrex::MLNodeHelmholtz > lin_op_
 

Member Typedef Documentation

◆ AdvectionSolver

◆ Complete

◆ Conservative

◆ Coordinates

using fub::amrex::BK19LevelIntegrator::Coordinates = Eigen::Matrix<double, Rank, 1>

◆ Equation

◆ SplittingMethod

using fub::amrex::BK19LevelIntegrator::SplittingMethod = ::fub::AnySplitMethod

Constructor & Destructor Documentation

◆ BK19LevelIntegrator()

fub::amrex::BK19LevelIntegrator::BK19LevelIntegrator ( const CompressibleAdvection< Rank > &  equation,
AdvectionSolver  advection,
std::shared_ptr<::amrex::MLNodeHelmholtz >  linop,
const BK19PhysicalParameters physical_parameters,
const BK19LevelIntegratorOptions options = BK19LevelIntegratorOptions() 
)

Member Function Documentation

◆ AdvanceLevelNonRecursively()

Result<void, TimeStepTooLarge> fub::amrex::BK19LevelIntegrator::AdvanceLevelNonRecursively ( int  level,
Duration  dt,
std::pair< int, int >  subcycle 
)

◆ ComputeStableDt() [1/2]

Duration fub::DimensionalSplitLevelIntegrator< Rank, Context, SplitMethod >::ComputeStableDt

Returns a stable dt on a specified level across all spatial directions.

For stability it is advised to multiply some additional CFL factor < 1.0.

◆ ComputeStableDt() [2/2]

Duration fub::DimensionalSplitLevelIntegrator< Rank, Context, AnySplitMethod >::ComputeStableDt ( int  level_number)
inherited

Returns a stable dt on a specified level across all spatial directions.

For stability it is advised to multiply some additional CFL factor < 1.0.

◆ GetAdvection() [1/2]

AdvectionSolver& fub::amrex::BK19LevelIntegrator::GetAdvection ( )
inline

◆ GetAdvection() [2/2]

const AdvectionSolver& fub::amrex::BK19LevelIntegrator::GetAdvection ( ) const
inline

◆ GetContext() [1/3]

const IntegratorContext& fub::DimensionalSplitLevelIntegrator< R, IntegratorContext, SplitMethod >::GetContext
inlinenoexcept

◆ GetContext() [2/3]

const CompressibleAdvectionIntegratorContext & fub::DimensionalSplitLevelIntegrator< R, CompressibleAdvectionIntegratorContext , AnySplitMethod >::GetContext ( ) const
inlinenoexceptinherited

◆ GetContext() [3/3]

IntegratorContext& fub::DimensionalSplitLevelIntegrator< R, IntegratorContext, SplitMethod >::GetContext
inlinenoexcept

◆ GetSplitMethod()

const AnySplitMethod & fub::DimensionalSplitLevelIntegrator< R, CompressibleAdvectionIntegratorContext , AnySplitMethod >::GetSplitMethod ( ) const
inlinenoexceptinherited

◆ InitialProjection()

void fub::amrex::BK19LevelIntegrator::InitialProjection ( int  level)

◆ PostAdvanceHierarchy() [1/2]

void fub::DimensionalSplitLevelIntegrator< R, IntegratorContext, SplitMethod >::PostAdvanceHierarchy

◆ PostAdvanceHierarchy() [2/2]

void fub::DimensionalSplitLevelIntegrator< R, CompressibleAdvectionIntegratorContext , AnySplitMethod >::PostAdvanceHierarchy ( [[maybe_unused] ] Duration  time_step_size)
inherited

◆ PostAdvanceLevel() [1/2]

Result< void, TimeStepTooLarge > fub::DimensionalSplitLevelIntegrator< R, IntegratorContext, SplitMethod >::PostAdvanceLevel

◆ PostAdvanceLevel() [2/2]

Result< void, TimeStepTooLarge > fub::DimensionalSplitLevelIntegrator< R, CompressibleAdvectionIntegratorContext , AnySplitMethod >::PostAdvanceLevel ( [[maybe_unused] ] int  level,
[[maybe_unused] ] Duration  time_step_size,
[[maybe_unused] ] std::pair< int, int >  subcycle 
)
inherited

◆ PreAdvanceHierarchy()

void fub::DimensionalSplitLevelIntegrator< R, IntegratorContext, SplitMethod >::PreAdvanceHierarchy

◆ PreAdvanceLevel() [1/2]

void fub::DimensionalSplitLevelIntegrator< R, IntegratorContext, SplitMethod >::PreAdvanceLevel

◆ PreAdvanceLevel() [2/2]

void fub::DimensionalSplitLevelIntegrator< R, CompressibleAdvectionIntegratorContext , AnySplitMethod >::PreAdvanceLevel ( [[maybe_unused] ] int  level,
[[maybe_unused] ] Duration  time_step_size,
[[maybe_unused] ] std::pair< int, int >  subcycle 
)
inherited

◆ ResetPatchHierarchy()

void fub::amrex::BK19LevelIntegrator::ResetPatchHierarchy ( std::shared_ptr< GriddingAlgorithm grid)

Member Data Documentation

◆ equation_

CompressibleAdvection<Rank> fub::amrex::BK19LevelIntegrator::equation_
private

◆ index_

fub::IndexMapping<fub::CompressibleAdvection<2> > fub::amrex::BK19LevelIntegrator::index_
private

◆ lin_op_

std::shared_ptr<::amrex::MLNodeHelmholtz> fub::amrex::BK19LevelIntegrator::lin_op_
private

◆ options_

BK19LevelIntegratorOptions fub::amrex::BK19LevelIntegrator::options_
private

◆ phys_param_

BK19PhysicalParameters fub::amrex::BK19LevelIntegrator::phys_param_
private

◆ Rank

constexpr int fub::amrex::BK19LevelIntegrator::Rank
staticconstexpr

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