checkConvergence Function

function checkConvergence(oldVars, newVars, indicesToCheck, nonlinTol, absTol, use2Norm, convergenceCounter) result(conv)

Checks whether all variables determined by indicesToCheck have converged based on a given nonlinear tolerance

Arguments

Type IntentOptional Attributes Name
type(RealArray), intent(in), dimension(:) :: oldVars

Previous variable values

type(RealArray), intent(in), dimension(:) :: newVars

New variable values

integer(kind=ik), intent(in), dimension(:) :: indicesToCheck

Indices of oldVars/newVars to check for convergence

real(kind=rk), intent(in) :: nonlinTol

Relative convergence tolerances for each variable

real(kind=rk), intent(in) :: absTol

Absolute tolerance in epsilon units for each variable

logical, intent(in) :: use2Norm

True if this should use 2-norm instead of local inf-norm

integer(kind=ik), intent(inout), dimension(:) :: convergenceCounter

Incremented if the variable with a given index has not yet converged

Return Value logical