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
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()
|
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()
|
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
|
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.