DNDSR 0.1.0.dev1+gcd065ad
Distributed Numeric Data Structure for CFV
Loading...
Searching...
No Matches
SpecialFields.hpp File Reference

Analytic isentropic-vortex solutions for inviscid accuracy verification. More...

#include "EulerEvaluator.hpp"
Include dependency graph for SpecialFields.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  DNDS
 the host side operators are provided as implemented
 
namespace  DNDS::Euler
 
namespace  DNDS::Euler::SpecialFields
 

Functions

template<EulerModel model = NS>
auto DNDS::Euler::SpecialFields::IsentropicVortex10 (EulerEvaluator< model > &eval, const Geom::tPoint &x, real t, int cnVars, real chi)
 Analytic isentropic vortex on a [0,10] x [0,10] periodic domain.
 
template<EulerModel model = NS>
auto DNDS::Euler::SpecialFields::IsentropicVortex30 (EulerEvaluator< model > &eval, const Geom::tPoint &x, real t, int cnVars)
 Analytic isentropic vortex on a [-10,20] x [-10,20] periodic domain (period 30).
 
template<EulerModel model = NS>
auto DNDS::Euler::SpecialFields::IsentropicVortexCent (EulerEvaluator< model > &eval, const Geom::tPoint &x, real t, int cnVars)
 Stationary isentropic vortex centered at the origin with zero background flow.
 

Detailed Description

Analytic isentropic-vortex solutions for inviscid accuracy verification.

Provides three variants of the classical isentropic vortex used as exact solutions for the Euler equations:

  • IsentropicVortex10 — moving vortex on a [0,10]^2 periodic domain.
  • IsentropicVortex30 — moving vortex on a [-10,20]^2 periodic domain (period 30).
  • IsentropicVortexCent — stationary vortex centered at the origin (no periodicity).

All three share the same isentropic vortex formula:

  • Temperature perturbation: dT = -(gamma-1)/(8*gamma*pi^2) * chi^2 * exp(1-r^2)
  • Velocity perturbation (solid-body rotation):
    • du_x = -chi/(2*pi) * exp((1-r^2)/2) * (y - y_c)
    • du_y = +chi/(2*pi) * exp((1-r^2)/2) * (x - x_c)
  • T = 1 + dT, rho = T^(1/(gamma-1)), p = T * rho

The returned state vector is in conservative variables: (rho, rho*u, rho*v, [rho*w,] E).

Definition in file SpecialFields.hpp.