Class template Dune::GDT::EulerTools

template<size_t d, class R = double>
class Dune::GDT::EulerTools<d, R>

A collection of useful tools in the context of the Euler equations.

In paritcular, provides

conversion between primitive (physical) variables - density rho: R^d -> R - velocity v: R^d -> R^d - pressure p: R^d -> R and conservative variables w = (rho, rhov[1], …, rhov[d], E): R^d -> R^m, with m = d + 2 and - total energy E: R^d -> R;

evaluation of the euler fluxes f_1, …, f_d: R^m -> R^m and their respective jacobians A_1, …, A_d;

the eigendecomposition T^{-1} P T = diagonal( lambda_1 , …, lambda_m ) with - P = A * n (n being a unit normal) - the eigenvalues lambda_i of P - the (right) eigenvectors T of P - the (left eigenvectors) inverse of the (right) eigenvectors T^{-1} of P;

some quantities of interest - speed of sound - mach number - enthalpy;

a means to visualize a function representing the conservative variables w.

See also: [Dolejsi, Feistauer, 2016, pp. 404 and following], [Kröner, 1997, p. 387] for 1d and 2d

Method Dune::GDT::EulerTools::density_index

template<size_t d, class R = double>
static int Dune::GDT::EulerTools<d, R>::density_index()

Note

While the indices may seem silly, using them helps to reduce typo induced errors.

Method Dune::GDT::EulerTools::velocity_indices

template<size_t d, class R = double>
static int Dune::GDT::EulerTools<d, R>::velocity_indices()

No documentation provided.

Method Dune::GDT::EulerTools::energy_index

template<size_t d, class R = double>
static int Dune::GDT::EulerTools<d, R>::energy_index()

No documentation provided.

Method Dune::GDT::EulerTools::pressure_index

template<size_t d, class R = double>
static int Dune::GDT::EulerTools<d, R>::pressure_index()

No documentation provided.

Method Dune::GDT::EulerTools::density

template<size_t d, class R = double> XT::Common::FieldVector<R, 1> Dune::GDT::EulerTools<d, R>::density(const FieldVector<R, <recovery-expr>()> &w) const

No documentation provided.

Method Dune::GDT::EulerTools::velocity

template<size_t d, class R = double> XT::Common::FieldVector<R, d> Dune::GDT::EulerTools<d, R>::velocity(const FieldVector<R, <recovery-expr>()> &w) const

No documentation provided.

Method Dune::GDT::EulerTools::energy

template<size_t d, class R = double> XT::Common::FieldVector<R, 1> Dune::GDT::EulerTools<d, R>::energy(const FieldVector<R, <recovery-expr>()> &w) const

No documentation provided.

Method Dune::GDT::EulerTools::energy

template<size_t d, class R = double>
XT::Common::FieldVector<R, 1> Dune::GDT::EulerTools<d, R>::energy(const FieldVector<R, 1> &rho, const FieldVector<R, d> &v, const FieldVector<R, 1> &p) const

No documentation provided.

Method Dune::GDT::EulerTools::primitive

template<size_t d, class R = double> XT::Common::FieldVector<R, <recovery-expr>()> Dune::GDT::EulerTools<d, R>::primitive(const FieldVector<R, <recovery-expr>()> &w) const

No documentation provided.

Method Dune::GDT::EulerTools::primitives

template<size_t d, class R = double> std::tuple<XT::Common::FieldVector<R, 1>, XT::Common::FieldVector<R, d>, XT::Common::FieldVector<R, 1>> Dune::GDT::EulerTools<d, R>::primitives(const FieldVector<R, <recovery-expr>()> &w) const

No documentation provided.

Method Dune::GDT::EulerTools::pressure

template<size_t d, class R = double> XT::Common::FieldVector<R, 1> Dune::GDT::EulerTools<d, R>::pressure(const FieldVector<R, <recovery-expr>()> &w) const

No documentation provided.

Method Dune::GDT::EulerTools::conservative

template<size_t d, class R = double> XT::Common::FieldVector<R, <recovery-expr>()> Dune::GDT::EulerTools<d, R>::conservative(const FieldVector<R, 1> &rho, const XT::Common::FieldVector<R, d> &v, const FieldVector<R, 1> &p) const

No documentation provided.

Method Dune::GDT::EulerTools::speed_of_sound2

template<size_t d, class R = double> R Dune::GDT::EulerTools<d, R>::speed_of_sound2(const FieldVector<R, <recovery-expr>()> &w) const

Method Dune::GDT::EulerTools::speed_of_sound2

template<size_t d, class R = double>
R Dune::GDT::EulerTools<d, R>::speed_of_sound2(const FieldVector<R, 1> &rho, const FieldVector<R, 1> &p) const

No documentation provided.

Method Dune::GDT::EulerTools::speed_of_sound

template<size_t d, class R = double> R Dune::GDT::EulerTools<d, R>::speed_of_sound(const FieldVector<R, <recovery-expr>()> &w) const

No documentation provided.

Method Dune::GDT::EulerTools::speed_of_sound

template<size_t d, class R = double>
R Dune::GDT::EulerTools<d, R>::speed_of_sound(const FieldVector<R, 1> &rho, const FieldVector<R, 1> &p) const

No documentation provided.

Method Dune::GDT::EulerTools::mach_number

template<size_t d, class R = double> R Dune::GDT::EulerTools<d, R>::mach_number(const FieldVector<R, <recovery-expr>()> &w) const

No documentation provided.

Method Dune::GDT::EulerTools::mach_number

template<size_t d, class R = double>
R Dune::GDT::EulerTools<d, R>::mach_number(const FieldVector<R, 1> &rho, const FieldVector<R, d> &v, const FieldVector<R, 1> &p) const

No documentation provided.

Method Dune::GDT::EulerTools::enthalpy

template<size_t d, class R = double> R Dune::GDT::EulerTools<d, R>::enthalpy(const FieldVector<R, <recovery-expr>()> &w) const

No documentation provided.

Method Dune::GDT::EulerTools::enthalpy

template<size_t d, class R = double>
R Dune::GDT::EulerTools<d, R>::enthalpy(const FieldVector<R, 1> &rho, const FieldVector<R, 1> &E, const FieldVector<R, 1> &p) const

No documentation provided.

Method Dune::GDT::EulerTools::flux_order

template<size_t d, class R = double>
int Dune::GDT::EulerTools<d, R>::flux_order() const

\ }

To access the flux f and its jacobian.

\ {

Method Dune::GDT::EulerTools::flux

template<size_t d, class R = double> XT::Common::FieldMatrix<R, d, <recovery-expr>()> Dune::GDT::EulerTools<d, R>::flux(const FieldVector<R, <recovery-expr>()> &w) const

No documentation provided.

Method Dune::GDT::EulerTools::flux_at_impermeable_walls

template<size_t d, class R = double> XT::Common::FieldVector<R, <recovery-expr>()> Dune::GDT::EulerTools<d, R>::flux_at_impermeable_walls(const FieldVector<R, <recovery-expr>()> &w, const XT::Common::FieldVector<double, d> &n) const

The Euler flux at impermeable walls (e.g., v*n = 0).

See also: [DF2015, p. 414, (8.58)]

Method Dune::GDT::EulerTools::flux_jacobian

template<size_t d, class R = double> int Dune::GDT::EulerTools<d, R>::flux_jacobian(const FieldVector<R, <recovery-expr>()> &w) const

No documentation provided.

Method Dune::GDT::EulerTools::eigenvalues_flux_jacobian

template<size_t d, class R = double> XT::Common::FieldVector<R, <recovery-expr>()> Dune::GDT::EulerTools<d, R>::eigenvalues_flux_jacobian(const FieldVector<R, <recovery-expr>()> &w, const FieldVector<double, d> &n) const

See also: [Kröner, 1997, p. 387] for 1d and 2d

Method Dune::GDT::EulerTools::eigenvectors_flux_jacobian

template<size_t d, class R = double> XT::Common::FieldMatrix<R, <recovery-expr>(), <recovery-expr>()> Dune::GDT::EulerTools<d, R>::eigenvectors_flux_jacobian(const FieldVector<R, <recovery-expr>()> &w, const FieldVector<double, d> &n) const

See also: [Kröner, 1997, p. 387, M T] for 1d and 2d

Method Dune::GDT::EulerTools::eigenvectors_inv_flux_jacobian

template<size_t d, class R = double> XT::Common::FieldMatrix<R, <recovery-expr>(), <recovery-expr>()> Dune::GDT::EulerTools<d, R>::eigenvectors_inv_flux_jacobian(const FieldVector<R, <recovery-expr>()> &w, const FieldVector<double, d> &n) const

See also: [Kröner, 1997, p. 387, (M T)^{-1}] (with q = 1 in the top left entry) for 1d and 2d

Constructor Dune::GDT::EulerTools::EulerTools<d, R>

template<>
template<size_t d, class R = double>
explicit Dune::GDT::EulerTools<d, R>::EulerTools<d, R>(const double &gmma)

No documentation provided.

Field Dune::GDT::EulerTools::gamma_

const double Dune::GDT::EulerTools::gamma_

No documentation provided.

Variable Dune::GDT::EulerTools::m

const int Dune::GDT::EulerTools::m

No documentation provided.

Function template Dune::GDT::EulerTools::visualize

template<size_t d, class R = double> template <class E, class GL> int Dune::GDT::EulerTools<d, R>::visualize(const XT::Functions::GridFunctionInterface<E, <recovery-expr>(), 1, R> &u_conservative, const GL &grid_layer, const std::string filename_prefix, const std::string filename_suffix, const bool subsampling = false) const