File StructuralCompletion.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
-
class
StructuralCompletion
- #include <StructuralCompletion.h>
Contains function to generate positions from other positions.
F.i. to be applied to add hydrogen atoms to a carbon chain.
Public Functions
-
StructuralCompletion
() Static functions only.
Public Static Functions
-
static void
generate3TetrahedronCornersFrom1Other
(const Eigen::Vector3d &v1, Eigen::Vector3d &v2, Eigen::Vector3d &v3, Eigen::Vector3d &v4) Generates three missing position in a tetrahedron.
Given a normalized vector v1 showing from the center of a tetrahedron to one of its corners, calculates three other normalized vectors to three other possible corners. Application example: -C -> -CH3.
- Parameters
v1
: A vector connecting the center and a known corner.v2
: A vector to be populated, then connecting the center and a corner.v3
: A vector to be populated, then connecting the center and a corner.v4
: A vector to be populated, then connecting the center and a corner.
-
static void
generate2TetrahedronCornersFrom2Others
(const Eigen::Vector3d &v1, const Eigen::Vector3d &v2, Eigen::Vector3d &v3, Eigen::Vector3d &v4) Generates two missing position in a tetrahedron.
Given two normalized vectors v1 and v2, calculates two other normalized vectors in order to generate a tetrahedron (as well as possible). Does not work if v1 and v2 are collinear. Application example: -C- -> -CH2-.
- Parameters
v1
: A vector connecting the center and a known corner.v2
: A vector connecting the center and a known corner.v3
: A vector to be populated, then connecting the center and a corner.v4
: A vector to be populated, then connecting the center and a corner.
-
static void
generate1TetrahedronCornerFrom3Others
(const Eigen::Vector3d &v1, const Eigen::Vector3d &v2, const Eigen::Vector3d &v3, Eigen::Vector3d &v4) Generates one missing position in a tetrahedron.
Given three normalized vectors, calculates another normalized vector in order to generate a tetrahedron (as well as possible). Does not work if v1, v2 and v3 are in the same plane. Application example: -C-R2 -> -CH-R2.
- Parameters
v1
: A vector connecting the center and a known corner.v2
: A vector connecting the center and a known corner.v3
: A vector connecting the center and a known corner.v4
: A vector to be populated, then connecting the center and a corner.
-
static void
generate2TriangleCornersFrom1Other
(const Eigen::Vector3d &v1, Eigen::Vector3d &v2, Eigen::Vector3d &v3) Generates two missing position in a triangle.
Given a normalized vector v1 showing from the center of a triangle to one of its corners, calculates two other normalized vectors to two other possible corners. Application example: -C -> -CH2.
- Parameters
v1
: A vector connecting the center and a known corner.v2
: A vector to be populated, then connecting the center and a corner.v3
: A vector to be populated, then connecting the center and a corner.
-
static void
generate1TriangleCornerFrom2Others
(const Eigen::Vector3d &v1, const Eigen::Vector3d &v2, Eigen::Vector3d &v3) Generates a missing position in a triangle.
Given two normalized vectors, calculates another normalized vector in order to generate a triangle (as well as possible). Does not work if v1 and v2 are collinear. Application example: -C- -> -CH-.
- Parameters
v1
: A vector connecting the center and a known corner.v2
: A vector connecting the center and a known corner.v3
: A vector to be populated, then connecting the center and a corner.
Public Static Attributes
-
constexpr double
tetrahedronAngle
= 109.4712 * Constants::rad_per_degree The standard tetrahedral angel in rad.
-
-
class
-
namespace