Files
rdkit/Code/ForceField/UFF/Utils.h
nmaeder a45d4d9857 New contribs for DG (#7711)
* add angles and distances

* add Inversions

* add torsiona angle contribs

* use new contribs in test

* use new inversion and torsion contribs in dg

* use new distance contribs in dg

* use new angle constraints in dg

* use new constraints in FF tests

* update docstrings

* remove unused import

* include new contribs

* cleanup includes

* make changes requested by @greglandrum

* use std::move instead of release
2024-08-21 06:06:58 +02:00

42 lines
1.3 KiB
C++

//
// Copyright (C) 2013-2024 Paolo Tosco and other RDKit contributors
//
// @@ All Rights Reserved @@
// This file is part of the RDKit.
// The contents are covered by the terms of the BSD license
// which is included in the file license.txt, found at the root
// of the RDKit source tree.
//
#include <RDGeneral/export.h>
#ifndef RD_UFFUTILS_H
#define RD_UFFUTILS_H
#include <tuple>
#include <Geometry/point.h>
namespace ForceFields {
namespace UFF {
namespace Utils {
//! calculates and returns the cosine of the Y angle in an improper torsion
//! (see UFF paper, equation 19)
RDKIT_FORCEFIELD_EXPORT double calculateCosY(const RDGeom::Point3D &iPoint,
const RDGeom::Point3D &jPoint,
const RDGeom::Point3D &kPoint,
const RDGeom::Point3D &lPoint);
//! calculates and returns the UFF force constant for an improper torsion
/*!
\param at2AtomicNum atomic number for atom 2
\param isCBoundToO boolean flag; true if atom 2 is sp2 carbon bound to sp2
oxygen
\return the force constant
*/
RDKIT_FORCEFIELD_EXPORT std::tuple<double, double, double, double>
calcInversionCoefficientsAndForceConstant(int at2AtomicNum, bool isCBoundToO);
} // namespace Utils
} // namespace UFF
} // namespace ForceFields
#endif