|
| type(component_descriptor_type) function, public | iterativesolver_mod::iterativesolver_get_descriptor () |
| | Descriptor of the iterative solver component used by the registry. More...
|
| |
| subroutine | iterativesolver_mod::initialisation_callback (current_state) |
| | Initialisation callback hook which will set up the halo swapping state and allocate some data. More...
|
| |
| subroutine | iterativesolver_mod::timestep_callback (current_state) |
| | Timestep callback, this ignores all but the last column where it calls the solver. More...
|
| |
| subroutine | iterativesolver_mod::finalisation_callback (current_state) |
| | Called as MONC is shutting down and frees the halo swap state and deallocates local data. More...
|
| |
| subroutine | iterativesolver_mod::bicgstab (current_state, A, x, b, i_strt, i_end, j_strt, j_end, k_end) |
| | Performs the BiCGStab KS method. More...
|
| |
| subroutine | iterativesolver_mod::cg_solver (current_state, A, x, b, i_strt, i_end, j_strt, j_end, k_end) |
| | Performs the preconditioned conjugate gradient method. More...
|
| |
| subroutine | iterativesolver_mod::precond (current_state, A, s, r, preits) |
| | Jacobi preconditioner. More...
|
| |
| subroutine | iterativesolver_mod::calc_ax (current_state, A, x, Ax) |
| | Calculates A * x. More...
|
| |
| real(kind=default_precision) function | iterativesolver_mod::inner_prod (current_state, x, y, i_strt, i_end, j_strt, j_end, k_end) |
| | Returns the global inner product of two vectors, ignoring the halo cells. More...
|
| |
| real(kind=default_precision) function, dimension(3) | iterativesolver_mod::inner_prod_three_way (current_state, t, s, i_strt, i_end, j_strt, j_end, k_end) |
| | Returns the global inner product of a pair of vectors, ignoring the halo cells for three separate pairs. This call is for optimisation to bunch up the comms in a BiCGStab solver per iteration. More...
|
| |
| subroutine | iterativesolver_mod::set_matrix_for_poisson (grid_configuration, A, z_size) |
| | Sets the values of the provided matrix to solve the poisson equation. More...
|
| |
| subroutine | iterativesolver_mod::deduce_global_divmax (current_state) |
| | Determines the global divmax which is written into the current state. More...
|
| |
| subroutine | iterativesolver_mod::copy_p_to_halo_buffer (current_state, neighbour_description, dim, source_index, pid_location, current_page, source_data) |
| | Copies the p field data to halo buffers for a specific process in a dimension and halo cell. More...
|
| |
| subroutine | iterativesolver_mod::copy_calc_ax_to_halo_buffer (current_state, neighbour_description, dim, source_index, pid_location, current_page, source_data) |
| | Copies the source field data to halo buffers for a specific process in a dimension and halo cell - for the calc_Ax halo swaps. More...
|
| |
| subroutine | iterativesolver_mod::copy_halo_buffer_to_p (current_state, neighbour_description, dim, target_index, neighbour_location, current_page, source_data) |
| | Copies the halo buffer to halo location for the p field. More...
|
| |
| subroutine | iterativesolver_mod::copy_halo_buffer_to_calc_ax (current_state, neighbour_description, dim, target_index, neighbour_location, current_page, source_data) |
| | Copies the halo buffer to halo location for the source field as required in the calc_Ax procedure. More...
|
| |
| subroutine | iterativesolver_mod::perform_local_data_copy_for_p (current_state, halo_depth, involve_corners, source_data) |
| | Does local data copying for P variable halo swap. More...
|
| |
| subroutine | iterativesolver_mod::perform_local_data_copy_for_calc_ax (current_state, halo_depth, involve_corners, source_data) |
| | Does a local data copy for halo swapping cells with wrap around (to maintain periodic boundary condition) More...
|
| |
| type(matrix_type) function | iterativesolver_mod::create_problem_matrix (z_size) |
| | Creates a problem matrix, allocating the required data based upon the column size. More...
|
| |
| subroutine | iterativesolver_mod::complete_psrce_calculation (current_state, y_halo_size, x_halo_size) |
| | Completes the psrce calculation by waiting on all outstanding psrce communications to complete and then combine the received values with the P field for U and V. More...
|
| |
|
| real(kind=default_precision) | iterativesolver_mod::tolerance |
| |
| real(kind=default_precision) | iterativesolver_mod::relaxation |
| | Solving tollerance. More...
|
| |
| integer | iterativesolver_mod::max_iterations |
| | Maximum number of BiCGStab iterations. More...
|
| |
| integer | iterativesolver_mod::preconditioner_iterations |
| | Number of preconditioner iterations to perform per call. More...
|
| |
| logical | iterativesolver_mod::symm_prob |
| |
| real(kind=default_precision), parameter | iterativesolver_mod::tiny = 1.0e-16 |
| | Minimum residual - if we go below this then something has gone wrong. More...
|
| |
| type(halo_communication_type), save | iterativesolver_mod::halo_swap_state |
| | The halo swap state as initialised by that module. More...
|
| |
| real(kind=default_precision), dimension(:,:,:), allocatable | iterativesolver_mod::psource |
| |
| real(kind=default_precision), dimension(:,:,:), allocatable | iterativesolver_mod::prev_p |
| | Passed to BiCGStab as the RHS. More...
|
| |
| logical | iterativesolver_mod::first_run =.true. |
| |
| type(matrix_type) | iterativesolver_mod::a |
| |