Finite Volume Solver  prototype
A framework to build finite volume solvers for the AG Klein at the Freie Universität Berlin.
Namespaces | Classes | Typedefs | Enumerations | Functions
fub::amrex::cutcell Namespace Reference

Namespaces

 perfect_gas
 

Classes

class  AllRegularIndexSpace
 
class  FluxMethod
 
class  GriddingAlgorithm
 This class modifies and initializes a cutcell::PatchLevel in a cutcell::PatchHierarchy. More...
 
class  IntegratorContext
 This class manages data and the numerical method to perform cut cell simulations with the AMReX library. More...
 
struct  PatchLevel
 This class holds state data arrays for each refinement level of a patch hierarchy. More...
 
struct  PatchHierarchyOptions
 This class extents the normal hierarchy options with a pointer to an embedded boundary index space for each possible refinement level. More...
 
class  PatchHierarchy
 
struct  Reconstruction
 
struct  TimeIntegrator
 
struct  TimeIntegrator2
 
class  ConstantBox
 
class  GradientDetector
 
struct  TagAllOf
 
class  TagBuffer
 
struct  TagCutCells
 
struct  BoundarySet
 This class manages a list of boundary conditions which get applied in the order in which they are stored. More...
 
struct  ConstantBoundary
 
struct  IsentropicPressureBoundaryOptions
 
class  IsentropicPressureBoundary
 
class  IsentropicPressureExpansion
 This boundary models an isentropic pressure expansion for the one-dimensional ideal gas equations for mixtures. More...
 
struct  MachnumberBoundaryOptions
 
class  MachnumberBoundary
 
struct  MassflowBoundaryOptions
 
class  MassflowBoundary
 
struct  PressureOutflowOptions
 
class  PressureOutflowBoundary
 
class  PressureOutflowBoundary2
 
class  ReflectiveBoundary
 
class  ReflectiveBoundary2
 This boundary condition provides wall boundary which acts only on a specified subset of ghost cells. More...
 
struct  TransmissiveBoundary
 
struct  TurbineMassflowBoundaryOptions
 
class  TurbineMassflowBoundary
 This is an outflow boundary condition that models the massflow condition of a turbine machine. More...
 
class  DebugOutput
 
class  PerfectGasProbesOutput
 
class  WriteHdf5
 
class  PlotfileOutput
 

Typedefs

using AnyInitialData = ::fub::AnyInitialData< GriddingAlgorithm >
 
using AnyTaggingMethod = ::fub::AnyTaggingMethod< GriddingAlgorithm >
 
using AnyBoundaryCondition = ::fub::AnyBoundaryCondition< GriddingAlgorithm >
 
using HyperbolicMethod = ::fub::HyperbolicMethod< IntegratorContext >
 

Enumerations

enum class  TurbineMassflowMode { cellwise , average_inner_state , average_outer_state , average_massflow }
 

Functions

void FillCutCellData (const StridedDataView< double, 2 > &unshielded, const StridedDataView< double, 2 > &shielded_left, const StridedDataView< double, 2 > &shielded_right, const StridedDataView< double, 2 > &doubly_shielded, const StridedDataView< double, 2 > &unshielded_rel, const StridedDataView< double, 2 > &shielded_left_rel, const StridedDataView< double, 2 > &shielded_right_rel, const StridedDataView< double, 2 > &doubly_shielded_rel, const PatchDataView< const double, 2 > &beta, Direction dir)
 
void FillCutCellData (const StridedDataView< double, 3 > &unshielded, const StridedDataView< double, 3 > &shielded_left, const StridedDataView< double, 3 > &shielded_right, const StridedDataView< double, 3 > &doubly_shielded, const StridedDataView< double, 3 > &unshielded_rel, const StridedDataView< double, 3 > &shielded_left_rel, const StridedDataView< double, 3 > &shielded_right_rel, const StridedDataView< double, 3 > &doubly_shielded_rel, const PatchDataView< const double, 3 > &beta, Direction dir)
 
std::vector< const ::amrex::EB2::IndexSpace * > BuildRegularSpace (const ::amrex::Geometry &coarse_geometry, const ::amrex::IntVect &refine_ratio, int n_required_levels)
 
inline ::amrex::Vector< std::string > AddPrefix (const ::amrex::Vector< std::string > &names, const std::string &prefix)
 
template<typename F >
 FluxMethod (F &&) -> FluxMethod< execution::OpenMpSimdTag, std::decay_t< F >>
 
template<typename Tag , typename FM >
 FluxMethod (Tag, FM &&) -> FluxMethod< Tag, std::decay_t< FM >>
 
template<typename Equation >
void WritePlotFile (const std::string &plotfilename, const PatchHierarchy &hier, const Equation &equation)
 
template<int Rank>
void WritePlotFile (const std::string &plotfilename, const PatchHierarchy &hier, const IdealGasMix< Rank > &equation)
 
void WriteCheckpointFile (const std::string &checkpointname, const PatchHierarchy &hier)
 
PatchHierarchy ReadCheckpointFile (const std::string &checkpointname, DataDescription desc, const CartesianGridGeometry &geometry, const PatchHierarchyOptions &options)
 
void WriteMatlabData (const std::string &name, const PatchHierarchy &hierarchy, fub::Duration time_point, std::ptrdiff_t cycle_number, MPI_Comm comm)
 
void Write2Dfrom3D (const std::string &name, const PatchHierarchy &hierarchy, const ::amrex::Box &finest_box, const IdealGasMix< 3 > &eq, fub::Duration time_point, std::ptrdiff_t cycle_number, MPI_Comm comm)
 
std::vector< double > GatherStates (const PatchHierarchy &hierarchy, basic_mdspan< const double, extents< AMREX_SPACEDIM, dynamic_extent >> xs, MPI_Comm comm)
 
template<typename Equation >
 Reconstruction (const Equation &) -> Reconstruction< execution::OpenMpSimdTag, Equation >
 
template<typename Eq , typename... Ps>
 GradientDetector (const Eq &eq, const std::pair< Ps, double > &... ps) -> GradientDetector< Eq, Ps... >
 
std::array< std::ptrdiff_t, 2 > MapToSrc (const std::array< std::ptrdiff_t, 2 > &dest, const ::amrex::Geometry &geom, int side, Direction dir)
 
template<typename EulerEquation >
void ExpandState (EulerEquation &eq, Complete< EulerEquation > &dest, const Complete< EulerEquation > &src, double pressure_dest, double efficiency)
 
template<typename Tag , typename Equation >
 ReflectiveBoundary (Tag, const Equation &, Direction, int) -> ReflectiveBoundary< Tag, Equation >
 
template<typename Tag , typename Equation >
 ReflectiveBoundary2 (Tag, const Equation &, Direction, int, const ::amrex::Box &) -> ReflectiveBoundary2< Tag, Equation >
 
template<typename Equation >
 ReflectiveBoundary2 (const Equation &, Direction, int, const ::amrex::Box &) -> ReflectiveBoundary2< execution::SequentialTag, Equation >
 

Typedef Documentation

◆ AnyBoundaryCondition

◆ AnyInitialData

◆ AnyTaggingMethod

◆ HyperbolicMethod

Enumeration Type Documentation

◆ TurbineMassflowMode

Enumerator
cellwise 
average_inner_state 
average_outer_state 
average_massflow 

Function Documentation

◆ AddPrefix()

inline ::amrex::Vector<std::string> fub::amrex::cutcell::AddPrefix ( const ::amrex::Vector< std::string > &  names,
const std::string &  prefix 
)

◆ BuildRegularSpace()

std::vector<const ::amrex::EB2::IndexSpace*> fub::amrex::cutcell::BuildRegularSpace ( const ::amrex::Geometry coarse_geometry,
const ::amrex::IntVect &  refine_ratio,
int  n_required_levels 
)

◆ ExpandState()

template<typename EulerEquation >
void fub::amrex::cutcell::ExpandState ( EulerEquation &  eq,
Complete< EulerEquation > &  dest,
const Complete< EulerEquation > &  src,
double  pressure_dest,
double  efficiency 
)

◆ FillCutCellData() [1/2]

void fub::amrex::cutcell::FillCutCellData ( const StridedDataView< double, 2 > &  unshielded,
const StridedDataView< double, 2 > &  shielded_left,
const StridedDataView< double, 2 > &  shielded_right,
const StridedDataView< double, 2 > &  doubly_shielded,
const StridedDataView< double, 2 > &  unshielded_rel,
const StridedDataView< double, 2 > &  shielded_left_rel,
const StridedDataView< double, 2 > &  shielded_right_rel,
const StridedDataView< double, 2 > &  doubly_shielded_rel,
const PatchDataView< const double, 2 > &  beta,
Direction  dir 
)

◆ FillCutCellData() [2/2]

void fub::amrex::cutcell::FillCutCellData ( const StridedDataView< double, 3 > &  unshielded,
const StridedDataView< double, 3 > &  shielded_left,
const StridedDataView< double, 3 > &  shielded_right,
const StridedDataView< double, 3 > &  doubly_shielded,
const StridedDataView< double, 3 > &  unshielded_rel,
const StridedDataView< double, 3 > &  shielded_left_rel,
const StridedDataView< double, 3 > &  shielded_right_rel,
const StridedDataView< double, 3 > &  doubly_shielded_rel,
const PatchDataView< const double, 3 > &  beta,
Direction  dir 
)

◆ FluxMethod() [1/2]

template<typename F >
fub::amrex::cutcell::FluxMethod ( F &&  ) -> FluxMethod< execution::OpenMpSimdTag, std::decay_t< F >>

◆ FluxMethod() [2/2]

template<typename Tag , typename FM >
fub::amrex::cutcell::FluxMethod ( Tag  ,
FM &&   
) -> FluxMethod< Tag, std::decay_t< FM >>

◆ GatherStates()

std::vector<double> fub::amrex::cutcell::GatherStates ( const PatchHierarchy hierarchy,
basic_mdspan< const double, extents< AMREX_SPACEDIM, dynamic_extent >>  xs,
MPI_Comm  comm 
)

◆ GradientDetector()

template<typename Eq , typename... Ps>
fub::amrex::cutcell::GradientDetector ( const Eq &  eq,
const std::pair< Ps, double > &...  ps 
) -> GradientDetector< Eq, Ps... >

◆ MapToSrc()

std::array<std::ptrdiff_t, 2> fub::amrex::cutcell::MapToSrc ( const std::array< std::ptrdiff_t, 2 > &  dest,
const ::amrex::Geometry geom,
int  side,
Direction  dir 
)
inline

◆ ReadCheckpointFile()

PatchHierarchy fub::amrex::cutcell::ReadCheckpointFile ( const std::string &  checkpointname,
DataDescription  desc,
const CartesianGridGeometry geometry,
const PatchHierarchyOptions options 
)

◆ Reconstruction()

template<typename Equation >
fub::amrex::cutcell::Reconstruction ( const Equation &  ) -> Reconstruction< execution::OpenMpSimdTag, Equation >

◆ ReflectiveBoundary()

template<typename Tag , typename Equation >
fub::amrex::cutcell::ReflectiveBoundary ( Tag  ,
const Equation &  ,
Direction  ,
int   
) -> ReflectiveBoundary< Tag, Equation >

◆ ReflectiveBoundary2() [1/2]

template<typename Equation >
fub::amrex::cutcell::ReflectiveBoundary2 ( const Equation &  ,
Direction  ,
int  ,
const ::amrex::Box &   
) -> ReflectiveBoundary2< execution::SequentialTag, Equation >

◆ ReflectiveBoundary2() [2/2]

template<typename Tag , typename Equation >
fub::amrex::cutcell::ReflectiveBoundary2 ( Tag  ,
const Equation &  ,
Direction  ,
int  ,
const ::amrex::Box &   
) -> ReflectiveBoundary2< Tag, Equation >

◆ Write2Dfrom3D()

void fub::amrex::cutcell::Write2Dfrom3D ( const std::string &  name,
const PatchHierarchy hierarchy,
const ::amrex::Box &  finest_box,
const IdealGasMix< 3 > &  eq,
fub::Duration  time_point,
std::ptrdiff_t  cycle_number,
MPI_Comm  comm 
)

◆ WriteCheckpointFile()

void fub::amrex::cutcell::WriteCheckpointFile ( const std::string &  checkpointname,
const PatchHierarchy hier 
)

◆ WriteMatlabData()

void fub::amrex::cutcell::WriteMatlabData ( const std::string &  name,
const PatchHierarchy hierarchy,
fub::Duration  time_point,
std::ptrdiff_t  cycle_number,
MPI_Comm  comm 
)

◆ WritePlotFile() [1/2]

template<typename Equation >
void fub::amrex::cutcell::WritePlotFile ( const std::string &  plotfilename,
const PatchHierarchy hier,
const Equation &  equation 
)

◆ WritePlotFile() [2/2]

template<int Rank>
void fub::amrex::cutcell::WritePlotFile ( const std::string &  plotfilename,
const PatchHierarchy hier,
const IdealGasMix< Rank > &  equation 
)