|
subroutine, public | solvers_module::boundedsolutioncorrections (state, packed_state, Mdims, CV_funs, small_findrm, small_colm, Field_name, for_sat, min_max_limits) |
| The sparcity of the local CV connectivity is in: small_findrm, small_colm. ngl_its=max no of global iterations e.g. 100. error_tol = tolerance on the iterations. More...
|
|
subroutine, public | solvers_module::fpi_backtracking (nphase, Mdims, ndgln, state, packed_state, sat_bak, backtrack_sat, backtrack_par_from_schema, Previous_convergence, satisfactory_convergence, new_backtrack_par, Max_sat_its, its, nonlinear_iteration, useful_sats, res, res_ratio, first_res) |
| :In this subroutine we applied some corrections and backtrack_par on the saturations obtained from the saturation equation this subroutine is detailed in Salinas et al. 2017 doi:10.1002/fld.4357 The method ensures convergence "independent" of the time step. More...
|
|
subroutine, public | solvers_module::set_saturation_to_sum_one (mdims, packed_state, state, do_not_update_halos) |
| :This subroutines eliminates the oscillations in the saturation that are bigger than a certain tolerance and also sets the saturation to be between bounds More...
|
|
subroutine, public | solvers_module::non_porous_ensure_sum_to_one (Mdims, packed_state, do_not_update_halos) |
| : This subroutines eliminates the oscillations in the saturation that are bigger than a certain tolerance and also sets the saturation to be between bounds More...
|
|
subroutine, public | solvers_module::initialise_saturation_sums_one (mdims, packed_state, find_scapegoat_phase) |
| :Ensure that the saturations at the beginning sum to one, if they do not all the error is compensated in the scapegoat_phase. Normally the last More...
|
|
subroutine, public | solvers_module::auto_backtracking (Mdims, backtrack_par_factor, courant_number_in, first_time_step, nonlinear_iteration, I_am_temperature) |
| : The maximum backtracking factor is calculated based on the Courant number and physical effects ocurring in the domain More...
|
|
subroutine, public | solvers_module::get_anderson_acceleration_new_guess (N, M, NewField, History_field, stored_residuals, max_its, prev_small_matrix, restart_now) |
| This subroutine provides a new guess based on previous updates and residuals. Use this subroutine to speed up any system being solved by looping. A new guess is computed and returned Method explained in DOI.10.1137/10078356X. More...
|
|
subroutine, public | solvers_module::scale_petsc_matrix (Mat_petsc) |
| In this subroutine the matrix is re-scaled based on the formula D^-0.5 * A * D^-0.5 X'= D^-0.5 b; and next X = D^-0.5 * X'; IMPORTANT: the step X = D^-0.5 * X' needs to be done elsewhere store the diagonal before calling this This should allow to deal with high ranges of viscosity ratio for example A is-written. More...
|
|
subroutine, public | solvers_module::duplicate_petsc_matrix (MAT_A, MAT_B) |
|
subroutine, public | solvers_module::petsc_stokes_solver (packed_state, Mdims, Mmat, ndgln, Mspars, final_phase, pmat, P_all, deltaP, rhs_p, solver_option_path, Dmat) |
| In this subroutine the Schur complement is generated and solved using PETSc to update the pressure field Matrices need to be in petsc format and pmat is the preconditioned matrix, i.e. pmat = A11- A10(AproxA00^-1)A01. More...
|
|
subroutine | solvers_module::convert_c_and_ct_mat_to_petsc_format (packed_state, Mdims, Mmat, ndgln, Mspars, NPHASE) |
| : This subroutine converts the C (gradient) and CT (Divergence) matrices into PETSc format Mainly devoted to be used by the PETSc stokes schur solver This can be used when moving from the ICFERST matrix format to PETSc as reference More...
|
|