barneshut

Module

** 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 :: lpoisson=.true.

MVAR CONTRIBUTION 0 MAUX CONTRIBUTION 0


Quick access

Variables:

apply_boundcond, b, bessel_grid, bsmooth, calc_potential, check_setup, compute_acceleration, construct_large_grid, copy_density_large_grid, copy_potential_small_grid, coslt, decide_fourier_routine, dkr, dphi, dr, dr1, dth, dth1, du, dxc1, dxlt, dyc1, dz1, fft_fouriergrid, fourier_cosine_terms, fourier_to_physical_proc, fourier_to_physical_procs, gauss_seidel_iterate, generate_coordinates, generate_fourier_density, generate_kernals, generate_massfields, get_communication_matrix, gnewton, gphi, gr, innerradius, inverse_laplacian_expandgrid, inverse_laplacian_fft, inverse_laplacian_isoz, inverse_laplacian_logradial_fft, ipoisson_method, iproc_fourier, ipx_fourier, ipy_fourier, iregion, irl, iroot, iru, iteration_threshold, ixlower_fourier, ixupper_fourier, iylower_fourier, iyupper_fourier, jrl, jru, kkx_fft, kky_fft, kphi, kphi_fft_imag, kphi_fft_real, kr_fft, kr_fft_imag, kr_fft_real, krl, kru, legendre_qmod, lexpand_grid, lisoz, lklimit_shear, lkmax, lkmin, lmakecartoon, lnorepeatsumming, lprecalcdists, lrazor_thin, lreadoctree, lsemispectral, lshowtime, lsolve_bessel, lsolve_cyl2cart, lsolve_relax_sor, lsquareregions, ltreestatus, luseprevioussum, lwriteoctree, m_fft, mmax, ngroup, niter_poisson, nkhgrid, nkr, nkt, nktgrid, nlt, nnx, nny, nprecalc, nsingle, nslice, nth, nthgrid, octree_maxdist, octree_smoothdist, octree_theta, phi2d, phi2d_global, phi_previous_step, physical_to_fourier_proc, physical_to_fourier_procs, r2_ext, r2_int, rad1, refine, regdist1_group, regdist1_single, regsmooth_group, regsmooth_single, remap_to_pencil_fouriergrid, residual, restrict, rhs_previous_step, rjac, rn, sinlt, smooth_full_weight, sphi, sphi_fft_imag, sphi_fft_real, sqrtrad_1, sr, sr_fft_imag, sr_fft_real, stop_fatal, themap_group, themap_single, theta0, theta1, tht, transp_pencil_fouriergrid, trilinear_interpolate, u2d, u2d_global, unmap_from_pencil_fouriergrid, v_cycle, vols, xc0, xlt, xmesh, xrecv, yc0, ymesh, yrecv, zed, zmesh, zrecv

Routines:

calculate_cross_bessel_functions(), calculate_cross_legendre_functions(), do_barneshut(), five_point_solver(), get_acceleration(), get_border_values(), get_dist(), get_serial_array(), initialize_poisson(), integrate_border(), inverse_laplacian(), inverse_laplacian_bessel(), inverse_laplacian_cyl2cart(), inverse_laplacian_fft_z(), inverse_laplacian_semispectral(), inverse_laplacian_sor(), inverse_laplacian_z_2nd_neumann(), mkmap(), read_octree(), read_poisson_init_pars(), read_poisson_run_pars(), roundtwo(), sincoslf(), write_octree(), write_poisson_init_pars(), write_poisson_run_pars()

Needed modules

Variables

  • poisson/coslt (4) [real]
  • poisson/dxlt [real]
  • poisson/iregion [integer]
  • poisson/irl [integer]
  • poisson/iru [integer]
  • poisson/jrl [integer]
  • poisson/jru [integer]
  • poisson/krl [integer]
  • poisson/kru [integer]
  • poisson/lkmax [real]
  • poisson/lkmin [real]
  • poisson/lmakecartoon [logical,optional/default=.false.]
  • poisson/lnorepeatsumming [logical,optional/default=.true.]
  • poisson/lprecalcdists [logical,optional/default=.false.]
  • poisson/lreadoctree [logical,optional/default=.false.]
  • poisson/lshowtime [logical,optional/default=.false.]
  • poisson/lsquareregions [logical,optional/default=.false.]
  • poisson/ltreestatus [logical,optional/default=.false.]
  • poisson/luseprevioussum (*) [logical,allocatable]
  • poisson/lwriteoctree [logical,optional/default=.false.]
  • poisson/ngroup [integer]
  • poisson/nlt [integer,parameter=10000000.0]
  • poisson/nprecalc [integer,optional/default=0]
  • poisson/nsingle [integer]
  • poisson/octree_maxdist [real,optional/default=1e+308]
  • poisson/octree_smoothdist [real,optional/default=0.15]
  • poisson/octree_theta [real,optional/default=0.5]
  • poisson/regdist1_group (*) [real,allocatable]
  • poisson/regdist1_single (*) [real,allocatable]
  • poisson/regsmooth_group (*) [real,allocatable]
  • poisson/regsmooth_single (*) [real,allocatable]
  • poisson/sinlt (4) [real]
  • poisson/sx (ncpus) [integer]
  • poisson/sy (ncpus) [integer]
  • poisson/sz (ncpus) [integer]
  • poisson/themap_group (*,*) [integer,allocatable]
  • poisson/themap_single (*,*) [integer,allocatable]
  • poisson/vols (nx,ny,nz) [real]
  • poisson/xc (nx) [real]
  • poisson/xlt (4) [real]
  • poisson/xmesh (nx,ny,nz) [real]
  • poisson/xrecv (nx,ncpus) [real]
  • poisson/yc (ny) [real]
  • poisson/ymesh (nx,ny,nz) [real]
  • poisson/yrecv (ny,ncpus) [real]
  • poisson/zc (nz) [real]
  • poisson/zmesh (nx,ny,nz) [real]
  • poisson/zrecv (nz,ncpus) [real]

Subroutines and functions

subroutine  poisson/inverse_laplacian(phi)
Parameters:

phi (nx,ny,nz) [real,inout]

Use :

general (keep_compiler_quiet())

Call to:

fatal_error(), do_barneshut(), roundtwo(), read_octree(), mkmap(), write_octree(), get_dist(), sincoslf()

subroutine  poisson/initialize_poisson()
Use :

mpicomm

Call to:

roundtwo(), read_octree(), mkmap(), write_octree(), get_dist(), sincoslf()

subroutine  poisson/do_barneshut(phi)

will be transformed into potential.

Parameters:

phi (nx,ny,nz) [real] :: ‘phi’ now in mass units

Use :

mpicomm

Call to:

get_dist(), mkmap(), sincoslf(), roundtwo()

subroutine  poisson/mkmap(ipos, dimi, xi, yi, zi, xsind, ysind, zsind, ppi, laddreg)
Parameters:
  • ipos (3) [integer]

  • dimi (3) [integer,in,required]

  • xi (dimi(1) [real]

  • yi (dimi(2) [real]

  • zi (dimi(3) [real]

  • xsind (dimi(1) [integer]

  • ysind (dimi(2) [integer]

  • zsind (dimi(3) [integer]

  • ppi [integer]

  • laddreg [logical]

Called from:

do_barneshut()

function  poisson/get_dist(p1, p2)
Parameters:
  • p1 (3) [integer]

  • p2 (3) [real]

Return:

rdist [real]

Called from:

do_barneshut()

Call to:

sincoslf(), roundtwo()

function  poisson/sincoslf(ang)
Parameters:

ang [real] :: , a0, a1, a2

Return:

sincoslf (2) [real] :: returns (/sin,cos/)

Called from:

do_barneshut(), get_dist()

Call to:

roundtwo()

function  poisson/roundtwo(rin)
Parameters:

rin [real]

Return:

iout [integer]

Called from:

do_barneshut(), get_dist(), sincoslf()

subroutine  poisson/write_octree()
subroutine  poisson/read_octree()
subroutine  poisson/read_poisson_init_pars(iomsg)
Parameters:

iomsg [character,out]

Use :

file_io (parallel_unit())

subroutine  poisson/write_poisson_init_pars(unit)
Parameters:

unit [integer,in]

subroutine  poisson/read_poisson_run_pars(iomsg)
Parameters:

iomsg [character,out]

Use :

file_io (parallel_unit())

subroutine  poisson/write_poisson_run_pars(unit)
Parameters:

unit [integer,in]

subroutine  poisson/inverse_laplacian_semispectral(f, phi)

Solve the Poisson equation by Fourier transforming on a periodic grid.

15-may-2006/anders+jeff: dummy

Parameters:
Use :

general (keep_compiler_quiet())

subroutine  poisson/get_acceleration(acceleration)
Parameters:

acceleration (nx,ny,nz,3) [real,out]

Use :

general (keep_compiler_quiet())