Loading...
Searching...
No Matches
GeometryAnalysis.h
Go to the documentation of this file.
1/*
2** This file is part of eOn.
3**
4** SPDX-License-Identifier: BSD-3-Clause
5**
6** Copyright (c) 2010--present, eOn Development Team
7** All rights reserved.
8**
9** Repo:
10** https://github.com/TheochemUI/eOn
11*/
12#pragma once
13#include "Eigen.h"
14#include <memory>
15
16namespace eonc {
17class Matter;
18
19namespace geometry {
20
22bool rotationMatch(const Matter &m1, const Matter &m2, const double max_diff);
23void projectOutRotTrans(Eigen::VectorXd &step, const AtomMatrix &positions);
24void rotationRemove(const AtomMatrix r1, std::shared_ptr<Matter> m2);
25void rotationRemove(const std::shared_ptr<Matter> m1,
26 std::shared_ptr<Matter> m2);
27void translationRemove(Matter &m1, const AtomMatrix r1);
28void translationRemove(Matter &m1, const Matter &m2);
29double maxAtomMotion(const AtomMatrix v1);
30double maxAtomMotionV(const VectorXd v1);
31long numAtomsMoved(const AtomMatrix v1, double cutoff);
32AtomMatrix maxAtomMotionApplied(const AtomMatrix v1, double maxMotion);
33VectorXd maxAtomMotionAppliedV(const VectorXd v1, double maxMotion);
34AtomMatrix maxMotionApplied(const AtomMatrix v1, double maxMotion);
35VectorXd maxMotionAppliedV(const VectorXd v1, double maxMotion);
36
37bool identical(const Matter &m1, const Matter &m2,
38 const double distanceDifference);
39bool sortedR(const Matter &m1, const Matter &m2,
40 const double distanceDifference);
41void pushApart(std::shared_ptr<Matter> m1, double minDistance);
42
43} // namespace geometry
44} // namespace eonc
Eigen::Matrix< double, 3, 3, eOnStorageOrder > RotationMatrix
Definition Eigen.h:38
Eigen::Matrix< double, Eigen::Dynamic, 3, eOnStorageOrder > AtomMatrix
Definition Eigen.h:37
RotationMatrix rotationExtract(const AtomMatrix r1, const AtomMatrix r2)
AtomMatrix maxAtomMotionApplied(const AtomMatrix v1, double maxMotion)
long numAtomsMoved(const AtomMatrix v1, double cutoff)
double maxAtomMotion(const AtomMatrix v1)
void pushApart(std::shared_ptr< Matter > m1, double minDistance)
bool rotationMatch(const Matter &m1, const Matter &m2, const double max_diff)
VectorXd maxMotionAppliedV(const VectorXd v1, double maxMotion)
void projectOutRotTrans(Eigen::VectorXd &step, const AtomMatrix &positions)
bool identical(const Matter &m1, const Matter &m2, const double distanceDifference)
VectorXd maxAtomMotionAppliedV(const VectorXd v1, double maxMotion)
double maxAtomMotionV(const VectorXd v1)
bool sortedR(const Matter &m1, const Matter &m2, const double distanceDifference)
void rotationRemove(const AtomMatrix r1, std::shared_ptr< Matter > m2)
AtomMatrix maxMotionApplied(const AtomMatrix v1, double maxMotion)
void translationRemove(Matter &m1, const AtomMatrix r1)
RAII resource manager for the ARTn C library with global synchronization.