ryujin 2.1.1 revision ee5cbcbf2346c1299c942d0e1f13b46449973c18
Loading...
Searching...
No Matches
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
ryujin Namespace Reference

Namespaces

namespace  BarotropicEquationOfStateLibrary
 
namespace  DoFRenumbering
 
namespace  DoFTools
 
namespace  ElectrostaticConfigurationLibrary
 
namespace  EquationOfStateLibrary
 
namespace  Euler
 
namespace  EulerAEOS
 
namespace  EulerBarotropic
 
namespace  EulerInitialStates
 
namespace  EulerPoisson
 
namespace  EulerPoissonAEOS
 
namespace  EulerPoissonBarotropic
 
namespace  FluxLibrary
 
namespace  Geometries
 
namespace  GridGenerator
 
namespace  internal
 
namespace  Manifolds
 
namespace  NavierStokes
 
namespace  ScalarConservation
 
namespace  ShallowWater
 
namespace  ShallowWaterInitialStates
 
namespace  Skeleton
 
namespace  Vectors
 

Classes

class  AssemblyCopyData
 
class  AssemblyScratchData
 
class  ComputingTimer
 
class  Correction
 
class  CubicSpline
 
class  DeviceTimer
 
class  DiagonalPreconditioner
 
class  Discretization
 
struct  Dispatch
 
class  EquationDispatch
 
class  Geometry
 
class  GeoTIFFReader
 
struct  get_value_type
 
struct  get_value_type< dealii::VectorizedArray< T, width > >
 
class  HyperbolicModule
 
class  InitialState
 
class  InitialStateLibrary
 
class  InitialStateLibrary< Description, dim, Number >
 
class  InitialValues
 
class  LaplaceOperator
 
class  Lazy
 
class  MeshAdaptor
 
class  MGSmoother
 
class  MGTransfer
 
class  Mirrored
 
class  MirroredStorage
 
class  MPIEnsemble
 
class  MPIEnsembleContainer
 
class  OfflineData
 
class  Postprocessor
 
class  Quantities
 
class  Restart
 
struct  SelectedComponentsExtractor
 
class  SelectView
 
class  SolutionTransfer
 
class  SparseMatrix
 
class  SparseMatrixView
 
class  SparsityPattern
 
class  SparsityPatternView
 
class  StubParabolicModule
 
class  StubParabolicSystem
 
class  TimeIntegrator
 
class  TimeLoop
 
class  TransfiniteInterpolationManifold
 
class  UpdateOperator
 
class  VTUOutput
 

Typedefs

using Description = Euler::Description
 
using selected_memory_space_t = std::conditional_t< have_separate_memory_spaces, dealii::MemorySpace::Default, dealii::MemorySpace::Host >
 
template<typename MemorySpace >
using other_space_t = std::conditional_t< std::is_same_v< MemorySpace, dealii::MemorySpace::Host >, dealii::MemorySpace::Default, dealii::MemorySpace::Host >
 
template<typename Description , int dim, typename Number = double>
using ParabolicModule = typename Description::template ParabolicModule< dim, Number >
 

Enumerations

enum  Boundary : dealii::types::boundary_id {
  do_nothing = 0 , periodic = 1 , slip = 2 , no_slip = 3 ,
  dirichlet = 4 , dynamic = 5 , dirichlet_momentum = 6 , dirichlet_velocity = 7
}
 
enum class  Ansatz {
  Ansatz::cg_q1 , Ansatz::cg_q2 , Ansatz::cg_q3 , Ansatz::dg_q1 ,
  Ansatz::dg_q2 , Ansatz::dg_q3
}
 
enum class  MeshType { MeshType::serial , MeshType::parallel_shared , MeshType::parallel_distributed , MeshType::parallel_fullydistributed }
 
enum class  HeightNormalization { HeightNormalization::none , HeightNormalization::minimum , HeightNormalization::average , HeightNormalization::maximum }
 
enum class  TransferPolicy { TransferPolicy::explicit_transfers , TransferPolicy::implicit_transfers , TransferPolicy::implicit_transfers_host_resident , TransferPolicy::implicit_transfers_default_resident }
 
enum class  IDViolationStrategy : std::uint8_t { IDViolationStrategy::warn , IDViolationStrategy::raise_exception }
 
enum class  AdaptationStrategy { AdaptationStrategy::global_refinement , AdaptationStrategy::random_adaptation , AdaptationStrategy::smoothness_indicators }
 
enum class  MarkingStrategy { MarkingStrategy::fixed_threshold }
 
enum class  TimePointSelectionStrategy { TimePointSelectionStrategy::fixed_time_points , TimePointSelectionStrategy::simulation_cycle }
 
enum class  CFLRecoveryStrategy { CFLRecoveryStrategy::none , CFLRecoveryStrategy::bang_bang_control , CFLRecoveryStrategy::cruise_control }
 
enum class  TimeSteppingScheme {
  TimeSteppingScheme::ssprk_22 , TimeSteppingScheme::ssprk_33 , TimeSteppingScheme::erk_11 , TimeSteppingScheme::erk_22 ,
  TimeSteppingScheme::erk_33 , TimeSteppingScheme::erk_43 , TimeSteppingScheme::erk_54 , TimeSteppingScheme::strang_ssprk_33_cn ,
  TimeSteppingScheme::strang_erk_33_cn , TimeSteppingScheme::strang_erk_43_cn , TimeSteppingScheme::imex_11 , TimeSteppingScheme::imex_22 ,
  TimeSteppingScheme::imex_33
}
 

Functions

template<typename Description , int dim, typename Number >
void create_prm_files (const std::string &name, bool write_detailed_description)
 
template<int dim, typename Number , typename Number2 >
DEAL_II_ALWAYS_INLINE dealii::Tensor< 1, dim, Number > apply_B_n (const dealii::Tensor< 1,(dim==2 ? 1 :dim), Number > &magnetic_field, const Number2 theta_tau, const dealii::Tensor< 1, dim, Number > &velocity)
 
template<int dim, typename Number , typename Number2 >
DEAL_II_ALWAYS_INLINE dealii::Tensor< 1, dim, Number > apply_B_n_inverse (const dealii::Tensor< 1,(dim==2 ? 1 :dim), Number > &magnetic_field, const Number2 &theta_tau, const dealii::Tensor< 1, dim, Number > &velocity)
 
constexpr bool performs_implicit_transfers (const TransferPolicy policy)
 
template<int dim, typename Number , typename MemorySpace , typename Object >
auto make_select_view (const Object &object)
 
template<typename Number >
void transform_to_local_range (const dealii::Utilities::MPI::Partitioner &partitioner, dealii::AffineConstraints< Number > &affine_constraints)
 
template<typename VECTOR >
void transform_to_local_range (const dealii::Utilities::MPI::Partitioner &partitioner, VECTOR &vector)
 
template<typename ScalarNumber , typename Functor , typename... Args>
void cpu_simd_loop (const std::string &region_name, const Functor &body, const unsigned int left, const unsigned int internal, const unsigned int right, Args &&...args)
 
template<typename ScalarNumber , typename Functor , typename... Args>
void gpu_loop (const std::string &region_name, const Functor &body, const unsigned int left, const unsigned int internal, const unsigned int right, Args &&...args)
 
template<typename MemorySpace , typename ScalarNumber , typename Functor , typename... Args>
void loop (const std::string &region_name, const Functor &body, const unsigned int left, const unsigned int internal, const unsigned int right, Args &&...args)
 
template<typename Reducer , typename Functor , typename... Args>
Reducer::value_type cpu_reduction_loop (const std::string &region_name, const Functor &body, const typename Reducer::value_type initial_value, const unsigned int left, const unsigned int right, Args &&...args)
 
template<typename Reducer , typename Functor , typename... Args>
Reducer::value_type gpu_reduction_loop (const std::string &region_name, const Functor &body, const typename Reducer::value_type initial_value, const unsigned int left, const unsigned int right, Args &&...args)
 
template<typename MemorySpace , typename Reducer , typename Functor , typename... Args>
Reducer::value_type reduction_loop (const std::string &region_name, const Functor &body, const typename Reducer::value_type initial_value, const unsigned int left, const unsigned int right, Args &&...args)
 
template<typename T >
fast_pow_impl (const T x, const T b, const Bias)
 
template<typename Number , int n_comp, int warp_size, int simd_length, typename FullMatrix >
void distribute_local_to_global (const FullMatrix &cell_matrix, const std::vector< dealii::types::global_dof_index > &dof_indices_row, const std::vector< dealii::types::global_dof_index > &dof_indices_column, const dealii::AffineConstraints< Number > &affine_constraints, SparseMatrix< Number, n_comp, warp_size, simd_length > &sparse_matrix)
 
template<typename Number , int n_comp, int warp_size, int simd_length, typename FullMatrix , typename Vector >
void distribute_local_to_global (const FullMatrix &cell_matrix, const std::vector< dealii::types::global_dof_index > &dof_indices, const dealii::AffineConstraints< Number > &affine_constraints, SparseMatrix< Number, n_comp, warp_size, simd_length > &sparse_matrix)
 
template<typename StateVector , typename Number >
void sadd (StateVector &dst, const Number s, const Number b, const StateVector &src)
 
void print_revision_and_version (std::ostream &stream)
 
Various convenience wrappers for dealing with dealii::Function,

dealii::Tensor:

template<int dim, typename Number , typename Callable >
ToFunction< dim, Number, Callable > to_function (const Callable &callable, const unsigned int k)
 
template<int dim, typename Number , typename Callable >
ToVectorFunction< dim, Number, Callable > to_vector_function (const Callable &callable, const unsigned int n_components)
 
template<typename FT , int problem_dim = FT::dimension, typename TT = typename FT::value_type, typename T = typename TT::value_type>
DEAL_II_HOST_DEVICE_ALWAYS_INLINE dealii::Tensor< 1, problem_dim, T > contract (const FT &flux_ij, const TT &c_ij)
 
template<typename FT , int problem_dim = FT::dimension>
DEAL_II_HOST_DEVICE_ALWAYS_INLINE FT add (const FT &flux_left_ij, const FT &flux_right_ij)
 
Functions
template<typename Number >
DEAL_II_HOST_DEVICE_ALWAYS_INLINE void quadratic_newton_step (Number &p_1, Number &p_2, const Number phi_p_1, const Number phi_p_2, const Number dphi_p_1, const Number dphi_p_2, const Number sign=Number(1.0))
 
SIMD based access to vectors and arrays of vectors
template<typename T , typename V >
DEAL_II_ALWAYS_INLINE T read_entry (const V &vector, unsigned int i)
 
template<typename T , typename T2 >
DEAL_II_ALWAYS_INLINE T read_entry (const std::vector< T2 > &vector, unsigned int i)
 
template<typename T , typename V >
DEAL_II_ALWAYS_INLINE T read_entry (const V &vector, const unsigned int *js)
 
template<typename T , typename T2 >
DEAL_II_ALWAYS_INLINE T read_entry (const std::vector< T2 > &vector, const unsigned int *js)
 
template<typename T , typename V >
DEAL_II_ALWAYS_INLINE void write_entry (V &vector, const T &values, unsigned int i)
 
template<typename T , typename T2 >
DEAL_II_ALWAYS_INLINE void write_entry (std::vector< T2 > &vector, const T &values, unsigned int i)
 
template<int rank, int dim, std::size_t width, typename Number >
DEAL_II_ALWAYS_INLINE dealii::Tensor< rank, dim, Number > serialize_tensor (const dealii::Tensor< rank, dim, dealii::VectorizedArray< Number, width > > &vectorized, const unsigned int k)
 
template<int rank, int dim, typename Number >
DEAL_II_ALWAYS_INLINE dealii::Tensor< rank, dim, Number > serialize_tensor (const dealii::Tensor< rank, dim, Number > &serial, const unsigned int k)
 
template<int rank, int dim, std::size_t width, typename Number >
DEAL_II_ALWAYS_INLINE void assign_serial_tensor (dealii::Tensor< rank, dim, dealii::VectorizedArray< Number, width > > &result, const dealii::Tensor< rank, dim, Number > &serial, const unsigned int k)
 
template<int rank, int dim, typename Number >
DEAL_II_ALWAYS_INLINE void assign_serial_tensor (dealii::Tensor< rank, dim, Number > &result, const dealii::Tensor< rank, dim, Number > &serial, const unsigned int k)
 

Variables

const std::string dave
 
constexpr bool have_separate_memory_spaces
 
constexpr unsigned int warp_size
 
template<typename T >
constexpr bool has_n_mpi_ensembles_v = auto::value
 

Transcendental and other mathematical operations

enum class  Bias { none , max , min }
 
template<typename Number >
DEAL_II_HOST_DEVICE_ALWAYS_INLINE Number positive_part (const Number number)
 
template<typename Number >
DEAL_II_HOST_DEVICE_ALWAYS_INLINE Number negative_part (const Number number)
 
template<dealii::SIMDComparison predicate, typename Number >
DEAL_II_HOST_DEVICE_ALWAYS_INLINE Number compare_and_apply_mask (const Number &left, const Number &right, const Number &true_value, const Number &false_value)
 
template<dealii::SIMDComparison predicate, typename T , std::size_t width>
DEAL_II_ALWAYS_INLINE dealii::VectorizedArray< T, width > compare_and_apply_mask (const dealii::VectorizedArray< T, width > &left, const dealii::VectorizedArray< T, width > &right, const dealii::VectorizedArray< T, width > &true_value, const dealii::VectorizedArray< T, width > &false_value)
 
template<int N, typename T >
DEAL_II_HOST_DEVICE_ALWAYS_INLINE T fixed_power (const T x)
 
template<typename T >
DEAL_II_HOST_DEVICE T pow (const T x, const T b)
 
template<typename T , std::size_t width>
dealii::VectorizedArray< T, width > pow (const dealii::VectorizedArray< T, width > x, const T b)
 
template<typename T , std::size_t width>
dealii::VectorizedArray< T, width > pow (const dealii::VectorizedArray< T, width > x, const dealii::VectorizedArray< T, width > b)
 
template<>
DEAL_II_HOST_DEVICE_ALWAYS_INLINE float pow (const float x, const float b)
 
template<>
DEAL_II_HOST_DEVICE_ALWAYS_INLINE double pow (const double x, const double b)
 
template<typename T >
DEAL_II_HOST_DEVICE T fast_pow (const T x, const T b, const Bias bias=Bias::none)
 
template<typename T , std::size_t width>
dealii::VectorizedArray< T, width > fast_pow (const dealii::VectorizedArray< T, width > x, const T b, const Bias bias=Bias::none)
 
template<typename T , std::size_t width>
dealii::VectorizedArray< T, width > fast_pow (const dealii::VectorizedArray< T, width > x, const dealii::VectorizedArray< T, width > b, const Bias bias=Bias::none)
 
template<>
DEAL_II_HOST_DEVICE_ALWAYS_INLINE float fast_pow (const float x, const float b, const Bias bias)
 
template<>
DEAL_II_HOST_DEVICE_ALWAYS_INLINE double fast_pow (const double x, const double b, const Bias bias)
 

Type traits and packed index handling

template<typename T >
constexpr unsigned int get_stride_size = 1
 
template<unsigned int length, typename Functor >
DEAL_II_ALWAYS_INLINE auto generate_iterators (Functor f) -> std::array< auto, length >
 
template<typename T >
DEAL_II_ALWAYS_INLINE void increment_iterators (T &iterators)
 

Typedef Documentation

◆ Description

Definition at line 15 of file initial_state_library.template.h.

Enumeration Type Documentation

◆ Bias

enum class ryujin::Bias
strong

Controls the bias of the fast_pow() functions.

Enumerator
none 

No specific bias.

max 

Guarantee an upper bound, i.e., fast_pow(x,b) >= pow(x,b).

min 

Guarantee a lower bound, i.e., fast_pow(x,b) >= pow(x,b).

Definition at line 300 of file simd.h.

Function Documentation

◆ create_prm_files()

template<typename Description , int dim, typename Number >
void ryujin::create_prm_files ( const std::string &  name,
bool  write_detailed_description 
)

Create default parameter files for the specified equation Description, dimension and number type. This function is called from the respective equation driver.

Definition at line 208 of file equation_dispatch.h.

◆ apply_B_n()

template<int dim, typename Number , typename Number2 >
DEAL_II_ALWAYS_INLINE dealii::Tensor< 1, dim, Number > ryujin::apply_B_n ( const dealii::Tensor< 1,(dim==2 ? 1 :dim), Number > &  magnetic_field,
const Number2  theta_tau,
const dealii::Tensor< 1, dim, Number > &  velocity 
)
inline

Definition at line 31 of file laplace_operator.h.

◆ apply_B_n_inverse()

template<int dim, typename Number , typename Number2 >
DEAL_II_ALWAYS_INLINE dealii::Tensor< 1, dim, Number > ryujin::apply_B_n_inverse ( const dealii::Tensor< 1,(dim==2 ? 1 :dim), Number > &  magnetic_field,
const Number2 &  theta_tau,
const dealii::Tensor< 1, dim, Number > &  velocity 
)
inline

Definition at line 50 of file laplace_operator.h.

Referenced by ryujin::UpdateOperator< dim, Number >::vmult().

◆ cpu_simd_loop()

template<typename ScalarNumber , typename Functor , typename... Args>
void ryujin::cpu_simd_loop ( const std::string &  region_name,
const Functor &  body,
const unsigned int  left,
const unsigned int  internal,
const unsigned int  right,
Args &&...  args 
)
inline

Definition at line 46 of file loop.h.

References LIKWID_MARKER_START, LIKWID_MARKER_STOP, and RYUJIN_PRAGMA.

◆ gpu_loop()

template<typename ScalarNumber , typename Functor , typename... Args>
void ryujin::gpu_loop ( const std::string &  region_name,
const Functor &  body,
const unsigned int  left,
const unsigned int  internal,
const unsigned int  right,
Args &&...  args 
)
inline

Definition at line 156 of file loop.h.

References NVTX_MARKER_START, and NVTX_MARKER_STOP.

◆ loop()

template<typename MemorySpace , typename ScalarNumber , typename Functor , typename... Args>
void ryujin::loop ( const std::string &  region_name,
const Functor &  body,
const unsigned int  left,
const unsigned int  internal,
const unsigned int  right,
Args &&...  args 
)
inline

Definition at line 221 of file loop.h.

◆ cpu_reduction_loop()

template<typename Reducer , typename Functor , typename... Args>
Reducer::value_type ryujin::cpu_reduction_loop ( const std::string &  region_name,
const Functor &  body,
const typename Reducer::value_type  initial_value,
const unsigned int  left,
const unsigned int  right,
Args &&...  args 
)
inline

Definition at line 271 of file loop.h.

References LIKWID_MARKER_START, LIKWID_MARKER_STOP, and RYUJIN_PRAGMA.

◆ gpu_reduction_loop()

template<typename Reducer , typename Functor , typename... Args>
Reducer::value_type ryujin::gpu_reduction_loop ( const std::string &  region_name,
const Functor &  body,
const typename Reducer::value_type  initial_value,
const unsigned int  left,
const unsigned int  right,
Args &&...  args 
)
inline

Definition at line 365 of file loop.h.

References NVTX_MARKER_START, and NVTX_MARKER_STOP.

◆ reduction_loop()

template<typename MemorySpace , typename Reducer , typename Functor , typename... Args>
Reducer::value_type ryujin::reduction_loop ( const std::string &  region_name,
const Functor &  body,
const typename Reducer::value_type  initial_value,
const unsigned int  left,
const unsigned int  right,
Args &&...  args 
)
inline

Definition at line 450 of file loop.h.

◆ pow() [1/2]

template<>
DEAL_II_HOST_DEVICE_ALWAYS_INLINE float ryujin::pow ( const float  x,
const float  b 
)

Definition at line 266 of file simd.h.

References pow().

◆ pow() [2/2]

template<>
DEAL_II_HOST_DEVICE_ALWAYS_INLINE double ryujin::pow ( const double  x,
const double  b 
)

Definition at line 282 of file simd.h.

References pow().

◆ fast_pow() [1/2]

template<>
DEAL_II_HOST_DEVICE_ALWAYS_INLINE float ryujin::fast_pow ( const float  x,
const float  b,
const Bias  bias 
)

Definition at line 356 of file simd.h.

References fast_pow().

◆ fast_pow() [2/2]

template<>
DEAL_II_HOST_DEVICE_ALWAYS_INLINE double ryujin::fast_pow ( const double  x,
const double  b,
const Bias  bias 
)

Definition at line 373 of file simd.h.

References fast_pow().

◆ fast_pow_impl()

template<typename T >
T ryujin::fast_pow_impl ( const T  x,
const T  b,
const Bias   
)

Definition at line 25 of file simd_fast_pow.template.h.

◆ distribute_local_to_global() [1/2]

template<typename Number , int n_comp, int warp_size, int simd_length, typename FullMatrix >
void ryujin::distribute_local_to_global ( const FullMatrix &  cell_matrix,
const std::vector< dealii::types::global_dof_index > &  dof_indices_row,
const std::vector< dealii::types::global_dof_index > &  dof_indices_column,
const dealii::AffineConstraints< Number > &  affine_constraints,
SparseMatrix< Number, n_comp, warp_size, simd_length > &  sparse_matrix 
)

◆ distribute_local_to_global() [2/2]

template<typename Number , int n_comp, int warp_size, int simd_length, typename FullMatrix , typename Vector >
void ryujin::distribute_local_to_global ( const FullMatrix &  cell_matrix,
const std::vector< dealii::types::global_dof_index > &  dof_indices,
const dealii::AffineConstraints< Number > &  affine_constraints,
SparseMatrix< Number, n_comp, warp_size, simd_length > &  sparse_matrix 
)

◆ sadd()

template<typename StateVector , typename Number >
void ryujin::sadd ( StateVector &  dst,
const Number  s,
const Number  b,
const StateVector &  src 
)

Definition at line 18 of file time_integrator.template.h.

◆ print_revision_and_version()

void ryujin::print_revision_and_version ( std::ostream &  stream)

Print git revision and version info.

Variable Documentation

◆ dave

const std::string ryujin::dave
inline
Initial value:
=
"\nDave, this conversation can serve no purpose anymore. Goodbye.\n\n"

The Dave error message

Definition at line 25 of file equation_dispatch.h.

Referenced by ryujin::EquationDispatch::create_parameter_files(), ryujin::Dispatch< Description, Number >::Dispatch(), and ryujin::EquationDispatch::dispatch().

◆ has_n_mpi_ensembles_v

template<typename T >
constexpr bool ryujin::has_n_mpi_ensembles_v = auto::value
constexpr

Definition at line 106 of file mpi_ensemble_container.h.