sisl.mixing.PulayMixer
- class sisl.mixing.PulayMixer(weight: TypeWeight = 0.1, history: TypeArgHistory = 2, metric: TypeMetric | None = None)
Bases:
DIISMixer
Methods
Calculate coefficients of the Lagrangian
mix
(coefficients)Calculate a new variable \(\mathbf f'\) using history and input coefficients
set_history
(history)Replace the current history in the mixer with a new one
set_weight
(weight)Set a new weight for this mixer
Calculate the coefficients according to Pulay's method, return everything + Lagrange multiplier
Attributes
History object tracked by this mixer
This mixers mixing weight, the weight is the fractional contribution of the derivative
- __call__(f: T, df: T, delta: Any | None = None, append: bool = True) T
Append data to the history (omitting None values)!
- coefficients() npt.NDArray[np.float64]
Calculate coefficients of the Lagrangian
- mix(coefficients: numpy.typing.ArrayLike) Any
Calculate a new variable \(\mathbf f'\) using history and input coefficients
- Parameters:
coefficients (
numpy.ndarray
) – coefficients used for extrapolation
- set_history(history: int | History) None
Replace the current history in the mixer with a new one
- Parameters:
history – if an int a new History object will be created with that number of history elements Otherwise the object will be directly attached to the mixer.
- set_weight(weight: float | int)
Set a new weight for this mixer
- Parameters:
weight (
float
) – the new weight for this mixer, it must be bigger than 0