Files
rdkit/External/YAeHMOP/EHTTools.h
Greg Landrum 0eb983a09d WIP: optional integration with YAeHMOP (#2335)
* stub for YAeHMOP integration

* switch to using catch for the test

* first steps towards calling from rdkit

* switch to using some smart pointers

* runs, but has unpredictable seg faults. Needs valgrinding

* cleanup

* allow hacky linux builds too

* start using unique_ptrs for memory management

* don't find princ axes by default
Support probably isn't compiled in.

* save computed properties

* additional cleanup

* start working on a smarter way to get the code

* start making the cmake externalproject support work

* seems to work

* does not work yet

* this actually seems to build and work on linux

* theoretically more robust

* handle the parameter file

* first wrapper

* try to get mac builds working too

* initial pass at including reduced charge and overlap population matrices

* update docs

* backup commit

* switch to using cmake to handle the C++ spec

* switch to using a results object for the eHT calculations

* support fermi and total E
2019-03-24 08:07:50 +01:00

44 lines
1.1 KiB
C++

//
// Copyright (C) 2018 by Greg Landrum
//
#ifndef EHTTOOLS_H_20181226
#define EHTTOOLS_H_20181226
/*! \file
\brief Contains an interface to the YaEHMOP extended Hueckel program.
\b Note: This interface is experimental and may change from version to
version.
*/
#include <string>
#include <memory>
namespace RDKit {
class ROMol;
namespace EHTTools {
struct EHTResults {
unsigned int numAtoms;
unsigned int numOrbitals;
std::unique_ptr<double[]> overlapPopulationMatrix;
std::unique_ptr<double[]> reducedOverlapPopulationMatrix;
std::unique_ptr<double[]> chargeMatrix;
std::unique_ptr<double[]> reducedChargeMatrix;
std::unique_ptr<double[]> atomicCharges;
double fermiEnergy;
double totalEnergy;
EHTResults() = default;
EHTResults(const EHTResults &) = delete;
EHTResults &operator=(const EHTResults &) = delete;
};
//! Runs an extended Hueckel calculation for a molecule
//! The results are returned in the EHTResults structure
bool runMol(const ROMol &mol, EHTResults &results, int confId = -1);
} // namespace EHTTools
} // namespace RDKit
#endif