File OrcaCalculator.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
namespace ExternalQC
class OrcaCalculator : public Scine::Utils::CloneInterface<OrcaCalculator, Core::Calculator>

Public Functions

OrcaCalculator()

Default Constructor.

~OrcaCalculator()

Default Destructor.

OrcaCalculator(const OrcaCalculator &rhs)

Copy Constructor.

void setStructure(const AtomCollection &structure)

Changes the molecular structure to calculate.

Parameters

std::unique_ptr<AtomCollection> getStructure() const

Gets the molecular structure as a std::unique_ptr<AtomCollection>.

Return

std::unique_ptr<AtomCollection>

void modifyPositions(PositionCollection newPositions)

Allows to modify the positions of the underlying AtomCollection.

Parameters
  • newPositions: the new positions to be assigned to the underlying AtomCollection

const PositionCollection &getPositions() const

Getter for the coordinates of the underlying AtomCollection.

void setRequiredProperties(const PropertyList &requiredProperties)

Sets the properties to calculate.

Parameters
  • requiredProperties: A PropertyList, a sequence of bits that represent the properties that must be calculated.

PropertyList getRequiredProperties() const

Getter for the properties to calculate.

PropertyList possibleProperties() const

Returns the list of the possible properties to calculate analytically.

By some method analytical hessian calculation is not possible. In this case the hessian calculation is done seminumerically.

const Results &calculate(std::string description)

The main function running calculations (dummy).

Return

Result Return the result of the calculation. The object contains the properties that were given as requirement by the Calculator::setRequiredProperties function.

Parameters
  • description: The calculation description.

std::string name() const

Getter for the name of the Calculator.

Return

Returns the name of the Calculator.

Settings &settings()

Accessor for the settings.

Return

Settings& The settings.

const Settings &settings() const

Constant accessor for the settings.

Return

const Settings& The settings.

std::shared_ptr<Core::State> getState() const

Implements Core::StateHandableObject::getState().

Return

std::shared_ptr<Core::State> The current state

void loadState(std::shared_ptr<Core::State> state)

Implements Core::StateHandableObject::loadState().

Parameters
  • state: The new state.

Results &results()

Accessor for the saved instance of Results.

Return

Results& The results of the previous calculation.

const Results &results() const

Constant accessor for the Results.

Return

const Results& The results of the previous calculation.

std::string getFileNameBase() const

Getter for the file name base string.

std::string getCalculationDirectory() const

Getter for the calculation directory.

bool supportsMethodFamily(const std::string &methodFamily) const

Whether the calculator supports a method family.

Return

whether the calculator supports a method family

Parameters
  • methodFamily: identifier for the method family

Public Static Attributes

constexpr const char *model = "ORCA"

Private Functions

bool binaryIsValid()
const Results &calculateImpl(std::string description)
void applySettings()
void copyBackupFile(const std::string &from, const std::string &to) const
std::string createNameForCalculationDirectory()
void deleteTemporaryFiles()

Private Members

std::unique_ptr<Settings> settings_
Results results_
std::string baseWorkingDirectory_
std::string calculationDirectory_
std::string fileNameBase_
std::string orcaExecutable_ = ""
AtomCollection atoms_
PropertyList requiredProperties_
bool binaryHasBeenChecked_ = false