Halos : Différence entre versions
De LMDZPedia
(Page créée avec « Il faut se méfier car avec les découpages en domaines MPI, si on regarde dans un halo à un moment avant qu'il soit correctement rempli, alors on peut y trouver n'impo... ») |
|||
(4 révisions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
+ | == Warning: Quite technical stuff here!!! == | ||
+ | In the dynamics, the MPI assigned domains to a each core can be hard to track of... especially as it also depends on the grid (scalar, U, V) a given variable is | ||
− | + | Some nomenclature: | |
− | + | * jjb_u, jje_u => "latitudinal indexes", for a variable on the (iip1,jjb_u:jje_u) horizontal grid U grid | |
+ | * jjb_v, jje_v => "latitudinal indexes", for a variable on the (iip1,jjb_v:jje_v) horizontal grid V grid | ||
+ | * ijb_u => "ij": linear index (horizontal grid) "b": begin (i.e. index at which the domain starts) "_u": U grid | ||
+ | * ije_u => "ij": linear index (horizontal grid) "e": end (i.e. index at which the domain ends) "_u": U grid | ||
+ | * ijb_v => "ij": linear index (horizontal grid) "b": begin (i.e. index at which the domain starts) "_v": V grid | ||
+ | * ije_v => "ij": linear index (horizontal grid) "e": end (i.e. index at which the domain ends) "_v": V grid | ||
− | + | These boundaries include halos (i.e. neighboring values at the junction with adjacent domains), whereas the ij_begin and ij_end don't | |
+ | (see parallel_lmdz.F90). | ||
− | + | Scalars, which are not technically on the U grid, but on a grid with identical dimensions, are indexed as if they were on the U grid. | |
− | |||
− | |||
− | |||
− | + | The Register_SwapField routines copy the inner boundary values of a domain to propagate them to the other domains and fill their respective halos. | |
− | |||
− | + | 04/11/2021 | |
− | + | ||
+ | [[Category:Parallel]] | ||
+ | [[Category:ExpertDev]] |
Version actuelle en date du 17 novembre 2021 à 13:51
Warning: Quite technical stuff here!!!
In the dynamics, the MPI assigned domains to a each core can be hard to track of... especially as it also depends on the grid (scalar, U, V) a given variable is
Some nomenclature:
- jjb_u, jje_u => "latitudinal indexes", for a variable on the (iip1,jjb_u:jje_u) horizontal grid U grid
- jjb_v, jje_v => "latitudinal indexes", for a variable on the (iip1,jjb_v:jje_v) horizontal grid V grid
- ijb_u => "ij": linear index (horizontal grid) "b": begin (i.e. index at which the domain starts) "_u": U grid
- ije_u => "ij": linear index (horizontal grid) "e": end (i.e. index at which the domain ends) "_u": U grid
- ijb_v => "ij": linear index (horizontal grid) "b": begin (i.e. index at which the domain starts) "_v": V grid
- ije_v => "ij": linear index (horizontal grid) "e": end (i.e. index at which the domain ends) "_v": V grid
These boundaries include halos (i.e. neighboring values at the junction with adjacent domains), whereas the ij_begin and ij_end don't (see parallel_lmdz.F90).
Scalars, which are not technically on the U grid, but on a grid with identical dimensions, are indexed as if they were on the U grid.
The Register_SwapField routines copy the inner boundary values of a domain to propagate them to the other domains and fill their respective halos.
04/11/2021