File ConvergenceAcceleratorFactory.h¶
- Copyright
This code is licensed under the 3-clause BSD license.
Copyright ETH Zurich, Laboratory for Physical Chemistry, Reiher Group.
See LICENSE.txt for details.
-
namespace
Scine
This header file contains functions that allow for common notation for common things that can be done at a different degree of derivatives.
This header contains alias definitions defining which classes to use for the different degrees of derivatives.
-
namespace
Utils
Enums
-
enum
scf_mixer_t
¶ Enum class describing the available Scf convergence accelerators (“mixers”).
Values:
-
none
¶ Element representing no accelerator at all.
-
fock_diis
¶ The Fock Direct Inversion of Iterative Subspace convergence accelerator (default).
-
ediis
¶ The Energy DIIS convergence accelerator.
-
ediis_diis
¶ Combination of the previous two.
-
fock_simple
¶ A simple fock extrapolation scheme. Does not work that well.
-
charge_simple
¶ Very simple charge extrapolation scheme. Does not work that well.
-
-
class
ConvergenceAcceleratorFactory
- #include <ConvergenceAcceleratorFactory.h>
The ConvergenceAcceleratorFactory class provides the register of the available convergence accelerators.
This class also creates pointer to the desired Scf convergence accelerators. In the code convergence accelerators are often referred to as “mixers”.
Public Static Functions
-
static const std::vector<MixerDescriptor> &
getAvailableMixers
()¶
-
static std::unique_ptr<ScfModifier>
createMixer
(scf_mixer_t mixerID) Factory method to create a convergence accelerator.
- Return
A std::unique_ptr<ScfModifier> representing a polymorphic pointer to a convergence accelerator.
- Parameters
mixerID
: The corresponding enum class member.
Public Static Attributes
-
scf_mixer_t
defaultMixer
Returns the enum class member corresponding to the default convergence accelerator.
Private Static Functions
-
static void
setAvailableMixers
()¶
Private Static Attributes
-
std::vector<MixerDescriptor>
availableMixers
¶
-
struct
MixerDescriptor
- #include <ConvergenceAcceleratorFactory.h>
Small struct used as a map between string name and enum ID.
Public Functions
-
MixerDescriptor
(scf_mixer_t ID, std::string name)¶
-
-
static const std::vector<MixerDescriptor> &
-
enum
-
namespace