physics_eulerisotherm_mod Module Reference

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

Data Types

interface  cons2prim
 
type  physics_eulerisotherm
 
interface  prim2cons
 
interface  setflux
 
type  statevector_eulerisotherm
 

Variables

integer, parameter num_var = 3
 
character(len=32), parameter problem_name = "Euler isotherm"
 

Variables

subroutine initphysics_eulerisotherm (this, Mesh, config, IO)
 Intialization of isothermal physics. More...
 
subroutine printconfiguration_eulerisotherm (this)
 
subroutine enableoutput (this, Mesh, config, IO)
 Enables output of certain arrays defined in this class. More...
 
subroutine new_statevector (this, new_sv, flavour, num)
 allocate an initialize new isothermal state vector More...
 
pure subroutine setsoundspeeds_center (this, Mesh, bccsound)
 Sets soundspeeds at cell-centers. More...
 
pure subroutine setsoundspeeds_faces (this, Mesh, fcsound)
 Sets soundspeeds at cell-faces. More...
 
pure subroutine convert2primitive_all (this, cvar, pvar)
 Converts to primitives at cell centers using state vectors. More...
 
pure subroutine convert2primitive_subset (this, i1, i2, j1, j2, k1, k2, cvar, pvar)
 Converts to primitives at cell centers using state vectors. 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 to primitive to conservative variables on a subset of the data. More...
 
pure subroutine calcwavespeeds_center (this, Mesh, pvar, minwav, maxwav)
 Calculates wave speeds at cell-centers. More...
 
pure subroutine calcwavespeeds_faces (this, Mesh, prim, cons, minwav, maxwav)
 Calculates wave speeds at cell-faces. More...
 
pure subroutine geometricalsources (this, Mesh, pvar, cvar, sterm)
 Calculates geometrical sources. 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 viscositysources (this, Mesh, pvar, btxx, btxy, btxz, btyy, btyz, btzz, sterm)
 compute viscous source terms More...
 
pure subroutine calcstresses (this, Mesh, pvar, dynvis, bulkvis, btxx, btxy, btxz, btyy, btyz, btzz)
 calculate components of the stress tensor More...
 
pure subroutine externalsources (this, accel, pvar, cvar, sterm)
 compute momentum sources given an external force More...
 
pure subroutine addbackgroundvelocityx (this, Mesh, w, pvar, cvar)
 
pure subroutine addbackgroundvelocityy (this, Mesh, w, pvar, cvar)
 
pure subroutine addbackgroundvelocityz (this, Mesh, w, pvar, cvar)
 
pure subroutine subtractbackgroundvelocityx (this, Mesh, w, pvar, cvar)
 
pure subroutine subtractbackgroundvelocityy (this, Mesh, w, pvar, cvar)
 
pure subroutine subtractbackgroundvelocityz (this, Mesh, w, pvar, cvar)
 
pure subroutine addfargosources (this, Mesh, w, pvar, cvar, sterm)
 sources terms for fargo advection More...
 
pure subroutine reflectionmasks (this, Mesh, reflX, reflY, reflZ)
 return masks for reflecting boundaries More...
 
pure subroutine axismasks (this, Mesh, reflX, reflY, reflZ)
 return masks for axis boundaries 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)
 
pure subroutine calculateboundarydatay (this, Mesh, j1, j2, xvar, pvar)
 
pure subroutine calculateboundarydataz (this, Mesh, k1, k2, xvar, pvar)
 
subroutine finalize (this)
 Destructor of the physics_eulerisotherm class. More...
 
type(statevector_eulerisotherm) function createstatevector (Physics, flavour, num)
 Constructor of statevector_eulerisotherm. More...
 
subroutine, public createstatevector_eulerisotherm (Physics, new_sv, flavour, num)
 
subroutine assignmarray_0 (this, ma)
 assigns one state vector to another state vector More...
 
elemental subroutine setwavespeeds (cs, v, minwav, maxwav)
 set minimal and maximal wave speeds More...
 
elemental subroutine seteigenvalues1d (cs, v, l1, l2)
 compute all eigenvalues More...
 
elemental subroutine seteigenvalues2d (cs, v, l1, l2, l3)
 
elemental subroutine seteigenvalues3d (cs, v, l1, l2, l3, l4)
 
elemental subroutine setflux1d (cs, rho, u, mu, f1, f2)
 set mass and 1D momentum flux for transport along the 1st dimension More...
 
elemental subroutine setflux2d (cs, rho, u, mu, mv, f1, f2, f3)
 set mass and 2D momentum flux for transport along the 1st dimension More...
 
elemental subroutine setflux3d (cs, rho, u, mu, mv, mw, f1, f2, f3, f4)
 set mass and 3D momentum flux for transport along the 1st dimension More...
 
elemental subroutine cons2prim1d (rho_in, mu, rho_out, u)
 Convert from 1D conservative to primitive variables. More...
 
elemental subroutine cons2prim2d (rho_in, mu, mv, rho_out, u, v)
 Convert from 2D conservative to primitive variables. More...
 
elemental subroutine cons2prim3d (rho_in, mu, mv, mw, rho_out, u, v, w)
 Convert from 3D conservative to primitive variables. More...
 
elemental subroutine prim2cons1d (rho_in, u, rho_out, mu)
 Convert from 1D primitive to conservative variables. More...
 
elemental subroutine prim2cons2d (rho_in, u, v, rho_out, mu, mv)
 Convert from 2D primitive to conservative variables. More...
 
elemental subroutine prim2cons3d (rho_in, u, v, w, rho_out, mu, mv, mw)
 Convert from 3D primitive to conservative variables. More...
 
elemental subroutine setcharvars1d (cs, rho1, rho2, u1, u2, xvar1, xvar2)
 compute characteristic variables using adjacent primitve states More...
 
elemental subroutine setcharvars2d (cs, rho1, rho2, u1, u2, v1, v2, xvar1, xvar2, xvar3)
 compute characteristic variables using adjacent primitve states More...
 
elemental subroutine setcharvars3d (cs, rho1, rho2, u1, u2, v1, v2, w1, w2, xvar1, xvar2, xvar3, xvar4)
 compute characteristic variables using adjacent primitve states More...
 
elemental subroutine setboundarydata1d (delta, cs, rho1, u1, xvar1, xvar2, rho2, u2)
 extrapolate boundary values using primitve and characteristic variables More...
 
elemental subroutine setboundarydata2d (delta, cs, rho1, u1, v1, xvar1, xvar2, xvar3, rho2, u2, v2)
 
elemental subroutine setboundarydata3d (delta, cs, rho1, u1, v1, w1, xvar1, xvar2, xvar3, xvar4, rho2, u2, v2, w2)
 
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...
 

Detailed Description

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

Author
Tobias Illenseer
Björn Sperling
Manuel Jung
Lars Boesch
Jannes Klee

Function/Subroutine Documentation

◆ addbackgroundvelocityx()

pure subroutine physics_eulerisotherm_mod::addbackgroundvelocityx ( class(physics_eulerisotherm), 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

Definition at line 1223 of file physics_eulerisotherm.f90.

◆ addbackgroundvelocityy()

pure subroutine physics_eulerisotherm_mod::addbackgroundvelocityy ( class(physics_eulerisotherm), 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

Definition at line 1256 of file physics_eulerisotherm.f90.

◆ addbackgroundvelocityz()

pure subroutine physics_eulerisotherm_mod::addbackgroundvelocityz ( class(physics_eulerisotherm), 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

Definition at line 1288 of file physics_eulerisotherm.f90.

◆ addfargosources()

pure subroutine physics_eulerisotherm_mod::addfargosources ( class(physics_eulerisotherm), intent(in)  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,
class(marray_compound), intent(inout)  sterm 
)

sources terms for fargo advection

If the background velocity \(\vec{w}=w\,\hat{e}_\eta\) with \(w\) independent of \(\eta\) and \(t\) is subtracted from the overall velocity of the flow, an additional source term occurs in the \(\eta\)-momentum equation:

\[ S_\mathrm{Fargo} = -\varrho u_\xi \frac{1}{h_\xi} \partial_\xi \left(h_\xi w\right) = -\varrho u_\xi w \,\partial_\xi \left(\ln{|h_\xi w|}\right) \]

Definition at line 1428 of file physics_eulerisotherm.f90.

◆ assignmarray_0()

subroutine physics_eulerisotherm_mod::assignmarray_0 ( class(statevector_eulerisotherm), intent(inout)  this,
class(marray_base), intent(in)  ma 
)
private

assigns one state vector to another state vector

Todo:
make this more generic, i.e. this should not depend on the position in the list of compound items

Definition at line 2151 of file physics_eulerisotherm.f90.

◆ axismasks()

pure subroutine physics_eulerisotherm_mod::axismasks ( class(physics_eulerisotherm), intent(in)  this,
class(mesh_base), intent(in)  Mesh,
logical, dimension(this%vnum), intent(out)  reflX,
logical, dimension(this%vnum), intent(out)  reflY,
logical, dimension(this%vnum), intent(out)  reflZ 
)
private

return masks for axis boundaries

Warning
Not rigorously tested!

At axis boundaries we change the sign of normal velocities as in reflecting boundary conditions and in addition the sign of the tangential velocity in the plane perpendicular to the axis is changed.

Definition at line 1502 of file physics_eulerisotherm.f90.

◆ calcfluxesx()

pure subroutine physics_eulerisotherm_mod::calcfluxesx ( class(physics_eulerisotherm), 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 832 of file physics_eulerisotherm.f90.

◆ calcfluxesy()

pure subroutine physics_eulerisotherm_mod::calcfluxesy ( class(physics_eulerisotherm), 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 881 of file physics_eulerisotherm.f90.

◆ calcfluxesz()

pure subroutine physics_eulerisotherm_mod::calcfluxesz ( class(physics_eulerisotherm), 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 930 of file physics_eulerisotherm.f90.

◆ calcstresses()

pure subroutine physics_eulerisotherm_mod::calcstresses ( class(physics_eulerisotherm), intent(inout)  this,
class(mesh_base), intent(in)  Mesh,
class(marray_compound), intent(inout)  pvar,
class(marray_base), intent(inout)  dynvis,
class(marray_base), intent(inout)  bulkvis,
real, dimension(mesh%igmin:mesh%igmax,mesh%jgmin:mesh%jgmax,mesh%kgmin:mesh%kgmax), intent(out)  btxx,
real, dimension(mesh%igmin:mesh%igmax,mesh%jgmin:mesh%jgmax,mesh%kgmin:mesh%kgmax), intent(out)  btxy,
real, dimension(mesh%igmin:mesh%igmax,mesh%jgmin:mesh%jgmax,mesh%kgmin:mesh%kgmax), intent(out)  btxz,
real, dimension(mesh%igmin:mesh%igmax,mesh%jgmin:mesh%jgmax,mesh%kgmin:mesh%kgmax), intent(out)  btyy,
real, dimension(mesh%igmin:mesh%igmax,mesh%jgmin:mesh%jgmax,mesh%kgmin:mesh%kgmax), intent(out)  btyz,
real, dimension(mesh%igmin:mesh%igmax,mesh%jgmin:mesh%jgmax,mesh%kgmin:mesh%kgmax), intent(out)  btzz 
)
private

calculate components of the stress tensor

The components are computed at cell bary centers inside the computational domain including one slice of ghost cells.

Definition at line 1021 of file physics_eulerisotherm.f90.

◆ calculateboundarydatax()

pure subroutine physics_eulerisotherm_mod::calculateboundarydatax ( class(physics_eulerisotherm), 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

Definition at line 1828 of file physics_eulerisotherm.f90.

◆ calculateboundarydatay()

pure subroutine physics_eulerisotherm_mod::calculateboundarydatay ( class(physics_eulerisotherm), 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 1889 of file physics_eulerisotherm.f90.

◆ calculateboundarydataz()

pure subroutine physics_eulerisotherm_mod::calculateboundarydataz ( class(physics_eulerisotherm), 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 1961 of file physics_eulerisotherm.f90.

◆ calculatecharsystemx()

pure subroutine physics_eulerisotherm_mod::calculatecharsystemx ( class(physics_eulerisotherm), 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 1565 of file physics_eulerisotherm.f90.

◆ calculatecharsystemy()

pure subroutine physics_eulerisotherm_mod::calculatecharsystemy ( class(physics_eulerisotherm), 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 1653 of file physics_eulerisotherm.f90.

◆ calculatecharsystemz()

pure subroutine physics_eulerisotherm_mod::calculatecharsystemz ( class(physics_eulerisotherm), 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 1747 of file physics_eulerisotherm.f90.

◆ calcwavespeeds_center()

pure subroutine physics_eulerisotherm_mod::calcwavespeeds_center ( class(physics_eulerisotherm), intent(inout)  this,
class(mesh_base), intent(in)  Mesh,
class(marray_compound), intent(inout)  pvar,
type(marray_base), intent(inout)  minwav,
type(marray_base), intent(inout)  maxwav 
)
private

Calculates wave speeds at cell-centers.

Definition at line 532 of file physics_eulerisotherm.f90.

◆ calcwavespeeds_faces()

pure subroutine physics_eulerisotherm_mod::calcwavespeeds_faces ( class(physics_eulerisotherm), intent(inout)  this,
class(mesh_base), intent(in)  Mesh,
real, dimension(mesh%igmin:mesh%igmax,mesh%jgmin:mesh%jgmax,mesh%kgmin:mesh%kgmax,mesh%nfaces,this%vnum), intent(in)  prim,
real, dimension(mesh%igmin:mesh%igmax,mesh%jgmin:mesh%jgmax,mesh%kgmin:mesh%kgmax,mesh%nfaces,this%vnum), intent(in)  cons,
type(marray_base), intent(inout)  minwav,
type(marray_base), intent(inout)  maxwav 
)
private

Calculates wave speeds at cell-faces.

Definition at line 557 of file physics_eulerisotherm.f90.

◆ cons2prim1d()

elemental subroutine physics_eulerisotherm_mod::cons2prim1d ( real, intent(in)  rho_in,
real, intent(in)  mu,
real, intent(out)  rho_out,
real, intent(out)  u 
)
private

Convert from 1D conservative to primitive variables.

Definition at line 2266 of file physics_eulerisotherm.f90.

◆ cons2prim2d()

elemental subroutine physics_eulerisotherm_mod::cons2prim2d ( real, intent(in)  rho_in,
real, intent(in)  mu,
real, intent(in)  mv,
real, intent(out)  rho_out,
real, intent(out)  u,
real, intent(out)  v 
)
private

Convert from 2D conservative to primitive variables.

Definition at line 2277 of file physics_eulerisotherm.f90.

◆ cons2prim3d()

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

Convert from 3D conservative to primitive variables.

Definition at line 2292 of file physics_eulerisotherm.f90.

◆ convert2conservative_all()

pure subroutine physics_eulerisotherm_mod::convert2conservative_all ( class(physics_eulerisotherm), 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 424 of file physics_eulerisotherm.f90.

◆ convert2conservative_subset()

pure subroutine physics_eulerisotherm_mod::convert2conservative_subset ( class(physics_eulerisotherm), 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 to primitive to conservative variables on a subset of the data.

Definition at line 458 of file physics_eulerisotherm.f90.

◆ convert2primitive_all()

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

Converts to primitives at cell centers using state vectors.

Definition at line 316 of file physics_eulerisotherm.f90.

◆ convert2primitive_subset()

pure subroutine physics_eulerisotherm_mod::convert2primitive_subset ( class(physics_eulerisotherm), 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 to primitives at cell centers using state vectors.

Definition at line 350 of file physics_eulerisotherm.f90.

◆ createstatevector()

type(statevector_eulerisotherm) function physics_eulerisotherm_mod::createstatevector ( class(physics_eulerisotherm), intent(in)  Physics,
integer, intent(in), optional  flavour,
integer, intent(in), optional  num 
)

Constructor of statevector_eulerisotherm.

methods of class statevector_eulerisotherm 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 2041 of file physics_eulerisotherm.f90.

◆ createstatevector_eulerisotherm()

subroutine, public physics_eulerisotherm_mod::createstatevector_eulerisotherm ( class(physics_eulerisotherm), intent(in)  Physics,
type(statevector_eulerisotherm), intent(inout)  new_sv,
integer, intent(in), optional  flavour,
integer, intent(in), optional  num 
)

Definition at line 2095 of file physics_eulerisotherm.f90.

◆ enableoutput()

subroutine physics_eulerisotherm_mod::enableoutput ( class(physics_eulerisotherm), intent(inout)  this,
class(mesh_base), intent(in)  Mesh,
type(dict_typ), intent(in), pointer  config,
type(dict_typ), intent(in), pointer  IO 
)
private

Enables output of certain arrays defined in this class.

Definition at line 254 of file physics_eulerisotherm.f90.

◆ externalsources()

pure subroutine physics_eulerisotherm_mod::externalsources ( class(physics_eulerisotherm), 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 sources given an external force

Definition at line 1198 of file physics_eulerisotherm.f90.

◆ finalize()

subroutine physics_eulerisotherm_mod::finalize ( class(physics_eulerisotherm), intent(inout)  this)

Destructor of the physics_eulerisotherm class.

Definition at line 2022 of file physics_eulerisotherm.f90.

◆ geometricalsources()

pure subroutine physics_eulerisotherm_mod::geometricalsources ( class(physics_eulerisotherm), 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 691 of file physics_eulerisotherm.f90.

◆ getgeometricalsourcex()

elemental real function physics_eulerisotherm_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 2426 of file physics_eulerisotherm.f90.

◆ getgeometricalsourcey()

elemental real function physics_eulerisotherm_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 2437 of file physics_eulerisotherm.f90.

◆ getgeometricalsourcez()

elemental real function physics_eulerisotherm_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 2448 of file physics_eulerisotherm.f90.

◆ initphysics_eulerisotherm()

subroutine physics_eulerisotherm_mod::initphysics_eulerisotherm ( class(physics_eulerisotherm), intent(inout)  this,
class(mesh_base), intent(in)  Mesh,
type(dict_typ), intent(in), pointer  config,
type(dict_typ), intent(in), pointer  IO 
)
private

Intialization of isothermal physics.

methods of class physics_eulerisotherm - calls intialization of base routines of physics
  • set array indices, names and number of dimensions
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 160 of file physics_eulerisotherm.f90.

◆ new_statevector()

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

allocate an initialize new isothermal state vector

Definition at line 276 of file physics_eulerisotherm.f90.

◆ prim2cons1d()

elemental subroutine physics_eulerisotherm_mod::prim2cons1d ( real, intent(in)  rho_in,
real, intent(in)  u,
real, intent(out)  rho_out,
real, intent(out)  mu 
)
private

Convert from 1D primitive to conservative variables.

Definition at line 2308 of file physics_eulerisotherm.f90.

◆ prim2cons2d()

elemental subroutine physics_eulerisotherm_mod::prim2cons2d ( real, intent(in)  rho_in,
real, intent(in)  u,
real, intent(in)  v,
real, intent(out)  rho_out,
real, intent(out)  mu,
real, intent(out)  mv 
)
private

Convert from 2D primitive to conservative variables.

Definition at line 2319 of file physics_eulerisotherm.f90.

◆ prim2cons3d()

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

Convert from 3D primitive to conservative variables.

Definition at line 2330 of file physics_eulerisotherm.f90.

◆ printconfiguration_eulerisotherm()

subroutine physics_eulerisotherm_mod::printconfiguration_eulerisotherm ( class(physics_eulerisotherm), intent(inout)  this)
private

Definition at line 245 of file physics_eulerisotherm.f90.

◆ reflectionmasks()

pure subroutine physics_eulerisotherm_mod::reflectionmasks ( class(physics_eulerisotherm), intent(in)  this,
class(mesh_base), intent(in)  Mesh,
logical, dimension(this%vnum), intent(out)  reflX,
logical, dimension(this%vnum), intent(out)  reflY,
logical, dimension(this%vnum), intent(out)  reflZ 
)
private

return masks for reflecting boundaries

At axis boundaries we change the sign of normal velocities at each boundary.

Definition at line 1460 of file physics_eulerisotherm.f90.

◆ setboundarydata1d()

elemental subroutine physics_eulerisotherm_mod::setboundarydata1d ( integer, intent(in)  delta,
real, intent(in)  cs,
real, intent(in)  rho1,
real, intent(in)  u1,
real, intent(in)  xvar1,
real, intent(in)  xvar2,
real, intent(out)  rho2,
real, intent(out)  u2 
)
private

extrapolate boundary values using primitve and characteristic variables

Definition at line 2382 of file physics_eulerisotherm.f90.

◆ setboundarydata2d()

elemental subroutine physics_eulerisotherm_mod::setboundarydata2d ( integer, intent(in)  delta,
real, intent(in)  cs,
real, intent(in)  rho1,
real, intent(in)  u1,
real, intent(in)  v1,
real, intent(in)  xvar1,
real, intent(in)  xvar2,
real, intent(in)  xvar3,
real, intent(out)  rho2,
real, intent(out)  u2,
real, intent(out)  v2 
)
private

Definition at line 2394 of file physics_eulerisotherm.f90.

◆ setboundarydata3d()

elemental subroutine physics_eulerisotherm_mod::setboundarydata3d ( integer, intent(in)  delta,
real, intent(in)  cs,
real, intent(in)  rho1,
real, intent(in)  u1,
real, intent(in)  v1,
real, intent(in)  w1,
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)  w2 
)
private

Definition at line 2406 of file physics_eulerisotherm.f90.

◆ setcharvars1d()

elemental subroutine physics_eulerisotherm_mod::setcharvars1d ( real, intent(in)  cs,
real, intent(in)  rho1,
real, intent(in)  rho2,
real, intent(in)  u1,
real, intent(in)  u2,
real, intent(out)  xvar1,
real, intent(out)  xvar2 
)
private

compute characteristic variables using adjacent primitve states

Definition at line 2341 of file physics_eulerisotherm.f90.

◆ setcharvars2d()

elemental subroutine physics_eulerisotherm_mod::setcharvars2d ( real, intent(in)  cs,
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(out)  xvar1,
real, intent(out)  xvar2,
real, intent(out)  xvar3 
)
private

compute characteristic variables using adjacent primitve states

Definition at line 2357 of file physics_eulerisotherm.f90.

◆ setcharvars3d()

elemental subroutine physics_eulerisotherm_mod::setcharvars3d ( real, intent(in)  cs,
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(out)  xvar1,
real, intent(out)  xvar2,
real, intent(out)  xvar3,
real, intent(out)  xvar4 
)
private

compute characteristic variables using adjacent primitve states

Definition at line 2369 of file physics_eulerisotherm.f90.

◆ seteigenvalues1d()

elemental subroutine physics_eulerisotherm_mod::seteigenvalues1d ( real, intent(in)  cs,
real, intent(in)  v,
real, intent(out)  l1,
real, intent(out)  l2 
)
private

compute all eigenvalues

Definition at line 2199 of file physics_eulerisotherm.f90.

◆ seteigenvalues2d()

elemental subroutine physics_eulerisotherm_mod::seteigenvalues2d ( real, intent(in)  cs,
real, intent(in)  v,
real, intent(out)  l1,
real, intent(out)  l2,
real, intent(out)  l3 
)
private

Definition at line 2209 of file physics_eulerisotherm.f90.

◆ seteigenvalues3d()

elemental subroutine physics_eulerisotherm_mod::seteigenvalues3d ( real, intent(in)  cs,
real, intent(in)  v,
real, intent(out)  l1,
real, intent(out)  l2,
real, intent(out)  l3,
real, intent(out)  l4 
)
private

Definition at line 2220 of file physics_eulerisotherm.f90.

◆ setflux1d()

elemental subroutine physics_eulerisotherm_mod::setflux1d ( real, intent(in)  cs,
real, intent(in)  rho,
real, intent(in)  u,
real, intent(in)  mu,
real, intent(out)  f1,
real, intent(out)  f2 
)
private

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

Definition at line 2233 of file physics_eulerisotherm.f90.

◆ setflux2d()

elemental subroutine physics_eulerisotherm_mod::setflux2d ( real, intent(in)  cs,
real, intent(in)  rho,
real, intent(in)  u,
real, intent(in)  mu,
real, intent(in)  mv,
real, intent(out)  f1,
real, intent(out)  f2,
real, intent(out)  f3 
)
private

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

Definition at line 2244 of file physics_eulerisotherm.f90.

◆ setflux3d()

elemental subroutine physics_eulerisotherm_mod::setflux3d ( real, intent(in)  cs,
real, intent(in)  rho,
real, intent(in)  u,
real, intent(in)  mu,
real, intent(in)  mv,
real, intent(in)  mw,
real, intent(out)  f1,
real, intent(out)  f2,
real, intent(out)  f3,
real, intent(out)  f4 
)
private

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

Definition at line 2255 of file physics_eulerisotherm.f90.

◆ setsoundspeeds_center()

pure subroutine physics_eulerisotherm_mod::setsoundspeeds_center ( class(physics_eulerisotherm), intent(inout)  this,
class(mesh_base), intent(in)  Mesh,
real, dimension(mesh%igmin:mesh%igmax,mesh%jgmin:mesh%jgmax,mesh%kgmin:mesh%kgmax), intent(in)  bccsound 
)
private

Sets soundspeeds at cell-centers.

Definition at line 292 of file physics_eulerisotherm.f90.

◆ setsoundspeeds_faces()

pure subroutine physics_eulerisotherm_mod::setsoundspeeds_faces ( class(physics_eulerisotherm), intent(inout)  this,
class(mesh_base), intent(in)  Mesh,
real, dimension(mesh%igmin:mesh%igmax,mesh%jgmin:mesh%jgmax,mesh%kgmin:mesh%kgmax,mesh%nfaces), intent(in)  fcsound 
)
private

Sets soundspeeds at cell-faces.

Definition at line 304 of file physics_eulerisotherm.f90.

◆ setwavespeeds()

elemental subroutine physics_eulerisotherm_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

elemental non-class subroutines / functions

Definition at line 2188 of file physics_eulerisotherm.f90.

◆ subtractbackgroundvelocityx()

pure subroutine physics_eulerisotherm_mod::subtractbackgroundvelocityx ( class(physics_eulerisotherm), 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

Definition at line 1320 of file physics_eulerisotherm.f90.

◆ subtractbackgroundvelocityy()

pure subroutine physics_eulerisotherm_mod::subtractbackgroundvelocityy ( class(physics_eulerisotherm), 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

Definition at line 1352 of file physics_eulerisotherm.f90.

◆ subtractbackgroundvelocityz()

pure subroutine physics_eulerisotherm_mod::subtractbackgroundvelocityz ( class(physics_eulerisotherm), 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

Definition at line 1384 of file physics_eulerisotherm.f90.

◆ viscositysources()

pure subroutine physics_eulerisotherm_mod::viscositysources ( class(physics_eulerisotherm), 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

compute viscous source terms

Definition at line 979 of file physics_eulerisotherm.f90.

Variable Documentation

◆ num_var

integer, parameter physics_eulerisotherm_mod::num_var = 3
private

Definition at line 54 of file physics_eulerisotherm.f90.

◆ problem_name

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

Definition at line 55 of file physics_eulerisotherm.f90.