DL_MG
|
Top routines for the multigrid algorith: restrict, relax, prolungate and some ancillaries. More...
Data Types | |
type | halo_buffers_t |
buffers use to exchage domain halos at each mg level More... | |
Functions/Subroutines | |
subroutine | mg_solver (mg, eq_type, alpha, rho, pot, res, use_pot_in, remove_source_zero_mode, ierr) |
subroutine | mg_vcycle (mg, eq_type, niter_level1, test_conv_level1) |
run the V-cycle More... | |
subroutine | mg_relax (mg, level, iters, eq_type) |
subroutine | mg_restrict (mg, level, eq_type) |
subroutine | mg_prolongate (mg, level) |
subroutine | allocate_halo_buffers (mg) |
subroutine | free_halo_buffers (mg) |
subroutine | mg_residual (mg, eq_type, halo_exch) |
specialisation of the blocked residual for multigrid no need to exchange halos as this op is done at the end of mg_relax More... | |
Variables | |
type(halo_buffers_t), dimension(:), allocatable, target, private | halo_buff |
logical, save | test_dbc_corruption |
Top routines for the multigrid algorith: restrict, relax, prolungate and some ancillaries.
Lucian Anton
subroutine dl_mg_multigrid_method::allocate_halo_buffers | ( | type(mg_t), dimension(:), intent(in) | mg | ) |
subroutine dl_mg_multigrid_method::free_halo_buffers | ( | type(mg_t), dimension(:), intent(in) | mg | ) |
subroutine dl_mg_multigrid_method::mg_prolongate | ( | type(mg_t), dimension(:), intent(inout), target | mg, |
integer, intent(in) | level | ||
) |
subroutine dl_mg_multigrid_method::mg_relax | ( | type(mg_t), dimension(:), intent(inout), target | mg, |
integer, intent(in) | level, | ||
integer, intent(in) | iters, | ||
integer, intent(in) | eq_type | ||
) |
[in] | eq_type | used to switch the smoother in red black subroutine |
subroutine dl_mg_multigrid_method::mg_residual | ( | type(mg_t), intent(inout) | mg, |
integer, intent(in) | eq_type, | ||
logical, intent(in), optional | halo_exch | ||
) |
specialisation of the blocked residual for multigrid no need to exchange halos as this op is done at the end of mg_relax
subroutine dl_mg_multigrid_method::mg_restrict | ( | type(mg_t), dimension(:), intent(inout) | mg, |
integer, intent(in) | level, | ||
integer, intent(in) | eq_type | ||
) |
subroutine dl_mg_multigrid_method::mg_solver | ( | type(mg_t), dimension(:), intent(inout) | mg, |
integer, intent(in) | eq_type, | ||
real(wp), intent(in) | alpha, | ||
real(wp), dimension(isx:, isy:, isz:), intent(in) | rho, | ||
real(wp), dimension(isx:, isy:, isz:), intent(inout) | pot, | ||
real(wp), dimension(isx:, isy:, isz:), intent(out), optional | res, | ||
logical, intent(in), optional | use_pot_in, | ||
integer, intent(in), optional | remove_source_zero_mode, | ||
integer, intent(out) | ierr | ||
) |
[in] | use_pot_in | if absent or false the inital solution is set 0 inside domain |
[in] | remove_source_zero_mode | defect correction removes k=0 mode, avoids repetition |
subroutine dl_mg_multigrid_method::mg_vcycle | ( | type(mg_t), dimension(:), intent(inout) | mg, |
integer, intent(in) | eq_type, | ||
integer, intent(in), optional | niter_level1, | ||
logical, intent(in), optional | test_conv_level1 | ||
) |
run the V-cycle
|
private |
logical, save dl_mg_multigrid_method::test_dbc_corruption |