noparticles_mpicomm
Module
Description
$Id$
This module deals with communication of particles between processors.
Quick access
- Variables:
communicate_fpbuf,cumulate_counts,dfb,dist_particles_evenly_procs,dvol1xb,dvol1xbrick,dvol1yb,dvol1ybrick,dvol1zb,dvol1zbrick,dx1b,dx1brick,dy1b,dy1brick,dz1b,dz1brick,fb,get_brick_index,ibrick_parent_block,inearblock,input_blocks_dist,input_blocks_mpi,iproc_foster_brick,iproc_foster_brick_part,iproc_foster_list,iproc_parent_block,iproc_parent_list,it1_loadbalance,k1_iblock,k2_iblock,l1b,l2b,ladopt_own_light_bricks,lbrick_partition,lfill_blocks_density,lfill_blocks_gpotself,lfill_blocks_velocity,lfill_bricks_velocity,lreblock_particles_run,m1b,m2b,migrate_particles_block_to_proc,migrate_particles_proc_to_block,migrate_particles_proc_to_proc,mxb,myb,mzb,n1b,n2b,nblock_loc,nbrick_foster,nbricks,nbx,nby,nbz,nghostb,npar_iblock,npart_brick_max,nproc_foster,nproc_parent,nxb,nyb,nzb,output_blocks_dist,output_blocks_mpi,report_missing_particles,xb,xbrick,xref_par,yb,ybrick,yref_par,zb,zbrick,zref_par- Routines:
communicate_fpbuf(),get_brick_index(),initialize_particles_mpicomm(),input_blocks(),load_balance_particles(),migrate_particles(),output_blocks(),sort_blocks()
Needed modules
cdata: $Id$general(keep_compiler_quiet()): $Id$messages: $Id$particles_cdata: $Id$
Variables
- particles_mpicomm/dfb (1,1,1,1,1) [real,public]
- particles_mpicomm/dist_particles_evenly_procs [private]
- particles_mpicomm/dvol1xb (1,1) [real,public/optional/default=0]
- particles_mpicomm/dvol1xbrick (1,1) [real,public/optional/default=0]
- particles_mpicomm/dvol1yb (1,1) [real,public/optional/default=0]
- particles_mpicomm/dvol1ybrick (1,1) [real,public/optional/default=0]
- particles_mpicomm/dvol1zb (1,1) [real,public/optional/default=0]
- particles_mpicomm/dvol1zbrick (1,1) [real,public/optional/default=0]
- particles_mpicomm/dx1b (1,1) [real,public/optional/default=0]
- particles_mpicomm/dx1brick (1,1) [real,public/optional/default=0]
- particles_mpicomm/dy1b (1,1) [real,public/optional/default=0]
- particles_mpicomm/dy1brick (1,1) [real,public/optional/default=0]
- particles_mpicomm/dz1b (1,1) [real,public/optional/default=0]
- particles_mpicomm/dz1brick (1,1) [real,public/optional/default=0]
- particles_mpicomm/fb (1,1,1,1,1) [real,public]
- particles_mpicomm/ibrick_parent_block (1) [integer,public]
- particles_mpicomm/inearblock (1) [integer,public]
- particles_mpicomm/iproc_foster_brick (1) [integer,public]
- particles_mpicomm/iproc_foster_list (1) [integer,public]
- particles_mpicomm/iproc_parent_block (1) [integer,public]
- particles_mpicomm/iproc_parent_list (1) [integer,public]
- particles_mpicomm/it1_loadbalance [integer,public/optional/default=1]
- particles_mpicomm/k1_iblock (1) [integer,public/optional/default=0]
- particles_mpicomm/k2_iblock (1) [integer,public/optional/default=0]
- particles_mpicomm/l1b [integer,parameter=1]
- particles_mpicomm/l2b [integer,parameter=1]
- particles_mpicomm/ladopt_own_light_bricks [logical,public/optional/default=.false.]
- particles_mpicomm/lbrick_partition [logical,public/optional/default=.false.]
- particles_mpicomm/lfill_blocks_density [logical,public/optional/default=.false.]
- particles_mpicomm/lfill_blocks_gpotself [logical,public/optional/default=.false.]
- particles_mpicomm/lfill_blocks_velocity [logical,public/optional/default=.false.]
- particles_mpicomm/lfill_bricks_velocity [logical,public/optional/default=.false.]
- particles_mpicomm/lreblock_particles_run [logical,public/optional/default=.false.]
- particles_mpicomm/m1b [integer,parameter=1]
- particles_mpicomm/m2b [integer,parameter=1]
- particles_mpicomm/mxb [integer,parameter=1]
- particles_mpicomm/myb [integer,parameter=1]
- particles_mpicomm/mzb [integer,parameter=1]
- particles_mpicomm/n1b [integer,parameter=1]
- particles_mpicomm/n2b [integer,parameter=1]
- particles_mpicomm/nblock_loc [integer,public/optional/default=0]
- particles_mpicomm/nbrick_foster [integer,public/optional/default=0]
- particles_mpicomm/nbricks [integer,parameter=0]
- particles_mpicomm/nbx [integer,parameter=1]
- particles_mpicomm/nby [integer,parameter=1]
- particles_mpicomm/nbz [integer,parameter=1]
- particles_mpicomm/nghostb [integer,parameter=0]
- particles_mpicomm/npar_iblock (1) [integer,public/optional/default=0]
- particles_mpicomm/nproc_foster [integer,public/optional/default=0]
- particles_mpicomm/nproc_parent [integer,public/optional/default=0]
- particles_mpicomm/nxb [integer,parameter=1]
- particles_mpicomm/nyb [integer,parameter=1]
- particles_mpicomm/nzb [integer,parameter=1]
- particles_mpicomm/particles_neighbour_proc [private]
- particles_mpicomm/xb (1,1) [real,public/optional/default=0]
- particles_mpicomm/xbrick (1,1) [real,public/optional/default=0]
- particles_mpicomm/yb (1,1) [real,public/optional/default=0]
- particles_mpicomm/ybrick (1,1) [real,public/optional/default=0]
- particles_mpicomm/zb (1,1) [real,public/optional/default=0]
- particles_mpicomm/zbrick (1,1) [real,public/optional/default=0]
Subroutines and functions
- subroutine particles_mpicomm/initialize_particles_mpicomm(f)
Perform any post-parameter-read initialization i.e. calculate derived parameters.
- Parameters:
- Call to:
- subroutine particles_mpicomm/migrate_particles(fp, ipar[, dfp[, linsert]])
11-oct-09/anders: dummy
- Parameters:
fp (mpar_loc,mparray) [real]
ipar (mpar_loc) [integer]
dfp (mpar_loc,mpvar) [real]
linsert [logical]
- subroutine particles_mpicomm/load_balance_particles(f, fp, ipar)
This subroutine counts particles in the bricks at the local processor and distributes the bricks in such a away that there is approximately equal number of particles per processor.
16-nov-09/anders: dummy
- subroutine particles_mpicomm/output_blocks(filename)
Write block domain decomposition to file.
16-nov-09/anders: dummy
- Parameters:
filename [character]
- subroutine particles_mpicomm/input_blocks(filename)
Read block domain decomposition from file.
16-nov-09/anders: dummy
- Parameters:
filename [character]
- subroutine particles_mpicomm/sort_blocks()
Sort the blocks by parent processor and by parent brick index.
18-nov-09/anders: dummy
- subroutine particles_mpicomm/get_brick_index(xxp, iproc, ibrick)
10-jan-12/ccyang: dummy
- Parameters:
xxp (3) [real,in]
iproc [integer,out]
ibrick [integer,out]
- subroutine particles_mpicomm/communicate_fpbuf(to_neigh, from_neigh, her_npbuf, my_npbuf)
dummy
- Parameters:
to_neigh [integer]
from_neigh [integer]
her_npbuf [integer]
my_npbuf [integer]