Finite Volume Solver  prototype
A framework to build finite volume solvers for the AG Klein at the Freie Universität Berlin.
Public Member Functions | Private Member Functions | Private Attributes | List of all members
fub::amrex::GenericPressureValveBoundary< EulerEquation, InflowFunction, ChangeTOpenedT, IsBlocked > Class Template Reference

#include <GenericPressureValveBoundary.hpp>

Public Member Functions

 GenericPressureValveBoundary (const EulerEquation &equation, KineticState< EulerEquation > initial_compressor_state, InflowFunction fn, const GenericPressureValveBoundaryOptions &options={})
 
void FillBoundary (::amrex::MultiFab &mf, const GriddingAlgorithm &gridding, int level)
 
void FillBoundary (::amrex::MultiFab &mf, const GriddingAlgorithm &gridding, int level, Direction dir)
 
std::optional< DurationGetTimePointWhenOpened () const noexcept
 
const std::shared_ptr< KineticState< EulerEquation > > & GetSharedCompressorState () const noexcept
 

Private Member Functions

void ChangeTOpened (double inner_pressure, const GriddingAlgorithm &gridding, int level)
 

Private Attributes

EulerEquation equation_
 
GenericPressureValveBoundaryOptions options_
 
ConstantBoundary< EulerEquation > constant_boundary_
 
ReflectiveBoundary< execution::SequentialTag, EulerEquation > reflective_boundary_
 
std::shared_ptr< KineticState< EulerEquation > > compressor_state_
 
IndexMapping< EulerEquation > comps_
 
std::optional< Durationt_opened_
 
InflowFunction inflow_function_
 
ChangeTOpenedT change_t_opened_
 
IsBlocked is_blocked_
 

Constructor & Destructor Documentation

◆ GenericPressureValveBoundary()

template<typename EulerEquation , typename InflowFunction , typename ChangeTOpened , typename IsBlocked >
fub::amrex::GenericPressureValveBoundary< EulerEquation, InflowFunction, ChangeTOpened, IsBlocked >::GenericPressureValveBoundary ( const EulerEquation &  equation,
KineticState< EulerEquation >  initial_compressor_state,
InflowFunction  fn,
const GenericPressureValveBoundaryOptions options = {} 
)

Member Function Documentation

◆ ChangeTOpened()

template<typename EulerEquation , typename InflowFunction , typename ChangeTOpenedT , typename IsBlocked >
void fub::amrex::GenericPressureValveBoundary< EulerEquation, InflowFunction, ChangeTOpenedT, IsBlocked >::ChangeTOpened ( double  inner_pressure,
const GriddingAlgorithm gridding,
int  level 
)
private

◆ FillBoundary() [1/2]

template<typename EulerEquation , typename InflowFunction , typename ChangeTOpenedT , typename IsBlocked >
void fub::amrex::GenericPressureValveBoundary< EulerEquation, InflowFunction, ChangeTOpenedT, IsBlocked >::FillBoundary ( ::amrex::MultiFab &  mf,
const GriddingAlgorithm gridding,
int  level 
)

◆ FillBoundary() [2/2]

template<typename EulerEquation , typename InflowFunction , typename ChangeTOpened , typename IsBlocked >
void fub::amrex::GenericPressureValveBoundary< EulerEquation, InflowFunction, ChangeTOpened, IsBlocked >::FillBoundary ( ::amrex::MultiFab &  mf,
const GriddingAlgorithm gridding,
int  level,
Direction  dir 
)

◆ GetSharedCompressorState()

template<typename EulerEquation , typename InflowFunction , typename ChangeTOpenedT , typename IsBlocked = IsBlockedIfLargePressure>
const std::shared_ptr<KineticState<EulerEquation> >& fub::amrex::GenericPressureValveBoundary< EulerEquation, InflowFunction, ChangeTOpenedT, IsBlocked >::GetSharedCompressorState ( ) const
inlinenoexcept

◆ GetTimePointWhenOpened()

template<typename EulerEquation , typename InflowFunction , typename ChangeTOpenedT , typename IsBlocked = IsBlockedIfLargePressure>
std::optional<Duration> fub::amrex::GenericPressureValveBoundary< EulerEquation, InflowFunction, ChangeTOpenedT, IsBlocked >::GetTimePointWhenOpened ( ) const
inlinenoexcept

Member Data Documentation

◆ change_t_opened_

template<typename EulerEquation , typename InflowFunction , typename ChangeTOpenedT , typename IsBlocked = IsBlockedIfLargePressure>
ChangeTOpenedT fub::amrex::GenericPressureValveBoundary< EulerEquation, InflowFunction, ChangeTOpenedT, IsBlocked >::change_t_opened_
private

◆ compressor_state_

template<typename EulerEquation , typename InflowFunction , typename ChangeTOpenedT , typename IsBlocked = IsBlockedIfLargePressure>
std::shared_ptr<KineticState<EulerEquation> > fub::amrex::GenericPressureValveBoundary< EulerEquation, InflowFunction, ChangeTOpenedT, IsBlocked >::compressor_state_
private

◆ comps_

template<typename EulerEquation , typename InflowFunction , typename ChangeTOpenedT , typename IsBlocked = IsBlockedIfLargePressure>
IndexMapping<EulerEquation> fub::amrex::GenericPressureValveBoundary< EulerEquation, InflowFunction, ChangeTOpenedT, IsBlocked >::comps_
private

◆ constant_boundary_

template<typename EulerEquation , typename InflowFunction , typename ChangeTOpenedT , typename IsBlocked = IsBlockedIfLargePressure>
ConstantBoundary<EulerEquation> fub::amrex::GenericPressureValveBoundary< EulerEquation, InflowFunction, ChangeTOpenedT, IsBlocked >::constant_boundary_
private

◆ equation_

template<typename EulerEquation , typename InflowFunction , typename ChangeTOpenedT , typename IsBlocked = IsBlockedIfLargePressure>
EulerEquation fub::amrex::GenericPressureValveBoundary< EulerEquation, InflowFunction, ChangeTOpenedT, IsBlocked >::equation_
private

◆ inflow_function_

template<typename EulerEquation , typename InflowFunction , typename ChangeTOpenedT , typename IsBlocked = IsBlockedIfLargePressure>
InflowFunction fub::amrex::GenericPressureValveBoundary< EulerEquation, InflowFunction, ChangeTOpenedT, IsBlocked >::inflow_function_
private

◆ is_blocked_

template<typename EulerEquation , typename InflowFunction , typename ChangeTOpenedT , typename IsBlocked = IsBlockedIfLargePressure>
IsBlocked fub::amrex::GenericPressureValveBoundary< EulerEquation, InflowFunction, ChangeTOpenedT, IsBlocked >::is_blocked_
private

◆ options_

template<typename EulerEquation , typename InflowFunction , typename ChangeTOpenedT , typename IsBlocked = IsBlockedIfLargePressure>
GenericPressureValveBoundaryOptions fub::amrex::GenericPressureValveBoundary< EulerEquation, InflowFunction, ChangeTOpenedT, IsBlocked >::options_
private

◆ reflective_boundary_

template<typename EulerEquation , typename InflowFunction , typename ChangeTOpenedT , typename IsBlocked = IsBlockedIfLargePressure>
ReflectiveBoundary<execution::SequentialTag, EulerEquation> fub::amrex::GenericPressureValveBoundary< EulerEquation, InflowFunction, ChangeTOpenedT, IsBlocked >::reflective_boundary_
private

◆ t_opened_

template<typename EulerEquation , typename InflowFunction , typename ChangeTOpenedT , typename IsBlocked = IsBlockedIfLargePressure>
std::optional<Duration> fub::amrex::GenericPressureValveBoundary< EulerEquation, InflowFunction, ChangeTOpenedT, IsBlocked >::t_opened_
private

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