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
Function/Subroutine Documentation
◆ addbackgroundvelocityx()
|
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()
|
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()
|
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()
|
private |
assigns one state vector to another state vector
Definition at line 2107 of file physics_euler.f90.
◆ calcfluxesx()
|
private |
Calculate Fluxes in x-direction.
Definition at line 489 of file physics_euler.f90.
◆ calcfluxesy()
|
private |
Calculate Fluxes in y-direction.
Definition at line 545 of file physics_euler.f90.
◆ calcfluxesz()
|
private |
Calculate Fluxes in z-direction.
Definition at line 601 of file physics_euler.f90.
◆ calculateboundarydatax()
|
private |
extrapolate pvar using characteristic pseudo variables (absorbing boundaries)
Definition at line 1069 of file physics_euler.f90.
◆ calculateboundarydatay()
|
private |
Definition at line 1128 of file physics_euler.f90.
◆ calculateboundarydataz()
|
private |
Definition at line 1201 of file physics_euler.f90.
◆ calculatecharsystemx()
|
private |
Definition at line 740 of file physics_euler.f90.
◆ calculatecharsystemy()
|
private |
Definition at line 845 of file physics_euler.f90.
◆ calculatecharsystemz()
|
private |
Definition at line 963 of file physics_euler.f90.
◆ cons2prim1d()
|
private |
Convert from 1D conservative to primitive variables.
Definition at line 2429 of file physics_euler.f90.
◆ cons2prim2d()
|
private |
Convert from 2D conservative to primitive variables.
Definition at line 2444 of file physics_euler.f90.
◆ cons2prim3d()
|
private |
Convert from 3D conservative to primitive variables.
Definition at line 2460 of file physics_euler.f90.
◆ convert2conservative_all()
|
private |
Converts primitive to conservative variables on the whole mesh.
Definition at line 365 of file physics_euler.f90.
◆ convert2conservative_subset()
|
private |
Converts primitive to conservative variables on a subset of the data.
Definition at line 402 of file physics_euler.f90.
◆ convert2primitive_all()
|
private |
Converts conservative to primitive variables on the whole mesh.
Definition at line 242 of file physics_euler.f90.
◆ convert2primitive_subset()
|
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()
|
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()
|
private |
Calculates geometrical sources.
Definition at line 1492 of file physics_euler.f90.
◆ getgeometricalsourcex()
|
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()
|
private |
y-momentum geometrical source term
Definition at line 2535 of file physics_euler.f90.
◆ getgeometricalsourcez()
|
private |
z-momentum geometrical source term
Definition at line 2546 of file physics_euler.f90.
◆ getsoundspeed()
|
private |
- elemental non-class subroutines / functions
Definition at line 2138 of file physics_euler.f90.
◆ initphysics_euler()
|
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()
|
private |
Convert from 1D primitive to conservative variables.
Definition at line 2477 of file physics_euler.f90.
◆ prim2cons2d()
|
private |
Convert from 2D primitive to conservative variables.
Definition at line 2489 of file physics_euler.f90.
◆ prim2cons3d()
|
private |
Convert from 3D primitive to conservative variables.
Definition at line 2502 of file physics_euler.f90.
◆ printconfiguration_euler()
|
private |
Definition at line 217 of file physics_euler.f90.
◆ setboundarydata1d()
|
private |
extrapolate primitive variables using characteristic pseudo pevariables 1D transport
Definition at line 2300 of file physics_euler.f90.
◆ setboundarydata2d()
|
private |
extrapolate primitive variables using characteristic pseudo pevariables 2D transport
Definition at line 2322 of file physics_euler.f90.
◆ setboundarydata3d()
|
private |
extrapolate primitive variables using characteristic pseudo pevariables 2D transport
Definition at line 2336 of file physics_euler.f90.
◆ setcharvars1d()
|
private |
compute characteristic variables for 1D transport
Definition at line 2256 of file physics_euler.f90.
◆ setcharvars2d()
|
private |
compute characteristic variables for 2D transport
Definition at line 2275 of file physics_euler.f90.
◆ setcharvars3d()
|
private |
compute characteristic variables for 3D transport
Definition at line 2287 of file physics_euler.f90.
◆ seteigenvalues1d()
|
private |
set all eigenvalues for 1D transport (used in absorbing boundary conditions)
Definition at line 2185 of file physics_euler.f90.
◆ seteigenvalues2d()
|
private |
set all eigenvalues for 2D transport (used in absorbing boundary conditions)
Definition at line 2202 of file physics_euler.f90.
◆ seteigenvalues3d()
|
private |
set all eigenvalues for 3D transport (used in absorbing boundary conditions)
Definition at line 2213 of file physics_euler.f90.
◆ setflux1d()
|
private |
set mass, 1D momentum and energy flux for transport along the 1st dimension
Definition at line 2395 of file physics_euler.f90.
◆ setflux2d()
|
private |
set mass, 2D momentum and energy flux for transport along the 1st dimension
Definition at line 2407 of file physics_euler.f90.
◆ setflux3d()
|
private |
set mass, 3D momentum and energy flux for transport along the 1st dimension
Definition at line 2418 of file physics_euler.f90.
◆ setintermediatestate()
|
private |
Definition at line 2226 of file physics_euler.f90.
◆ setroeaverages()
|
private |
- Todo:
- NOT VERIFIED only for advanced wavespeeds
Definition at line 2149 of file physics_euler.f90.
◆ setwavespeeds()
|
private |
set minimal and maximal wave speeds
Definition at line 2173 of file physics_euler.f90.
◆ subtractbackgroundvelocityx()
|
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()
|
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()
|
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()
|
private |
Definition at line 1985 of file physics_euler.f90.
◆ viscositysources()
|
private |
Definition at line 1649 of file physics_euler.f90.
Variable Documentation
◆ problem_name
|
private |
Definition at line 52 of file physics_euler.f90.