sources_cooling_mod Module Reference

source terms module for simple optically thin cooling More...

Data Types

type  sources_cooling
 

Functions/Subroutines

subroutine initsources (this, Mesh, Physics, Fluxes, config, IO)
 
subroutine setoutput (this, Mesh, config, IO)
 
subroutine externalsources (this, Mesh, Physics, Fluxes, Sources, time, dt, pvar, cvar, sterm)
 
subroutine calctimestep (this, Mesh, Physics, Fluxes, pvar, cvar, time, dt, dtcause)
 caculates the limiting time step due to cooling More...
 
subroutine updatecooling (this, Mesh, Physics, time, pvar)
 Updates the cooling function at each time step. More...
 
elemental real function lambda (T)
 simple optically thin cooling function ATTENTION: input data should be in SI-units, output is provided in W/m^3 More...
 
subroutine finalize (this)
 

Variables

character(len=32), parameter source_name = "optically thin cooling"
 

Detailed Description

source terms module for simple optically thin cooling

Author
Tobias Illenseer

Function/Subroutine Documentation

◆ calctimestep()

subroutine sources_cooling_mod::calctimestep ( class(sources_cooling), intent(inout)  this,
class(mesh_base), intent(in)  Mesh,
class(physics_base), intent(inout)  Physics,
class(fluxes_base), intent(in)  Fluxes,
class(marray_compound), intent(inout)  pvar,
class(marray_compound), intent(inout)  cvar,
real, intent(in)  time,
real, intent(inout)  dt,
integer, intent(out)  dtcause 
)

caculates the limiting time step due to cooling

The timescale is calculated by \( t \sim Q_{\mathrm{cool}}/P \), where \( Q_{\mathrm{cool}} \) is the heating term and \( P \) the pressure.

Definition at line 179 of file sources_cooling.f90.

◆ externalsources()

subroutine sources_cooling_mod::externalsources ( class(sources_cooling), intent(inout)  this,
class(mesh_base), intent(in)  Mesh,
class(physics_base), intent(inout)  Physics,
class(fluxes_base), intent(in)  Fluxes,
class(sources_base), intent(inout)  Sources,
real, intent(in)  time,
real, intent(in)  dt,
class(marray_compound), intent(inout)  pvar,
class(marray_compound), intent(inout)  cvar,
class(marray_compound), intent(inout)  sterm 
)
private

Definition at line 143 of file sources_cooling.f90.

◆ finalize()

subroutine sources_cooling_mod::finalize ( type(sources_cooling), intent(inout)  this)
private

Definition at line 275 of file sources_cooling.f90.

◆ initsources()

subroutine sources_cooling_mod::initsources ( class(sources_cooling), intent(inout)  this,
class(mesh_base), intent(in)  Mesh,
class(physics_base), intent(in)  Physics,
class(fluxes_base), intent(in)  Fluxes,
type(dict_typ), pointer  config,
type(dict_typ), pointer  IO 
)
private

Definition at line 76 of file sources_cooling.f90.

◆ lambda()

elemental real function sources_cooling_mod::lambda ( real, intent(in)  T)
private

simple optically thin cooling function ATTENTION: input data should be in SI-units, output is provided in W/m^3

Definition at line 256 of file sources_cooling.f90.

Here is the caller graph for this function:

◆ setoutput()

subroutine sources_cooling_mod::setoutput ( class(sources_cooling), intent(inout)  this,
class(mesh_base), intent(in)  Mesh,
type(dict_typ), pointer  config,
type(dict_typ), pointer  IO 
)

Definition at line 126 of file sources_cooling.f90.

◆ updatecooling()

subroutine sources_cooling_mod::updatecooling ( class(sources_cooling), intent(inout)  this,
class(mesh_base), intent(in)  Mesh,
class(physics_euler), intent(in)  Physics,
real, intent(in)  time,
class(statevector_euler), intent(in)  pvar 
)
private

Updates the cooling function at each time step.

Definition at line 213 of file sources_cooling.f90.

Here is the call graph for this function:

Variable Documentation

◆ source_name

character(len=32), parameter sources_cooling_mod::source_name = "optically thin cooling"
private

Definition at line 53 of file sources_cooling.f90.