gravity_pointmass_mod Module Reference

source terms module for gravitational acceleration due to a point mass at the center of the coordinate system More...

Data Types

type  gravity_pointmass
 

Functions/Subroutines

subroutine initgravity_pointmass (this, Mesh, Physics, config, IO)
 constructor for point mass module More...
 
subroutine calcpotential (this, Mesh, Physics, mass, dist, dist_faces, pot)
 
subroutine infogravity (this)
 
subroutine updategravity_single (this, Mesh, Physics, Fluxes, pvar, time, dt)
 updates the gravitational acceleration of the pointmass module More...
 
pure subroutine calcdiskheight_single (this, Mesh, Physics, pvar, bccsound, h_ext, height)
 computes pressure scale height of a geometrically thin Keplerian disk More...
 
subroutine finalize (this)
 
elemental real function, public getdiskheight (cs, omega)
 return pressure scale height of a geometrically thin Keplerian disk More...
 

Variables

character(len=16), dimension(2), parameter potential_name = (/ "Newton ", "Paczynski-Wiita " /)
 
integer, parameter, public newton = 1
 
integer, parameter, public wiita = 2
 

Detailed Description

source terms module for gravitational acceleration due to a point mass at the center of the coordinate system

Author
Tobias Illenseer
Jannes Klee

Function/Subroutine Documentation

◆ calcdiskheight_single()

pure subroutine gravity_pointmass_mod::calcdiskheight_single ( class(gravity_pointmass), intent(inout)  this,
class(mesh_base), intent(in)  Mesh,
class(physics_base), intent(in)  Physics,
class(marray_compound), intent(inout)  pvar,
type(marray_base), intent(inout)  bccsound,
type(marray_base), intent(inout)  h_ext,
type(marray_base), intent(inout)  height 
)

computes pressure scale height of a geometrically thin Keplerian disk

(see getdiskheight )

Definition at line 417 of file gravity_pointmass.f90.

◆ calcpotential()

subroutine gravity_pointmass_mod::calcpotential ( class(gravity_pointmass this,
class(mesh_base), intent(in)  Mesh,
class(physics_base), intent(in)  Physics,
real  mass,
real, dimension(mesh%igmin:mesh%igmax,mesh%jgmin:mesh%jgmax,mesh%kgmin:mesh%kgmax), intent(in)  dist,
real, dimension(mesh%igmin:mesh%igmax,mesh%jgmin:mesh%jgmax,mesh%kgmin:mesh%kgmax,3), intent(in)  dist_faces,
real, dimension(mesh%igmin:mesh%igmax,mesh%jgmin:mesh%jgmax,mesh%kgmin:mesh%kgmax,4), intent(out)  pot 
)

Definition at line 297 of file gravity_pointmass.f90.

◆ finalize()

subroutine gravity_pointmass_mod::finalize ( class(gravity_pointmass), intent(inout)  this)
private

Definition at line 430 of file gravity_pointmass.f90.

◆ getdiskheight()

elemental real function, public gravity_pointmass_mod::getdiskheight ( real, intent(in)  cs,
real, intent(in)  omega 
)

return pressure scale height of a geometrically thin Keplerian disk

The pressure scale height for an geometrically thin Keplerian disk is given by

\[ h = c_s / \Omega \]

where \( c_s \) is the local speed of sound and \( \Omega \) is the local Keplerian angular velocity (see [pringle1981] ).

Definition at line 465 of file gravity_pointmass.f90.

◆ infogravity()

subroutine gravity_pointmass_mod::infogravity ( class(gravity_pointmass), intent(in)  this)
private

Definition at line 319 of file gravity_pointmass.f90.

◆ initgravity_pointmass()

subroutine gravity_pointmass_mod::initgravity_pointmass ( class(gravity_pointmass), intent(inout)  this,
class(mesh_base), intent(in)  Mesh,
class(physics_base), intent(in)  Physics,
type(dict_typ), pointer  config,
type(dict_typ), pointer  IO 
)

constructor for point mass module

Initializes several data arrays including the local Keplerian angular velocity

\[ \Omega = \sqrt{\frac{GM}{r(r-a)^2}} \]

with \( a=0 \) for Newtonian gravity and \( a=R_s \) set to the Schwarzschild radius for pseudo-Newtonian Paczynski-Wiita potential. The gravitational acceleration is given by

\[ \vec{g} = -\frac{d\Phi}{dr} \hat{e}_r = -\frac{GM}{(r-a)^2} \vec{r}/r = -\Omega^2 \vec{r} \]

Definition at line 133 of file gravity_pointmass.f90.

◆ updategravity_single()

subroutine gravity_pointmass_mod::updategravity_single ( class(gravity_pointmass), intent(inout)  this,
class(mesh_base), intent(in)  Mesh,
class(physics_base), intent(in)  Physics,
class(fluxes_base), intent(in)  Fluxes,
class(marray_compound), intent(inout)  pvar,
real, intent(in)  time,
real, intent(in)  dt 
)

updates the gravitational acceleration of the pointmass module

The acceleration may not change at all if accretion and/or the switchon procedure is disabled. In that case this subroutine does nothing, because appropriate values have already been set in initgravity_pointmass .

Definition at line 352 of file gravity_pointmass.f90.

Variable Documentation

◆ newton

integer, parameter, public gravity_pointmass_mod::newton = 1

Definition at line 74 of file gravity_pointmass.f90.

◆ potential_name

character(len=16), dimension(2), parameter gravity_pointmass_mod::potential_name = (/ "Newton ", "Paczynski-Wiita " /)
private

Definition at line 71 of file gravity_pointmass.f90.

◆ wiita

integer, parameter, public gravity_pointmass_mod::wiita = 2

Definition at line 75 of file gravity_pointmass.f90.