A Module For Storing The Parameters For Iterative Solvers.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=NTREAL), | public, | parameter | :: | CONVERGENCE_DIFF_CONST | = | 1e-6_NTREAL | The default convergence difference. |
integer, | public, | parameter | :: | MAX_ITERATIONS_CONST | = | 1000 | The default maximum number of iterations. |
Construct a data type which stores iterative solver parameters.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=NTREAL), | intent(in), | optional | :: | converge_diff_in | Converge_diff_in the difference between iterations to consider a calculation converged. |
|
real(kind=NTREAL), | intent(in), | optional | :: | threshold_in | The zero threshold |
|
integer, | intent(in), | optional | :: | max_iterations_in | The maximum number of iterations to perform |
|
logical, | intent(in), | optional | :: | be_verbose_in | Whether to print during the calculation (default = False) |
|
type(Permutation_t), | intent(in), | optional | :: | BalancePermutation_in | For load balancing |
A class for passing parameters to an iterative solver.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=NTREAL), | public | :: | converge_diff | When do we consider a calculation converged. |
|||
integer, | public | :: | max_iterations | Maximum number of iterations of a solver before termination. |
|||
real(kind=NTREAL), | public | :: | threshold | Threshold for sparse multiplication and addition. |
|||
logical, | public | :: | be_verbose | If true, the sparse solver prints out information each loop iteration. |
|||
logical, | public | :: | do_load_balancing | If true, the sparse solver will try and load balance before calculation. |
|||
type(Permutation_t), | public | :: | BalancePermutation | The permutation used for load balancing. |
private pure function SolverParameters_init(converge_diff_in, threshold_in, max_iterations_in, be_verbose_in, BalancePermutation_in) | Construct a data type which stores iterative solver parameters. |
Set the value of the convergence difference.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(SolverParameters_t), | intent(inout) | :: | this | The parameter object. |
||
real(kind=NTREAL), | intent(in) | :: | new_value | Value to set it to. |
Set the value of the max iterations.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(SolverParameters_t), | intent(inout) | :: | this | The parameter object. |
||
integer, | intent(in) | :: | new_value | Value to set it to. |
Set the value of the threshold.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(SolverParameters_t), | intent(inout) | :: | this | The parameter object. |
||
real(kind=NTREAL), | intent(in) | :: | new_value | Value to set it to. |
Set the value of the verbosity.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(SolverParameters_t), | intent(inout) | :: | this | The parameter object. |
||
logical, | intent(in) | :: | new_value | Value to set it to. |
Set the value of the load balance.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(SolverParameters_t), | intent(inout) | :: | this | The parameter object. |
||
type(Permutation_t), | intent(in) | :: | new_value | Value to set it to. |
Print out the iterative solver parameter values.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(SolverParameters_t), | intent(in) | :: | this | The parameter object. |
Cleanup the solver parameters datastructure.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(SolverParameters_t), | intent(inout) | :: | this | The parameter object. |