selfgravity

Module

Description

$Id$

This module takes care of self gravity by solving the Poisson equation

(d^2/dx^2 + d^2/dy^2 + d^2/dz^2)phi = 4*pi*G*rho

for the potential phi.

** AUTOMATIC CPARAM.INC GENERATION ************************ Declare (for generation of cparam.inc) the number of f array variables and auxiliary variables added by this module

CPARAM logical, parameter :: lselfgravity = .true.

MVAR CONTRIBUTION 0 MAUX CONTRIBUTION 1 COMMUNICATED AUXILIARIES 1

PENCILS PROVIDED potself; gpotself(3)


Quick access

Variables:

c, calc_cylgrav_stresses, gm1, gravitational_const, idiag_gpgzm, idiag_gpotself2m, idiag_gpotselfx2m, idiag_gpotselfxm, idiag_gpotselfy2m, idiag_gpotselfym, idiag_gpotselfz2m, idiag_gpotselfzm, idiag_grgpm, idiag_grgzm, idiag_gxgym, idiag_gxgzm, idiag_gygzm, idiag_jeanslength, idiag_ljeans2d, idiag_potself2m, idiag_potselfm, idiag_potselfmx, idiag_potselfmxy, idiag_potselfmy, idiag_potselfmz, idiag_qtoomre, idiag_qtoomremax, idiag_qtoomremin, idiag_rpotselfm, idiag_rugpotselfm, kappa_mn, lbryan_etal14, ljeans_stiffening, lselfgravity_dust, lselfgravity_gas, lselfgravity_neutrals, luse_g_newton, nj_stiff, rhs_poisson_const, stiff_gamma, tselfgrav_gentle, tstart_selfgrav

Routines:

addselfgrav(), calc_diagnostics_selfgrav(), calc_pencils_selfgravity(), calc_selfpotential(), initialize_selfgravity(), pencil_criteria_selfgravity(), pencil_interdep_selfgravity(), read_selfgravity_init_pars(), read_selfgravity_run_pars(), register_selfgravity(), rprint_selfgravity(), write_selfgravity_init_pars(), write_selfgravity_run_pars()

Needed modules

Variables

  • selfgravity/calc_cylgrav_stresses [private]
  • selfgravity/gravitational_const [real,private/target/optional/default=0.0]
  • selfgravity/idiag_gpgzm [integer,private/optional/default=0]
  • selfgravity/idiag_gpotself2m [integer,private/optional/default=0]
  • selfgravity/idiag_gpotselfx2m [integer,private/optional/default=0]
  • selfgravity/idiag_gpotselfxm [integer,private/optional/default=0]
  • selfgravity/idiag_gpotselfy2m [integer,private/optional/default=0]
  • selfgravity/idiag_gpotselfym [integer,private/optional/default=0]
  • selfgravity/idiag_gpotselfz2m [integer,private/optional/default=0]
  • selfgravity/idiag_gpotselfzm [integer,private/optional/default=0]
  • selfgravity/idiag_grgpm [integer,private/optional/default=0]
  • selfgravity/idiag_grgzm [integer,private/optional/default=0]
  • selfgravity/idiag_gxgym [integer,private/optional/default=0]
  • selfgravity/idiag_gxgzm [integer,private/optional/default=0]
  • selfgravity/idiag_gygzm [integer,private/optional/default=0]
  • selfgravity/idiag_jeanslength [integer,private/optional/default=0]
  • selfgravity/idiag_ljeans2d [integer,private/optional/default=0]
  • selfgravity/idiag_potself2m [integer,private/optional/default=0]
  • selfgravity/idiag_potselfm [integer,private/optional/default=0]
  • selfgravity/idiag_potselfmx [integer,private/optional/default=0]
  • selfgravity/idiag_potselfmxy [integer,private/optional/default=0]
  • selfgravity/idiag_potselfmy [integer,private/optional/default=0]
  • selfgravity/idiag_potselfmz [integer,private/optional/default=0]
  • selfgravity/idiag_qtoomre [integer,private/optional/default=0]
  • selfgravity/idiag_qtoomremax [integer,private/optional/default=0]
  • selfgravity/idiag_qtoomremin [integer,private/optional/default=0]
  • selfgravity/idiag_rpotselfm [integer,private/optional/default=0]
  • selfgravity/idiag_rugpotselfm [integer,private/optional/default=0]
  • selfgravity/kappa [real,private/optional/default=0.0]
  • selfgravity/lbryan_etal14 [logical,private/optional/default=.false.]
  • selfgravity/ljeans_stiffening [logical,private/optional/default=.false.]
  • selfgravity/lselfgravity_dust [logical,private/optional/default=.false.]
  • selfgravity/lselfgravity_gas [logical,private/optional/default=.true.]
  • selfgravity/lselfgravity_neutrals [logical,private/optional/default=.false.]
  • selfgravity/luse_g_newton [logical,private/optional/default=.false.]
  • selfgravity/nj_stiff [integer,private/optional/default=8]
  • selfgravity/rho0z (mz) [real,private/optional/default=0.0]
  • selfgravity/rhs_poisson_const [real,private/target/optional/default=1.0]
  • selfgravity/stiff_gamma [real,private/optional/default=1.6666666666666667]
  • selfgravity/tselfgrav_gentle [real,private/target/optional/default=0.0]
  • selfgravity/tstart_selfgrav [real,private/target/optional/default=0.0]

Subroutines and functions

subroutine  selfgravity/register_selfgravity()

Initialise self gravity variables.

15-may-06/anders+jeff: adapted

Use :

farraymanager, sharedvariables (put_shared_variable())

Call to:

svn_id(), fatal_error(), get_stratz(), particles_calc_selfpotential(), inverse_laplacian(), calc_diagnostics_selfgrav(), dot_mn(), dot2_mn(), max_mn_name(), yzsum_mn_name_x(), xzsum_mn_name_y(), xysum_mn_name_z()

subroutine  selfgravity/initialize_selfgravity(f)

Perform any post-parameter-read initialization i.e. calculate derived parameters.

15-may-06/anders+jeff: adapted

Parameters:

f (,,*,*) [real,contiguous]

Use :

equationofstate (get_stratz())

Call to:

fatal_error(), get_stratz(), particles_calc_selfpotential(), inverse_laplacian(), calc_diagnostics_selfgrav(), dot_mn(), dot2_mn(), max_mn_name(), yzsum_mn_name_x(), xzsum_mn_name_y(), xysum_mn_name_z()

subroutine  selfgravity/pencil_criteria_selfgravity()

All pencils that the Selfgravity module depends on are specified here.

15-may-06/anders+jeff: adapted

Call to:

particles_calc_selfpotential(), inverse_laplacian(), calc_diagnostics_selfgrav(), dot_mn(), dot2_mn(), max_mn_name(), yzsum_mn_name_x(), xzsum_mn_name_y(), xysum_mn_name_z()

subroutine  selfgravity/pencil_interdep_selfgravity(lpencil_in)

Interdependency among pencils from the Selfgravity module is specified here.

15-may-06/anders+jeff: adapted

Parameters:

lpencil_in (npencils) [logical]

Call to:

particles_calc_selfpotential(), inverse_laplacian(), calc_diagnostics_selfgrav(), dot_mn(), dot2_mn(), max_mn_name(), yzsum_mn_name_x(), xzsum_mn_name_y(), xysum_mn_name_z()

subroutine  selfgravity/calc_pencils_selfgravity(f, p)

Calculate Selfgravity pencils. Most basic pencils should come first, as others may depend on them.

15-may-06/anders+jeff: coded 03-feb-11/ccyang: add Jeans stiffening

Parameters:
  • f (,,*,*) [real,inout,contiguous]

  • p [pencil_case,inout]

Use :

sub (grad())

Call to:

particles_calc_selfpotential(), inverse_laplacian(), calc_diagnostics_selfgrav(), dot_mn(), dot2_mn(), max_mn_name(), yzsum_mn_name_x(), xzsum_mn_name_y(), xysum_mn_name_z()

subroutine  selfgravity/calc_selfpotential(f)

Calculate the potential of the self gravity.

15-may-06/anders+jeff: coded 27-oct-25/axel: added ascale_type with default (from cdata) being the default

Parameters:

f (,,*,*) [real,inout,contiguous]

Use :

particles_main (particles_calc_selfpotential()), farraymanager, poisson

Call to:

particles_calc_selfpotential(), inverse_laplacian(), calc_diagnostics_selfgrav(), dot_mn(), dot2_mn(), max_mn_name(), yzsum_mn_name_x(), xzsum_mn_name_y(), xysum_mn_name_z()

subroutine  selfgravity/addselfgrav(df, p)

Add self gravity acceleration on gas.

15-may-06/anders+jeff: coded

Parameters:
  • df (,,*,*) [real,inout,contiguous]

  • p [pencil_case,in]

Call to:

calc_diagnostics_selfgrav(), dot_mn(), dot2_mn(), max_mn_name(), yzsum_mn_name_x(), xzsum_mn_name_y(), xysum_mn_name_z()

subroutine  selfgravity/calc_diagnostics_selfgrav(p)

Diagnostic averages.

Parameters:

p [pencil_case]

Use :

diagnostics, sub (dot_mn(), dot2_mn())

Call to:

dot_mn(), dot2_mn(), max_mn_name(), yzsum_mn_name_x(), xzsum_mn_name_y(), xysum_mn_name_z()

subroutine  selfgravity/read_selfgravity_init_pars(iomsg)
Parameters:

iomsg [character,out]

Use :

file_io (parallel_unit())

subroutine  selfgravity/write_selfgravity_init_pars(unit)
Parameters:

unit [integer,in]

subroutine  selfgravity/read_selfgravity_run_pars(iomsg)
Parameters:

iomsg [character,out]

Use :

file_io (parallel_unit())

subroutine  selfgravity/write_selfgravity_run_pars(unit)
Parameters:

unit [integer,in]

subroutine  selfgravity/rprint_selfgravity(lreset[, lwrite])

Reads and registers print parameters relevant for gravity advance.

16-may-06/anders+jeff: adapted

Parameters:
  • lreset [logical]

  • lwrite [logical]

Use :

diagnostics, farraymanager (farray_index_append())