physics_euler_mod Module Reference

physics module for 1D,2D and 3D non-isothermal Euler equations More...

Data Types

interface  cons2prim
 
type  physics_euler
 
interface  prim2cons
 
interface  setflux
 
type  statevector_euler
 

Functions/Subroutines

subroutine initphysics_euler (this, Mesh, config, IO)
 constructor of physics_euler class More...
 
subroutine printconfiguration_euler (this)
 
subroutine new_statevector (this, new_sv, flavour, num)
 allocate an initialize new non-isothermal state vector More...
 
pure subroutine convert2primitive_all (this, cvar, pvar)
 Converts conservative to primitive variables on the whole mesh. More...
 
pure subroutine convert2primitive_subset (this, i1, i2, j1, j2, k1, k2, cvar, pvar)
 Converts conservative to primitive variables on a subset of the data. More...
 
pure subroutine convert2conservative_all (this, pvar, cvar)
 Converts primitive to conservative variables on the whole mesh. More...
 
pure subroutine convert2conservative_subset (this, i1, i2, j1, j2, k1, k2, pvar, cvar)
 Converts primitive to conservative variables on a subset of the data. More...
 
pure subroutine calcfluxesx (this, Mesh, nmin, nmax, prim, cons, xfluxes)
 Calculate Fluxes in x-direction. More...
 
pure subroutine calcfluxesy (this, Mesh, nmin, nmax, prim, cons, yfluxes)
 Calculate Fluxes in y-direction. More...
 
pure subroutine calcfluxesz (this, Mesh, nmin, nmax, prim, cons, zfluxes)
 Calculate Fluxes in z-direction. More...
 
pure subroutine calculatecharsystemx (this, Mesh, i1, i2, pvar, lambda, xvar)
 
pure subroutine calculatecharsystemy (this, Mesh, j1, j2, pvar, lambda, xvar)
 
pure subroutine calculatecharsystemz (this, Mesh, k1, k2, pvar, lambda, xvar)
 
pure subroutine calculateboundarydatax (this, Mesh, i1, i2, xvar, pvar)
 extrapolate pvar using characteristic pseudo variables (absorbing boundaries) More...
 
pure subroutine calculateboundarydatay (this, Mesh, j1, j2, xvar, pvar)
 
pure subroutine calculateboundarydataz (this, Mesh, k1, k2, xvar, pvar)
 
pure subroutine geometricalsources (this, Mesh, pvar, cvar, sterm)
 Calculates geometrical sources. More...
 
pure subroutine externalsources (this, accel, pvar, cvar, sterm)
 compute momentum and energy sources given an external force More...
 
pure subroutine viscositysources (this, Mesh, pvar, btxx, btxy, btxz, btyy, btyz, btzz, sterm)
 
pure subroutine addbackgroundvelocityx (this, Mesh, w, pvar, cvar)
 Adds a background velocity field for fargo routines. More...
 
pure subroutine addbackgroundvelocityy (this, Mesh, w, pvar, cvar)
 Adds a background velocity field for fargo routines. More...
 
pure subroutine addbackgroundvelocityz (this, Mesh, w, pvar, cvar)
 Adds a background velocity field for fargo routines. More...
 
pure subroutine subtractbackgroundvelocityx (this, Mesh, w, pvar, cvar)
 Substracts a background velocity field for fargo routines. More...
 
pure subroutine subtractbackgroundvelocityy (this, Mesh, w, pvar, cvar)
 Substracts a background velocity field for fargo routines. More...
 
pure subroutine subtractbackgroundvelocityz (this, Mesh, w, pvar, cvar)
 Substracts a background velocity field for fargo routines. More...
 
pure subroutine updatesoundspeed (this, pvar)
 
subroutine finalize (this)
 Destructor of the physics_euler class. More...
 
type(statevector_euler) function createstatevector (Physics, flavour, num)
 Constructor of statevector_euler. More...
 
subroutine, public createstatevector_euler (Physics, new_sv, flavour, num)
 
subroutine assignmarray_0 (this, ma)
 assigns one state vector to another state vector More...
 
elemental real function getsoundspeed (gamma, density, pressure)
 
elemental subroutine setroeaverages (gamma, rhoL, rhoR, ul, uR, vL, vR, pL, pR, eL, eR, u, cs)
 
elemental subroutine setwavespeeds (cs, v, minwav, maxwav)
 set minimal and maximal wave speeds More...
 
elemental subroutine seteigenvalues1d (gamma, rho, v, P, l1, l2, l3)
 set all eigenvalues for 1D transport (used in absorbing boundary conditions) More...
 
elemental subroutine seteigenvalues2d (gamma, rho, v, P, l1, l2, l3, l4)
 set all eigenvalues for 2D transport (used in absorbing boundary conditions) More...
 
elemental subroutine seteigenvalues3d (gamma, rho, v, P, l1, l2, l3, l4, l5)
 set all eigenvalues for 3D transport (used in absorbing boundary conditions) More...
 
elemental subroutine setintermediatestate (rhoL, rhoR, uL, uR, vl, vR, pL, pR, eL, eR, amin, amax, rho, mu, mv, e, a)
 
elemental subroutine setcharvars1d (gamma, rho1, rho2, u1, u2, P1, P2, l1, l3, xvar1, xvar2, xvar3)
 compute characteristic variables for 1D transport More...
 
elemental subroutine setcharvars2d (gamma, rho1, rho2, u1, u2, v1, v2, P1, P2, l1, l4, xvar1, xvar2, xvar3, xvar4)
 compute characteristic variables for 2D transport More...
 
elemental subroutine setcharvars3d (gamma, rho1, rho2, u1, u2, v1, v2, w1, w2, P1, P2, l1, l5, xvar1, xvar2, xvar3, xvar4, xvar5)
 compute characteristic variables for 3D transport More...
 
elemental subroutine setboundarydata1d (delta, gamma, rho1, u1, P1, xvar1, xvar2, xvar3, rho2, u2, P2)
 extrapolate primitive variables using characteristic pseudo pevariables 1D transport More...
 
elemental subroutine setboundarydata2d (delta, gamma, rho1, u1, v1, P1, xvar1, xvar2, xvar3, xvar4, rho2, u2, v2, P2)
 extrapolate primitive variables using characteristic pseudo pevariables 2D transport More...
 
elemental subroutine setboundarydata3d (delta, gamma, rho1, u1, v1, w1, P1, xvar1, xvar2, xvar3, xvar4, xvar5, rho2, u2, v2, w2, P2)
 extrapolate primitive variables using characteristic pseudo pevariables 2D transport More...
 
elemental subroutine setflux1d (rho, u, P, mu, E, f1, f2, f3)
 set mass, 1D momentum and energy flux for transport along the 1st dimension More...
 
elemental subroutine setflux2d (rho, u, P, mu, mv, E, f1, f2, f3, f4)
 set mass, 2D momentum and energy flux for transport along the 1st dimension More...
 
elemental subroutine setflux3d (rho, u, P, mu, mv, mw, E, f1, f2, f3, f4, f5)
 set mass, 3D momentum and energy flux for transport along the 1st dimension More...
 
elemental subroutine cons2prim1d (gamma, rho_in, mu, E, rho_out, u, P)
 Convert from 1D conservative to primitive variables. More...
 
elemental subroutine cons2prim2d (gamma, rho_in, mu, mv, E, rho_out, u, v, P)
 Convert from 2D conservative to primitive variables. More...
 
elemental subroutine cons2prim3d (gamma, rho_in, mu, mv, mw, E, rho_out, u, v, w, P)
 Convert from 3D conservative to primitive variables. More...
 
elemental subroutine prim2cons1d (gamma, rho_in, u, P, rho_out, mu, E)
 Convert from 1D primitive to conservative variables. More...
 
elemental subroutine prim2cons2d (gamma, rho_in, u, v, P, rho_out, mu, mv, E)
 Convert from 2D primitive to conservative variables. More...
 
elemental subroutine prim2cons3d (gamma, rho_in, u, v, w, P, rho_out, mu, mv, mw, E)
 Convert from 3D primitive to conservative variables. More...
 
elemental real function getgeometricalsourcex (cxyx, cxzx, cyxy, czxz, vx, vy, vz, P, my, mz)
 geometrical momentum source terms P is the either isothermal pressure rho*cs**2 or the real pressure. More...
 
elemental real function getgeometricalsourcey (cxyx, cyxy, cyzy, czyz, vx, vy, vz, P, mx, mz)
 y-momentum geometrical source term More...
 
elemental real function getgeometricalsourcez (cxzx, cyzy, czxz, czyz, vx, vy, vz, P, mx, my)
 z-momentum geometrical source term More...
 

Variables

character(len=32), parameter problem_name = "Euler"
 

Detailed Description

physics module for 1D,2D and 3D non-isothermal Euler equations

Author
Tobias Illenseer
Björn Sperling
Jannes Klee

Function/Subroutine Documentation

◆ addbackgroundvelocityx()

pure subroutine physics_euler_mod::addbackgroundvelocityx ( class(physics_euler), intent(inout)  this,
class(mesh_base), intent(in)  Mesh,
real, dimension(mesh%jgmin:mesh%jgmax,mesh%kgmin:mesh%kgmax), intent(in)  w,
class(marray_compound), intent(inout)  pvar,
class(marray_compound), intent(inout)  cvar 
)
private

Adds a background velocity field for fargo routines.

Calculates

\begin{eqnarray*} E &=& E' + m_x' w + \frac{1}{2}\varrho w^2 \\ v_x &=& v_x' + w \\ m_x &=& m_x' + \varrho w, \end{eqnarray*}

with \( E, v_y, m_y \) the total energy, velocity and momentum. The \( ' \) denotes the residual part. \( w \) is the velocity shift.

Definition at line 1718 of file physics_euler.f90.

◆ addbackgroundvelocityy()

pure subroutine physics_euler_mod::addbackgroundvelocityy ( class(physics_euler), intent(inout)  this,
class(mesh_base), intent(in)  Mesh,
real, dimension(mesh%igmin:mesh%igmax,mesh%kgmin:mesh%kgmax), intent(in)  w,
class(marray_compound), intent(inout)  pvar,
class(marray_compound), intent(inout)  cvar 
)
private

Adds a background velocity field for fargo routines.

Calculates

\begin{eqnarray*} E &=& E' + m_y' w + \frac{1}{2}\varrho w^2 \\ v_y &=& v_y' + w \\ m_y &=& m_y' + \varrho w, \end{eqnarray*}

with \( E, v_y, m_y \) the total energy, velocity and momentum. The \( ' \) denotes the residual part. \( w \) is the velocity shift.

Definition at line 1764 of file physics_euler.f90.

◆ addbackgroundvelocityz()

pure subroutine physics_euler_mod::addbackgroundvelocityz ( class(physics_euler), intent(inout)  this,
class(mesh_base), intent(in)  Mesh,
real, dimension(mesh%igmin:mesh%igmax,mesh%jgmin:mesh%jgmax), intent(in)  w,
class(marray_compound), intent(inout)  pvar,
class(marray_compound), intent(inout)  cvar 
)
private

Adds a background velocity field for fargo routines.

Calculates

\begin{eqnarray*} E &=& E' + m_z' w + \frac{1}{2}\varrho w^2 \\ v_z &=& v_z' + w \\ m_z &=& m_z' + \varrho w, \end{eqnarray*}

with \( E, v_z, m_z \) the total energy, velocity and momentum. The \( ' \) denotes the residual part. \( w \) is the velocity shift.

Definition at line 1810 of file physics_euler.f90.

◆ assignmarray_0()

subroutine physics_euler_mod::assignmarray_0 ( class(statevector_euler), intent(inout)  this,
class(marray_base), intent(in)  ma 
)
private

assigns one state vector to another state vector

Definition at line 2107 of file physics_euler.f90.

◆ calcfluxesx()

pure subroutine physics_euler_mod::calcfluxesx ( class(physics_euler), intent(in)  this,
class(mesh_base), intent(in)  Mesh,
integer, intent(in)  nmin,
integer, intent(in)  nmax,
class(marray_compound), intent(inout)  prim,
class(marray_compound), intent(inout)  cons,
class(marray_compound), intent(inout)  xfluxes 
)
private

Calculate Fluxes in x-direction.

Definition at line 489 of file physics_euler.f90.

◆ calcfluxesy()

pure subroutine physics_euler_mod::calcfluxesy ( class(physics_euler), intent(in)  this,
class(mesh_base), intent(in)  Mesh,
integer, intent(in)  nmin,
integer, intent(in)  nmax,
class(marray_compound), intent(inout)  prim,
class(marray_compound), intent(inout)  cons,
class(marray_compound), intent(inout)  yfluxes 
)
private

Calculate Fluxes in y-direction.

Definition at line 545 of file physics_euler.f90.

◆ calcfluxesz()

pure subroutine physics_euler_mod::calcfluxesz ( class(physics_euler), intent(in)  this,
class(mesh_base), intent(in)  Mesh,
integer, intent(in)  nmin,
integer, intent(in)  nmax,
class(marray_compound), intent(inout)  prim,
class(marray_compound), intent(inout)  cons,
class(marray_compound), intent(inout)  zfluxes 
)
private

Calculate Fluxes in z-direction.

Definition at line 601 of file physics_euler.f90.

◆ calculateboundarydatax()

pure subroutine physics_euler_mod::calculateboundarydatax ( class(physics_euler), intent(in)  this,
class(mesh_base), intent(in)  Mesh,
integer, intent(in)  i1,
integer, intent(in)  i2,
real, dimension(mesh%jmin:mesh%jmax,mesh%kmin:mesh%kmax,this%vnum), intent(in)  xvar,
class(marray_compound), intent(inout)  pvar 
)
private

extrapolate pvar using characteristic pseudo variables (absorbing boundaries)

Definition at line 1069 of file physics_euler.f90.

◆ calculateboundarydatay()

pure subroutine physics_euler_mod::calculateboundarydatay ( class(physics_euler), intent(in)  this,
class(mesh_base), intent(in)  Mesh,
integer, intent(in)  j1,
integer, intent(in)  j2,
real, dimension(mesh%imin:mesh%imax,mesh%kmin:mesh%kmax,this%vnum), intent(in)  xvar,
class(marray_compound), intent(inout)  pvar 
)
private

Definition at line 1128 of file physics_euler.f90.

◆ calculateboundarydataz()

pure subroutine physics_euler_mod::calculateboundarydataz ( class(physics_euler), intent(in)  this,
class(mesh_base), intent(in)  Mesh,
integer, intent(in)  k1,
integer, intent(in)  k2,
real, dimension(mesh%imin:mesh%imax,mesh%jmin:mesh%jmax,this%vnum), intent(in)  xvar,
class(marray_compound), intent(inout)  pvar 
)
private

Definition at line 1201 of file physics_euler.f90.

◆ calculatecharsystemx()

pure subroutine physics_euler_mod::calculatecharsystemx ( class(physics_euler), intent(in)  this,
class(mesh_base), intent(in)  Mesh,
integer, intent(in)  i1,
integer, intent(in)  i2,
class(marray_compound), intent(inout)  pvar,
real, dimension(mesh%jmin:mesh%jmax,mesh%kmin:mesh%kmax,this%vnum), intent(out)  lambda,
real, dimension(mesh%jmin:mesh%jmax,mesh%kmin:mesh%kmax,this%vnum), intent(out)  xvar 
)
private

Definition at line 740 of file physics_euler.f90.

◆ calculatecharsystemy()

pure subroutine physics_euler_mod::calculatecharsystemy ( class(physics_euler), intent(in)  this,
class(mesh_base), intent(in)  Mesh,
integer, intent(in)  j1,
integer, intent(in)  j2,
class(marray_compound), intent(inout)  pvar,
real, dimension(mesh%imin:mesh%imax,mesh%kmin:mesh%kmax,this%vnum), intent(out)  lambda,
real, dimension(mesh%imin:mesh%imax,mesh%kmin:mesh%kmax,this%vnum), intent(out)  xvar 
)
private

Definition at line 845 of file physics_euler.f90.

◆ calculatecharsystemz()

pure subroutine physics_euler_mod::calculatecharsystemz ( class(physics_euler), intent(in)  this,
class(mesh_base), intent(in)  Mesh,
integer, intent(in)  k1,
integer, intent(in)  k2,
class(marray_compound), intent(inout)  pvar,
real, dimension(mesh%imin:mesh%imax,mesh%jmin:mesh%jmax,this%vnum), intent(out)  lambda,
real, dimension(mesh%imin:mesh%imax,mesh%jmin:mesh%jmax,this%vnum), intent(out)  xvar 
)
private

Definition at line 963 of file physics_euler.f90.

◆ cons2prim1d()

elemental subroutine physics_euler_mod::cons2prim1d ( real, intent(in)  gamma,
real, intent(in)  rho_in,
real, intent(in)  mu,
real, intent(in)  E,
real, intent(out)  rho_out,
real, intent(out)  u,
real, intent(out)  P 
)
private

Convert from 1D conservative to primitive variables.

Definition at line 2429 of file physics_euler.f90.

◆ cons2prim2d()

elemental subroutine physics_euler_mod::cons2prim2d ( real, intent(in)  gamma,
real, intent(in)  rho_in,
real, intent(in)  mu,
real, intent(in)  mv,
real, intent(in)  E,
real, intent(out)  rho_out,
real, intent(out)  u,
real, intent(out)  v,
real, intent(out)  P 
)
private

Convert from 2D conservative to primitive variables.

Definition at line 2444 of file physics_euler.f90.

◆ cons2prim3d()

elemental subroutine physics_euler_mod::cons2prim3d ( real, intent(in)  gamma,
real, intent(in)  rho_in,
real, intent(in)  mu,
real, intent(in)  mv,
real, intent(in)  mw,
real, intent(in)  E,
real, intent(out)  rho_out,
real, intent(out)  u,
real, intent(out)  v,
real, intent(out)  w,
real, intent(out)  P 
)
private

Convert from 3D conservative to primitive variables.

Definition at line 2460 of file physics_euler.f90.

◆ convert2conservative_all()

pure subroutine physics_euler_mod::convert2conservative_all ( class(physics_euler), intent(in)  this,
class(marray_compound), intent(inout)  pvar,
class(marray_compound), intent(inout)  cvar 
)
private

Converts primitive to conservative variables on the whole mesh.

Definition at line 365 of file physics_euler.f90.

◆ convert2conservative_subset()

pure subroutine physics_euler_mod::convert2conservative_subset ( class(physics_euler), intent(in)  this,
integer, intent(in)  i1,
integer, intent(in)  i2,
integer, intent(in)  j1,
integer, intent(in)  j2,
integer, intent(in)  k1,
integer, intent(in)  k2,
class(marray_compound), intent(inout)  pvar,
class(marray_compound), intent(inout)  cvar 
)
private

Converts primitive to conservative variables on a subset of the data.

Definition at line 402 of file physics_euler.f90.

◆ convert2primitive_all()

pure subroutine physics_euler_mod::convert2primitive_all ( class(physics_euler), intent(in)  this,
class(marray_compound), intent(inout)  cvar,
class(marray_compound), intent(inout)  pvar 
)
private

Converts conservative to primitive variables on the whole mesh.

Definition at line 242 of file physics_euler.f90.

◆ convert2primitive_subset()

pure subroutine physics_euler_mod::convert2primitive_subset ( class(physics_euler), intent(in)  this,
integer, intent(in)  i1,
integer, intent(in)  i2,
integer, intent(in)  j1,
integer, intent(in)  j2,
integer, intent(in)  k1,
integer, intent(in)  k2,
class(marray_compound), intent(inout)  cvar,
class(marray_compound), intent(inout)  pvar 
)
private

Converts conservative to primitive variables on a subset of the data.

Definition at line 279 of file physics_euler.f90.

◆ createstatevector()

type(statevector_euler) function physics_euler_mod::createstatevector ( class(physics_euler), intent(in)  Physics,
integer, intent(in), optional  flavour,
integer, intent(in), optional  num 
)

Constructor of statevector_euler.

methods of class statevector_euler This is not a class member itself, instead its an ordinary
module procedure. The function name is overloaded with the class name.

Definition at line 2017 of file physics_euler.f90.

◆ createstatevector_euler()

subroutine, public physics_euler_mod::createstatevector_euler ( class(physics_base), intent(in)  Physics,
type(statevector_euler), intent(inout)  new_sv,
integer, intent(in), optional  flavour,
integer, intent(in), optional  num 
)

Definition at line 2046 of file physics_euler.f90.

◆ externalsources()

pure subroutine physics_euler_mod::externalsources ( class(physics_euler), intent(in)  this,
class(marray_base), intent(in)  accel,
class(marray_compound), intent(inout)  pvar,
class(marray_compound), intent(inout)  cvar,
class(marray_compound), intent(inout)  sterm 
)
private

compute momentum and energy sources given an external force

Definition at line 1630 of file physics_euler.f90.

◆ finalize()

subroutine physics_euler_mod::finalize ( class(physics_euler), intent(inout)  this)

Destructor of the physics_euler class.

Definition at line 2001 of file physics_euler.f90.

◆ geometricalsources()

pure subroutine physics_euler_mod::geometricalsources ( class(physics_euler), intent(inout)  this,
class(mesh_base), intent(in)  Mesh,
class(marray_compound), intent(inout)  pvar,
class(marray_compound), intent(inout)  cvar,
class(marray_compound), intent(inout)  sterm 
)
private

Calculates geometrical sources.

Definition at line 1492 of file physics_euler.f90.

◆ getgeometricalsourcex()

elemental real function physics_euler_mod::getgeometricalsourcex ( real, intent(in)  cxyx,
real, intent(in)  cxzx,
real, intent(in)  cyxy,
real, intent(in)  czxz,
real, intent(in)  vx,
real, intent(in)  vy,
real, intent(in)  vz,
real, intent(in)  P,
real, intent(in)  my,
real, intent(in)  mz 
)
private

geometrical momentum source terms P is the either isothermal pressure rho*cs**2 or the real pressure.

Attention
These elemental functions exist multiple times for performance reasons (inlining). Please keep this in mind for changes. Other modules with this function:

x-momentum geometrical source term

Definition at line 2524 of file physics_euler.f90.

◆ getgeometricalsourcey()

elemental real function physics_euler_mod::getgeometricalsourcey ( real, intent(in)  cxyx,
real, intent(in)  cyxy,
real, intent(in)  cyzy,
real, intent(in)  czyz,
real, intent(in)  vx,
real, intent(in)  vy,
real, intent(in)  vz,
real, intent(in)  P,
real, intent(in)  mx,
real, intent(in)  mz 
)
private

y-momentum geometrical source term

Definition at line 2535 of file physics_euler.f90.

◆ getgeometricalsourcez()

elemental real function physics_euler_mod::getgeometricalsourcez ( real, intent(in)  cxzx,
real, intent(in)  cyzy,
real, intent(in)  czxz,
real, intent(in)  czyz,
real, intent(in)  vx,
real, intent(in)  vy,
real, intent(in)  vz,
real, intent(in)  P,
real, intent(in)  mx,
real, intent(in)  my 
)
private

z-momentum geometrical source term

Definition at line 2546 of file physics_euler.f90.

◆ getsoundspeed()

elemental real function physics_euler_mod::getsoundspeed ( real, intent(in)  gamma,
real, intent(in)  density,
real, intent(in)  pressure 
)
private
elemental non-class subroutines / functions

Definition at line 2138 of file physics_euler.f90.

◆ initphysics_euler()

subroutine physics_euler_mod::initphysics_euler ( class(physics_euler), intent(inout)  this,
class(mesh_base), intent(in)  Mesh,
type(dict_typ), intent(in), pointer  config,
type(dict_typ), intent(in), pointer  IO 
)
private

constructor of physics_euler class

Todo:
remove / improve in future version set array indices for 1st,2nd,3rd non-vanishing velocities this may actually not coincide with the x,y and z-velocities

Definition at line 134 of file physics_euler.f90.

◆ new_statevector()

subroutine physics_euler_mod::new_statevector ( class(physics_euler), intent(in)  this,
class(marray_compound), pointer  new_sv,
integer, intent(in), optional  flavour,
integer, intent(in), optional  num 
)

allocate an initialize new non-isothermal state vector

Definition at line 226 of file physics_euler.f90.

◆ prim2cons1d()

elemental subroutine physics_euler_mod::prim2cons1d ( real, intent(in)  gamma,
real, intent(in)  rho_in,
real, intent(in)  u,
real, intent(in)  P,
real, intent(out)  rho_out,
real, intent(out)  mu,
real, intent(out)  E 
)
private

Convert from 1D primitive to conservative variables.

Definition at line 2477 of file physics_euler.f90.

◆ prim2cons2d()

elemental subroutine physics_euler_mod::prim2cons2d ( real, intent(in)  gamma,
real, intent(in)  rho_in,
real, intent(in)  u,
real, intent(in)  v,
real, intent(in)  P,
real, intent(out)  rho_out,
real, intent(out)  mu,
real, intent(out)  mv,
real, intent(out)  E 
)
private

Convert from 2D primitive to conservative variables.

Definition at line 2489 of file physics_euler.f90.

◆ prim2cons3d()

elemental subroutine physics_euler_mod::prim2cons3d ( real, intent(in)  gamma,
real, intent(in)  rho_in,
real, intent(in)  u,
real, intent(in)  v,
real, intent(in)  w,
real, intent(in)  P,
real, intent(out)  rho_out,
real, intent(out)  mu,
real, intent(out)  mv,
real, intent(out)  mw,
real, intent(out)  E 
)
private

Convert from 3D primitive to conservative variables.

Definition at line 2502 of file physics_euler.f90.

◆ printconfiguration_euler()

subroutine physics_euler_mod::printconfiguration_euler ( class(physics_euler), intent(inout)  this)
private

Definition at line 217 of file physics_euler.f90.

◆ setboundarydata1d()

elemental subroutine physics_euler_mod::setboundarydata1d ( integer, intent(in)  delta,
real, intent(in)  gamma,
real, intent(in)  rho1,
real, intent(in)  u1,
real, intent(in)  P1,
real, intent(in)  xvar1,
real, intent(in)  xvar2,
real, intent(in)  xvar3,
real, intent(out)  rho2,
real, intent(out)  u2,
real, intent(out)  P2 
)
private

extrapolate primitive variables using characteristic pseudo pevariables 1D transport

Definition at line 2300 of file physics_euler.f90.

◆ setboundarydata2d()

elemental subroutine physics_euler_mod::setboundarydata2d ( integer, intent(in)  delta,
real, intent(in)  gamma,
real, intent(in)  rho1,
real, intent(in)  u1,
real, intent(in)  v1,
real, intent(in)  P1,
real, intent(in)  xvar1,
real, intent(in)  xvar2,
real, intent(in)  xvar3,
real, intent(in)  xvar4,
real, intent(out)  rho2,
real, intent(out)  u2,
real, intent(out)  v2,
real, intent(out)  P2 
)
private

extrapolate primitive variables using characteristic pseudo pevariables 2D transport

Definition at line 2322 of file physics_euler.f90.

◆ setboundarydata3d()

elemental subroutine physics_euler_mod::setboundarydata3d ( integer, intent(in)  delta,
real, intent(in)  gamma,
real, intent(in)  rho1,
real, intent(in)  u1,
real, intent(in)  v1,
real, intent(in)  w1,
real, intent(in)  P1,
real, intent(in)  xvar1,
real, intent(in)  xvar2,
real, intent(in)  xvar3,
real, intent(in)  xvar4,
real, intent(in)  xvar5,
real, intent(out)  rho2,
real, intent(out)  u2,
real, intent(out)  v2,
real, intent(out)  w2,
real, intent(out)  P2 
)
private

extrapolate primitive variables using characteristic pseudo pevariables 2D transport

Definition at line 2336 of file physics_euler.f90.

◆ setcharvars1d()

elemental subroutine physics_euler_mod::setcharvars1d ( real, intent(in)  gamma,
real, intent(in)  rho1,
real, intent(in)  rho2,
real, intent(in)  u1,
real, intent(in)  u2,
real, intent(in)  P1,
real, intent(in)  P2,
real, intent(in)  l1,
real, intent(in)  l3,
real, intent(out)  xvar1,
real, intent(out)  xvar2,
real, intent(out)  xvar3 
)
private

compute characteristic variables for 1D transport

Definition at line 2256 of file physics_euler.f90.

◆ setcharvars2d()

elemental subroutine physics_euler_mod::setcharvars2d ( real, intent(in)  gamma,
real, intent(in)  rho1,
real, intent(in)  rho2,
real, intent(in)  u1,
real, intent(in)  u2,
real, intent(in)  v1,
real, intent(in)  v2,
real, intent(in)  P1,
real, intent(in)  P2,
real, intent(in)  l1,
real, intent(in)  l4,
real, intent(out)  xvar1,
real, intent(out)  xvar2,
real, intent(out)  xvar3,
real, intent(out)  xvar4 
)
private

compute characteristic variables for 2D transport

Definition at line 2275 of file physics_euler.f90.

◆ setcharvars3d()

elemental subroutine physics_euler_mod::setcharvars3d ( real, intent(in)  gamma,
real, intent(in)  rho1,
real, intent(in)  rho2,
real, intent(in)  u1,
real, intent(in)  u2,
real, intent(in)  v1,
real, intent(in)  v2,
real, intent(in)  w1,
real, intent(in)  w2,
real, intent(in)  P1,
real, intent(in)  P2,
real, intent(in)  l1,
real, intent(in)  l5,
real, intent(out)  xvar1,
real, intent(out)  xvar2,
real, intent(out)  xvar3,
real, intent(out)  xvar4,
real, intent(out)  xvar5 
)
private

compute characteristic variables for 3D transport

Definition at line 2287 of file physics_euler.f90.

◆ seteigenvalues1d()

elemental subroutine physics_euler_mod::seteigenvalues1d ( real, intent(in)  gamma,
real, intent(in)  rho,
real, intent(in)  v,
real, intent(in)  P,
real, intent(out)  l1,
real, intent(out)  l2,
real, intent(out)  l3 
)
private

set all eigenvalues for 1D transport (used in absorbing boundary conditions)

Definition at line 2185 of file physics_euler.f90.

◆ seteigenvalues2d()

elemental subroutine physics_euler_mod::seteigenvalues2d ( real, intent(in)  gamma,
real, intent(in)  rho,
real, intent(in)  v,
real, intent(in)  P,
real, intent(out)  l1,
real, intent(out)  l2,
real, intent(out)  l3,
real, intent(out)  l4 
)
private

set all eigenvalues for 2D transport (used in absorbing boundary conditions)

Definition at line 2202 of file physics_euler.f90.

◆ seteigenvalues3d()

elemental subroutine physics_euler_mod::seteigenvalues3d ( real, intent(in)  gamma,
real, intent(in)  rho,
real, intent(in)  v,
real, intent(in)  P,
real, intent(out)  l1,
real, intent(out)  l2,
real, intent(out)  l3,
real, intent(out)  l4,
real, intent(out)  l5 
)
private

set all eigenvalues for 3D transport (used in absorbing boundary conditions)

Definition at line 2213 of file physics_euler.f90.

◆ setflux1d()

elemental subroutine physics_euler_mod::setflux1d ( real, intent(in)  rho,
real, intent(in)  u,
real, intent(in)  P,
real, intent(in)  mu,
real, intent(in)  E,
real, intent(out)  f1,
real, intent(out)  f2,
real, intent(out)  f3 
)
private

set mass, 1D momentum and energy flux for transport along the 1st dimension

Definition at line 2395 of file physics_euler.f90.

◆ setflux2d()

elemental subroutine physics_euler_mod::setflux2d ( real, intent(in)  rho,
real, intent(in)  u,
real, intent(in)  P,
real, intent(in)  mu,
real, intent(in)  mv,
real, intent(in)  E,
real, intent(out)  f1,
real, intent(out)  f2,
real, intent(out)  f3,
real, intent(out)  f4 
)
private

set mass, 2D momentum and energy flux for transport along the 1st dimension

Definition at line 2407 of file physics_euler.f90.

◆ setflux3d()

elemental subroutine physics_euler_mod::setflux3d ( real, intent(in)  rho,
real, intent(in)  u,
real, intent(in)  P,
real, intent(in)  mu,
real, intent(in)  mv,
real, intent(in)  mw,
real, intent(in)  E,
real, intent(out)  f1,
real, intent(out)  f2,
real, intent(out)  f3,
real, intent(out)  f4,
real, intent(out)  f5 
)
private

set mass, 3D momentum and energy flux for transport along the 1st dimension

Definition at line 2418 of file physics_euler.f90.

◆ setintermediatestate()

elemental subroutine physics_euler_mod::setintermediatestate ( real, intent(in)  rhoL,
real, intent(in)  rhoR,
real, intent(in)  uL,
real, intent(in)  uR,
real, intent(in)  vl,
real, intent(in)  vR,
real, intent(in)  pL,
real, intent(in)  pR,
real, intent(in)  eL,
real, intent(in)  eR,
real, intent(in)  amin,
real, intent(in)  amax,
real, intent(out)  rho,
real, intent(out)  mu,
real, intent(out)  mv,
real, intent(out)  e,
real, intent(out)  a 
)
private

Definition at line 2226 of file physics_euler.f90.

◆ setroeaverages()

elemental subroutine physics_euler_mod::setroeaverages ( real, intent(in)  gamma,
real, intent(in)  rhoL,
real, intent(in)  rhoR,
real, intent(in)  ul,
real, intent(in)  uR,
real, intent(in)  vL,
real, intent(in)  vR,
real, intent(in)  pL,
real, intent(in)  pR,
real, intent(in)  eL,
real, intent(in)  eR,
real, intent(out)  u,
real, intent(out)  cs 
)
private
Todo:
NOT VERIFIED only for advanced wavespeeds

Definition at line 2149 of file physics_euler.f90.

◆ setwavespeeds()

elemental subroutine physics_euler_mod::setwavespeeds ( real, intent(in)  cs,
real, intent(in)  v,
real, intent(out)  minwav,
real, intent(out)  maxwav 
)
private

set minimal and maximal wave speeds

Definition at line 2173 of file physics_euler.f90.

◆ subtractbackgroundvelocityx()

pure subroutine physics_euler_mod::subtractbackgroundvelocityx ( class(physics_euler), intent(inout)  this,
class(mesh_base), intent(in)  Mesh,
real, dimension(mesh%jgmin:mesh%jgmax,mesh%kgmin:mesh%kgmax), intent(in)  w,
class(marray_compound), intent(inout)  pvar,
class(marray_compound), intent(inout)  cvar 
)
private

Substracts a background velocity field for fargo routines.

Calculates

\begin{eqnarray*} E' &=& E - m_x w + \frac{1}{2}\varrho w^2 \\ v_x' &=& v_x - w \\ m_x' &=& m_x - \varrho w, \end{eqnarray*}

with \( E, v_x, m_x \) the total energy, velocity and momentum. The \( ' \) denotes the residual part. \( w \) is the velocity shift.

Definition at line 1856 of file physics_euler.f90.

◆ subtractbackgroundvelocityy()

pure subroutine physics_euler_mod::subtractbackgroundvelocityy ( class(physics_euler), intent(inout)  this,
class(mesh_base), intent(in)  Mesh,
real, dimension(mesh%igmin:mesh%igmax,mesh%kgmin:mesh%kgmax), intent(in)  w,
class(marray_compound), intent(inout)  pvar,
class(marray_compound), intent(inout)  cvar 
)
private

Substracts a background velocity field for fargo routines.

Calculates

\begin{eqnarray*} E' &=& E - m_y w + \frac{1}{2}\varrho w^2 \\ v_y' &=& v_y - w \\ m_y' &=& m_y - \varrho w, \end{eqnarray*}

with \( E, v_y, m_y \) the total energy, velocity and momentum. The \( ' \) denotes the residual part. \( w \) is the velocity shift.

Definition at line 1902 of file physics_euler.f90.

◆ subtractbackgroundvelocityz()

pure subroutine physics_euler_mod::subtractbackgroundvelocityz ( class(physics_euler), intent(inout)  this,
class(mesh_base), intent(in)  Mesh,
real, dimension(mesh%igmin:mesh%igmax,mesh%jgmin:mesh%jgmax), intent(in)  w,
class(marray_compound), intent(inout)  pvar,
class(marray_compound), intent(inout)  cvar 
)
private

Substracts a background velocity field for fargo routines.

Calculates

\begin{eqnarray*} E' &=& E - m_z w + \frac{1}{2}\varrho w^2 \\ v_z' &=& v_z - w \\ m_z' &=& m_z - \varrho w, \end{eqnarray*}

with \( E, v_z, m_z \) the total energy, velocity and momentum. The \( ' \) denotes the residual part. \( w \) is the velocity shift.

Definition at line 1948 of file physics_euler.f90.

◆ updatesoundspeed()

pure subroutine physics_euler_mod::updatesoundspeed ( class(physics_euler), intent(inout)  this,
class(statevector_euler), intent(inout)  pvar 
)
private

Definition at line 1985 of file physics_euler.f90.

◆ viscositysources()

pure subroutine physics_euler_mod::viscositysources ( class(physics_euler), intent(inout)  this,
class(mesh_base), intent(in)  Mesh,
class(marray_compound), intent(inout)  pvar,
real, dimension(mesh%igmin:mesh%igmax,mesh%jgmin:mesh%jgmax,mesh%kgmin:mesh%kgmax), intent(in)  btxx,
real, dimension(mesh%igmin:mesh%igmax,mesh%jgmin:mesh%jgmax,mesh%kgmin:mesh%kgmax), intent(in)  btxy,
real, dimension(mesh%igmin:mesh%igmax,mesh%jgmin:mesh%jgmax,mesh%kgmin:mesh%kgmax), intent(in)  btxz,
real, dimension(mesh%igmin:mesh%igmax,mesh%jgmin:mesh%jgmax,mesh%kgmin:mesh%kgmax), intent(in)  btyy,
real, dimension(mesh%igmin:mesh%igmax,mesh%jgmin:mesh%jgmax,mesh%kgmin:mesh%kgmax), intent(in)  btyz,
real, dimension(mesh%igmin:mesh%igmax,mesh%jgmin:mesh%jgmax,mesh%kgmin:mesh%kgmax), intent(in)  btzz,
class(marray_compound), intent(inout)  sterm 
)
private

Definition at line 1649 of file physics_euler.f90.

Variable Documentation

◆ problem_name

character(len=32), parameter physics_euler_mod::problem_name = "Euler"
private

Definition at line 52 of file physics_euler.f90.