foxes.algorithms.iterative.models.convergence

Classes

ConvCrit

Abstract base class for convergence criteria

ConvCritList

Combines multiple convergence criteria.

ConvVarDelta

Requires convergence of a selection of variables.

DefaultConv

Default convergence criteria.

Module Contents

class foxes.algorithms.iterative.models.convergence.ConvCrit(name: str | None = None)[source]

Abstract base class for convergence criteria

Parameters:
name

The convergence criteria name

abstract check_converged(algo: foxes.core.algorithm.Algorithm, prev_results: xarray.Dataset | None, results: xarray.Dataset, verbosity: int = 0) bool[source]

Check convergence criteria.

Parameters:
algo

The calculation algorithm

prev_results

The farm results of previous iteration, or None if first

results

The farm results of current iteration

verbosity

The verbosity level, 0 = silent

Returns:
convergence

Convergence flag, true if converged

disable_subsets(no_subs: bool = True) None[source]

Disable subset state selection in iterative algorithm.

This is needed if the convergence criterion requires all states to be calculated in each iteration.

Parameters:
no_subs

Disable subsets flag

property conv_states : numpy.ndarray | None

Get the convergence state per state.

Returns:
conv_states

The convergence state per state

property deltas : dict[str, float] | None

Get the most recent evaluation deltas.

Returns:
deltas

The most recent evaluation deltas

name
property no_subs : bool

Get the disable subsets flag.

Returns:
no_subs

Disable subsets flag

class foxes.algorithms.iterative.models.convergence.ConvCritList(crits: list[ConvCrit] = [], name: str | None = None)[source]

Bases: ConvCrit

Combines multiple convergence criteria.

Parameters:
crits

The criteria

name

The convergence criteria name

add_crit(crit: ConvCrit) None[source]

Add a convergence criterion

Parameters:
crit

The criterion

check_converged(algo: foxes.core.algorithm.Algorithm, prev_results: xarray.Dataset | None, results: xarray.Dataset, verbosity: int = 0) bool[source]

Check convergence criteria.

Parameters:
algo

The calculation algorithm

prev_results

The farm results of previous iteration, or None if first

results

The farm results of current iteration

verbosity

The verbosity level, 0 = silent

Returns:
convergence

Convergence flag, true if converged

disable_subsets(no_subs: bool = True) None

Disable subset state selection in iterative algorithm.

This is needed if the convergence criterion requires all states to be calculated in each iteration.

Parameters:
no_subs

Disable subsets flag

property conv_states : numpy.ndarray | None

Get the convergence state per state.

Returns:
conv_states

The convergence state per state

crits = []
property deltas : dict[str, float] | None

Get the most recent evaluation deltas.

Returns:
deltas

The most recent evaluation deltas

property failed : ConvCrit | None
name
property no_subs : bool

Get the disable subsets flag.

Returns:
no_subs

Disable subsets flag

class foxes.algorithms.iterative.models.convergence.ConvVarDelta(limits: dict[str, float], wd_vars: list[str] | None = None, name: str | None = None)[source]

Bases: ConvCrit

Requires convergence of a selection of variables.

Parameters:
limits

The convergence limits. Keys: variables str, values are convergence thresholds

wd_vars

The wind direction type variables (unit deg)

name

The convergence criteria name

check_converged(algo: foxes.core.algorithm.Algorithm, prev_results: xarray.Dataset | None, results: xarray.Dataset, verbosity: int = 0) bool[source]

Check convergence criteria.

Parameters:
algo

The calculation algorithm

prev_results

The farm results of previous iteration, or None if first

results

The farm results of current iteration

verbosity

The verbosity level, 0 = silent

Returns:
convergence

Convergence flag, true if converged

disable_subsets(no_subs: bool = True) None

Disable subset state selection in iterative algorithm.

This is needed if the convergence criterion requires all states to be calculated in each iteration.

Parameters:
no_subs

Disable subsets flag

property conv_states : numpy.ndarray | None

Get the convergence state per state.

Returns:
conv_states

The convergence state per state

property deltas : dict[str, float] | None

Get the most recent evaluation deltas.

Returns:
deltas

The most recent evaluation deltas

limits
name
property no_subs : bool

Get the disable subsets flag.

Returns:
no_subs

Disable subsets flag

class foxes.algorithms.iterative.models.convergence.DefaultConv[source]

Bases: ConvVarDelta

Default convergence criteria.

Constructor.

check_converged(algo: foxes.core.algorithm.Algorithm, prev_results: xarray.Dataset | None, results: xarray.Dataset, verbosity: int = 0) bool

Check convergence criteria.

Parameters:
algo

The calculation algorithm

prev_results

The farm results of previous iteration, or None if first

results

The farm results of current iteration

verbosity

The verbosity level, 0 = silent

Returns:
convergence

Convergence flag, true if converged

disable_subsets(no_subs: bool = True) None

Disable subset state selection in iterative algorithm.

This is needed if the convergence criterion requires all states to be calculated in each iteration.

Parameters:
no_subs

Disable subsets flag

property conv_states : numpy.ndarray | None

Get the convergence state per state.

Returns:
conv_states

The convergence state per state

property deltas : dict[str, float] | None

Get the most recent evaluation deltas.

Returns:
deltas

The most recent evaluation deltas

limits
name
property no_subs : bool

Get the disable subsets flag.

Returns:
no_subs

Disable subsets flag