selfgravity_logspirals

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 4 COMMUNICATED AUXILIARIES 4

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/c [real,private]
  • selfgravity/calc_cylgrav_stresses [private]
  • selfgravity/gm1 [real,private]
  • selfgravity/gravitational_const [real,private/target/optional/default=0.0]
  • selfgravity/idiag_gpgzm [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/kappa [real,private/optional/default=0.0]
  • selfgravity/kappa_mn (nx) [real,private]
  • 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/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())

Called from:

register_modules()

Call to:

svn_id(), fatal_error(), get_stratz(), particles_calc_selfpotential(), inverse_laplacian(), get_acceleration(), calc_diagnostics_selfgrav(), 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 (mx,my,mz,mfarray) [real]

Use :

equationofstate (get_stratz())

Called from:

register_modules(), initialize_modules()

Call to:

fatal_error(), get_stratz(), particles_calc_selfpotential(), inverse_laplacian(), get_acceleration(), calc_diagnostics_selfgrav(), 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

Called from:

register_modules(), initialize_modules(), finalize_modules(), choose_pencils()

Call to:

particles_calc_selfpotential(), inverse_laplacian(), get_acceleration(), calc_diagnostics_selfgrav(), 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]

Called from:

register_modules(), initialize_modules(), finalize_modules(), choose_pencils()

Call to:

particles_calc_selfpotential(), inverse_laplacian(), get_acceleration(), calc_diagnostics_selfgrav(), 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:
Use :

sub (grad())

Called from:

pde(), write_diagnostics(), calc_all_module_diagnostic_auxiliaries(), perform_diagnostics(), finalize_diagnostics()

Call to:

particles_calc_selfpotential(), inverse_laplacian(), get_acceleration(), calc_diagnostics_selfgrav(), 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

Parameters:

f (mx,my,mz,mfarray) [real,inout]

Use :

particles_main (particles_calc_selfpotential()), poisson

Called from:

register_density(), initialize_density(), init_lnrho(), density_before_boundary(), pencil_criteria_density(), pencil_interdep_density(), density_after_boundary(), dlnrho_dt(), calc_pencils_density(), pde(), write_diagnostics(), calc_all_module_diagnostic_auxiliaries(), perform_diagnostics(), finalize_diagnostics(), start

Call to:

particles_calc_selfpotential(), inverse_laplacian(), get_acceleration(), calc_diagnostics_selfgrav(), 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 (mx,my,mz,mvar) [real,inout]

  • p [pencil_case,in]

Called from:

pde(), write_diagnostics(), calc_all_module_diagnostic_auxiliaries(), perform_diagnostics(), finalize_diagnostics()

Call to:

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

subroutine  selfgravity/calc_diagnostics_selfgrav(p)
Parameters:

p [pencil_case]

Use :

diagnostics

Called from:

pde(), write_diagnostics(), calc_all_module_diagnostic_auxiliaries(), register_selfgravity(), initialize_selfgravity(), pencil_criteria_selfgravity(), pencil_interdep_selfgravity(), calc_pencils_selfgravity(), calc_selfpotential(), addselfgrav()

Call to:

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]

Called from:

get_datadir(), get_snapdir(), read_all_init_pars(), read_all_run_pars(), get_downpars()

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]

Called from:

get_datadir(), get_snapdir(), read_all_init_pars(), read_all_run_pars(), get_downpars()

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

Called from:

register_modules(), initialize_modules(), finalize_modules(), choose_pencils(), rprint_list()