ryujin 2.1.1 revision 9391072059490dd712e0ea92785f21acd6605f00
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
ryujin Namespace Reference

Namespaces

namespace  Checkpointing
 
namespace  DoFRenumbering
 
namespace  DoFTools
 
namespace  EquationOfStateLibrary
 
namespace  Euler
 
namespace  EulerAEOS
 
namespace  EulerInitialStates
 
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  CubicSpline
 
class  DiagonalPreconditioner
 
class  Discretization
 
struct  Dispatch
 
class  EquationDispatch
 
class  Geometry
 
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  Lazy
 
class  MeshAdaptor
 
class  OfflineData
 
class  ParabolicModule
 
class  Postprocessor
 
class  Quantities
 
class  Restart
 
class  Scope
 
class  SparseMatrixSIMD
 
class  SparsityPatternSIMD
 
class  StubSolver
 
class  SynchronizationDispatch
 
class  TimeIntegrator
 
class  TimeLoop
 
class  TransfiniteInterpolationManifold
 
class  VTUOutput
 

Typedefs

using Description = Euler::Description
 

Enumerations

enum  Boundary : dealii::types::boundary_id {
  do_nothing = 0 , periodic = 1 , slip = 2 , no_slip = 3 ,
  dirichlet = 4 , dynamic = 5 , dirichlet_momentum = 6
}
 
enum class  Ansatz {
  Ansatz::cg_q1 , Ansatz::cg_q2 , Ansatz::cg_q3 , Ansatz::dg_q0 ,
  Ansatz::dg_q1 , Ansatz::dg_q2 , Ansatz::dg_q3
}
 
enum class  IDViolationStrategy { IDViolationStrategy::warn , IDViolationStrategy::raise_exception }
 
enum class  AdaptationStrategy { AdaptationStrategy::global_refinement }
 
enum class  CFLRecoveryStrategy { CFLRecoveryStrategy::none , CFLRecoveryStrategy::bang_bang_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
}
 

Functions

template<int dim, typename Number , typename Callable >
ToFunction< dim, Number, Callable > to_function (const Callable &callable, const unsigned int k)
 
template<typename FT , int problem_dim = FT::dimension, typename TT = typename FT::value_type, typename T = typename TT::value_type>
DEAL_II_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_ALWAYS_INLINE FT add (const FT &flux_left_ij, const FT &flux_right_ij)
 
template<typename Description , int dim, typename Number >
void create_prm_files (const std::string &name, bool write_detailed_description)
 
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<>
float pow (const float x, const float b)
 
template<>
double pow (const double x, const double b)
 
template<>
float fast_pow (const float x, const float b, const Bias)
 
template<>
double fast_pow (const double x, const double b, const Bias)
 
template<typename T >
fast_pow_impl (const T x, const T b, const Bias)
 
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)
 
Functions
template<typename Number >
DEAL_II_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 get_entry (const V &vector, unsigned int i)
 
template<typename T , typename T2 >
DEAL_II_ALWAYS_INLINE T get_entry (const std::vector< T2 > &vector, unsigned int i)
 
template<typename T , typename V >
DEAL_II_ALWAYS_INLINE T get_entry (const V &vector, const unsigned int *js)
 
template<typename T , typename T2 >
DEAL_II_ALWAYS_INLINE T get_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

template<int dim>
constexpr bool have_distributed_triangulation
 
const std::string dave
 

Transcendental and other mathematical operations

enum class  Bias { none , max , min }
 
template<typename Number >
DEAL_II_ALWAYS_INLINE Number positive_part (const Number number)
 
template<typename Number >
DEAL_II_ALWAYS_INLINE Number negative_part (const Number number)
 
template<int N, typename T >
fixed_power (const T x)
 
template<typename 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<typename 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)
 

Type traits and packed index handling

template<typename T >
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) provided that FIXME

min 

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

Definition at line 178 of file simd.h.

Function Documentation

◆ contract()

template<typename FT , int problem_dim = FT::dimension, typename TT = typename FT::value_type, typename T = typename TT::value_type>
DEAL_II_ALWAYS_INLINE dealii::Tensor< 1, problem_dim, T > ryujin::contract ( const FT &  flux_ij,
const TT &  c_ij 
)
inline

◆ add()

template<typename FT , int problem_dim = FT::dimension>
DEAL_II_ALWAYS_INLINE FT ryujin::add ( const FT &  flux_left_ij,
const FT &  flux_right_ij 
)
inline

◆ 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 168 of file equation_dispatch.h.

◆ quadratic_newton_step()

template<typename Number >
DEAL_II_ALWAYS_INLINE void ryujin::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) 
)
inline

Perform one step of a quadratic Newton iteration, see [13], Algorithm 3.

Note
For this, it has to hold true that \(p_1\le p^\ast\le p_2\), and \(\phi(p_1)\le 0\le \phi(p_2)\), or \(\phi(p_1)\ge 0\ge \phi(p_2)\) and that \(\phi\) itself is a 3-convex/concave function, i.e., \(\phi'''<0\), or \(\phi'''>0\).

Modifies p_1 and P_2 ensures that p_1 <= p_2, and that p_1 (p_2) is monotonically increasing (decreasing).

Todo:
Write out the quadratic Newton step in more detail.

Definition at line 39 of file newton.h.

Referenced by ryujin::Euler::RiemannSolver< dim, Number >::compute(), ryujin::Euler::Limiter< dim, Number >::limit(), ryujin::EulerAEOS::Limiter< dim, Number >::limit(), and ryujin::ShallowWater::Limiter< dim, Number >::limit().

◆ pow() [1/2]

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

Definition at line 237 of file simd.template.h.

References pow().

◆ pow() [2/2]

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

Definition at line 246 of file simd.template.h.

References pow().

Referenced by fast_pow(), and pow().

◆ fast_pow() [1/2]

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

Definition at line 326 of file simd.template.h.

References pow().

◆ fast_pow() [2/2]

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

Definition at line 335 of file simd.template.h.

References 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.

References pow().

◆ sadd()

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

◆ print_revision_and_version()

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

Print git revision and version info.

Referenced by ryujin::TimeLoop< Description, dim, Number >::print_parameters().

Variable Documentation

◆ have_distributed_triangulation

template<int dim>
constexpr bool ryujin::have_distributed_triangulation
constexpr
Initial value:
=
std::is_same<typename Discretization<dim>::Triangulation,
dealii::parallel::distributed::Triangulation<dim>>::value

A templated constexpr boolean that is true if we use a parallel distributed triangulation (for the specified dimension).

Definition at line 203 of file discretization.h.

◆ 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 24 of file equation_dispatch.h.

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