Changes between Version 494 and Version 495 of doc/app/initialization_parameters


Ignore:
Timestamp:
Sep 14, 2021 12:32:48 PM (3 years ago)
Author:
suehring
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • doc/app/initialization_parameters

    v494 v495  
    10211021      Multigrid scheme (see [[Diplomarbeit J. Uhlenbrock]], in German only). v- and w-cycles (see [#cycle_mg cycle_mg]) are implemented. The convergence of the iterative scheme can be steered by the number of v-/w-cycles to be carried out for each call of the scheme ([#mg_cycles mg_cycles]) and by the number of Gauss-Seidel iterations (see [#ngsrb ngsrb]) to be carried out on each grid level. Instead, the requested accuracy can be given via [#residual_limit residual_limit]. The smaller this limit is, the more cycles have to be carried out in this case and the number of cycles may vary from time step to time step.\\\\
    10221022      If [#mg_cycles mg_cycles] is set to its optimal value, the computing time of the multigrid scheme amounts approximately to that of the direct solver '' 'poisfft','' as long as the number of grid points in the three directions of space corresponds to a power-of-two (2^n^) where ''n'' >= 5 must hold. With large ''n'', the multigrid scheme can even be faster than the direct solver (although its accuracy is several orders of magnitude worse, but this does not affect the accuracy of the simulation). Nevertheless, the user should always carry out some test runs in order to find out the optimum value for [#mg_cycles mg_cycles], because the CPU time of a run very critically depends on this parameter.\\\\
    1023       This scheme requires that the number of grid points of the subdomains (or of the total domain, if only one PE is used) along each of the directions can, at least, be divided once by 2 without rest.\\\\
     1023      This scheme requires that the number of grid points of the subdomains (or of the total domain, if only one PE is used) along each of the directions can, at least, be divided once by 2 without rest. A further side condition arising from performance optimizations is that the number of grid points along z on the coarsest grid level must not be an odd number. If this is the case, the number of possible grid levels along z is reduced by one. For example, nz(level 1) = 150 -> nz(level 2) = 75 (odd number) results in no possible grid coarsening (only one grid level possible), while nz(level 1 = 152) -> nz(level 2) = 76 -> nz(level 3) = 38 -> nz(level 4) = 19 results in 3 possible multigrid levels. \\\\
    10241024      With parallel runs, starting from a certain grid level the data of the subdomains are possibly gathered on PE0 in order to allow for a further coarsening of the grid. The grid level for gathering can be manually set by [#mg_switch_to_pe0_level mg_switch_to_pe0_level].\\\\
    10251025     'multigrid' is highly optimized for better performance. Data along the {{{k}}} index (vertical direction) is sorted from alternate even and odd indices into two blocks of completely even and odd indices respectively, which allows vectorization on INTEL processors of loops in the red/black scheme. Additionally, topography flags are completely ignored (i.e. not used) in case of [#masking_method masking_method] switched off. On fine grid levels only even or odd data are send for the lateral ghost point exchange. Speedup of the multigrid solver for medium sized cases (1024*1024*192 grid points) can be about 40% compared to 'multigrid_noopt'. \\