- Module dl_mg_common_data
- In order to protect data the variable should be declare private and use get/set functions to access and set values
- Subprogram dl_mg_multigrid_method::mg_vcycle (mg, eq_type, niter_level1, test_conv_level1)
- needs to handle better the convergence flag in this version the coarse level does not check for convergence
- Module dl_mg_neutralisation_with_ions
- Add a debug print switch that enables printing Newton solver iteration details.
- Subprogram dl_mg_newton_method::newton_solver (mg, eq_type, alpha, rho, pot, ierr)
- what should happen here if converged has the value DL_MG_ERR_RES_RATIO? exit or keep going
- Module dl_mg_nonlinear_model
- Warn the user if the provided expcap is overruled by max_excap; should max_expcap be located in parameters module?
- Subprogram dl_mg_second_order_solvers::dlmg_2nd_order_solver (eq_type, alpha, rho, pot, use_pot_in, remove_source_zero_mode, res, der_pot, ierror)
- Needs more thinking when different errors occurs on different threads
- Subprogram dl_mg_utils::compute_norm (mg, component, scale)
- a_ptr can have contiguous attribute
- Subprogram dl_mg_utils::dl_mg_init_nonlin (eq_type, lambda, temp, n, c, q, rho, steric_weight, der_pot, expcap, linearised, use_fas, neutralisation_method, neutralisation_ion_ratios, ierror)
- Test for charge neutrality?
- Subprogram dl_mg_utils::remove_zero_mode_source (mg, eq_type, remove_mode, rho, steric_weight, der_pot)
- analyse furter eq_linear_pbe_pot in as primary input