File NDDOInitializer.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
namespace Sparrow
namespace nddo
class NDDOInitializer : public StructureDependentInitializer
#include <NDDOInitializer.h>

Settings for generic NDDO methods.

Reads the parameters and applies them to the system of interest. Depending on the method, the basis functions used can either be BasisFunction::sp (MNDO, AM1) of BasisFunction::spd (i.e. PM6, AM1*, MNDO/d) and it can have just atomic parameters (i.e. AM1, MNDO) or also diatomic parameters (i.e. PM6)

Public Functions

NDDOInitializer(BasisFunctions basisFunctions = BasisFunctions::spd, bool hasDiatomicParameters = true)
void applyRawParameters(const Utils::ElementTypeCollection &elements)

(Re)generate values and run-time parameters from the current raw parameters.

    Only needed if the parameters are modified manually.
Parameters
  • elements: a vector containing the elements constituting the molecule.

  • basisFunctions: Whether the method just accomodate s and p basis functions (i.e. AM1, MNDO), or if it can also activate d basis functions.

  • hasDiatomicParameters: Whether the method also has diatomic parameters (i.e. PM6).

void readParameters(const std::string &parameterPath)

Load the parameters from a file.

void saveParameters(const std::string &fileName)

Save the parameters to a file.

void initialize(const Utils::ElementTypeCollection &elements)

Initialize the method after the parameters have been set or loaded.

Utils::AtomsOrbitalsIndexes getAtomsOrbitalsIndexes() const
unsigned getNumberElectronsForUnchargedSpecies() const
std::vector<double> getCoreCharges() const
bool unrestrictedCalculationPossible() const
RawParametersContainer &getRawParameters()

Get reference to the class for raw NDDO parameters.

const RawParametersContainer &getRawParameters() const

Get const reference to the class for raw NDDO parameters.

const ElementParameters &getElementParameters()
const ElementPairParameters &getElementPairParameters()
const OneCenterIntegralContainer &getOneCenterIntegrals()
BasisFunctions getBasisFunctions() const

Private Members

ElementParameters elementParameters_
ElementPairParameters elementPairParameters_
OneCenterIntegralContainer oneCenterIntegrals_
RawParametersContainer rawParameters_
unsigned int nElectronsForUnchargedSpecies_ = 0
std::vector<double> coreCharges_
Utils::AtomsOrbitalsIndexes aoIndexes_
BasisFunctions basisFunctions_
bool hasDiatomicParameters_