poisson_multigrid

Module

Description

$Id$

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/apply_boundcond [private]
  • poisson/dummy [real,private/optional/default=0.0]
  • poisson/gauss_seidel_iterate [private]
  • poisson/niter_poisson [integer,private/optional/default=30]
  • poisson/refine [private]
  • poisson/residual [private]
  • poisson/restrict [private]
  • poisson/smooth_full_weight [private]
  • poisson/trilinear_interpolate [private]
  • poisson/v_cycle [private]

Subroutines and functions

subroutine  poisson/initialize_poisson()

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

18-oct-07/anders: adapted

Called from:

register_modules(), initialize_modules()

Call to:

svn_id(), fatal_error()

subroutine  poisson/inverse_laplacian(phi)
Solve the Poisson (or inhomogeneous Helmholtz) equation

(Laplace - h) f = rhs

using a multigrid approach. On entry, phi is rhs, on exit phi contains the solution f.

18-may-2007/wolf: adapted from IDL prototype

Parameters:

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

Called from:

register_density(), initialize_density(), init_lnrho(), density_before_boundary(), pencil_criteria_density(), pencil_interdep_density(), density_after_boundary(), dlnrho_dt(), impose_density_floor(), read_density_init_pars(), write_density_init_pars(), read_density_run_pars(), write_density_run_pars(), rprint_density(), get_slices_density(), get_slices_pressure(), get_init_average_density(), calc_pencils_density(), initialize_power_spectrum(), read_power_spectrum_run_pars(), write_power_spectrum_run_pars(), power(), crossspec(), power_2d(), power_xy(), powerhel(), powerlor(), poweromu(), poweremf(), powertra(), powergws(), powerscl(), register_selfgravity(), initialize_selfgravity(), pencil_criteria_selfgravity(), pencil_interdep_selfgravity(), calc_pencils_selfgravity(), calc_selfpotential(), anelastic_after_mn()

Call to:

svn_id(), fatal_error()

subroutine  poisson/inverse_laplacian_semispectral(phi[, h])

Solve the Poisson equation by Fourier transforming in the xy-plane and solving the discrete matrix equation in the z-direction.

Parameters:
  • phi (nx,ny,nz) [real]

  • h [real]

Call to:

fatal_error()

subroutine  poisson/inverse_laplacian_fft_z(phi)

15-may-2006/anders+jeff: dummy

Parameters:

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

subroutine  poisson/inverse_laplacian_z_2nd_neumann(f)

15-may-2006/anders+jeff: dummy

Parameters:

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

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]

Called from:

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

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]

Called from:

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

subroutine  poisson/get_acceleration(acceleration)
Parameters:

acceleration (nx,ny,nz,3) [real,out] :: should I (CAN I?) make this allocatable?

Called from:

register_selfgravity(), initialize_selfgravity(), pencil_criteria_selfgravity(), pencil_interdep_selfgravity(), calc_pencils_selfgravity(), calc_selfpotential()