Loading...
Searching...
No Matches
bond.hpp
Go to the documentation of this file.
1//-----------------------------------------------------------------------------------
2// d-SEAMS - Deferred Structural Elucidation Analysis for Molecular Simulations
3//
4// Copyright (c) 2018--present d-SEAMS core team
5//
6// This program is free software: you can redistribute it and/or modify
7// it under the terms of the MIT License as published by
8// the Open Source Initiative.
9//
10// A copy of the MIT License is included in the LICENSE file of this repository.
11// You should have received a copy of the MIT License along with this program.
12// If not, see <https://opensource.org/licenses/MIT>.
13//-----------------------------------------------------------------------------------
14
15#ifndef SEAMS_BONDING_H_
16#define SEAMS_BONDING_H_
17
18#include <algorithm>
19#include <array>
20#include <cmath>
21#include <fstream>
22#include <iostream>
23#include <iterator>
24#include <memory>
25#include <sstream>
26#include <string>
27#include <vector>
28
29// Internal
30#include <cage.hpp>
31#include <mol_sys.hpp>
32#include <seams_input.hpp>
33
38
43
72
73namespace bond {
74
81std::vector<std::vector<int>>
82populateHbonds(std::string filename,
84 const std::vector<std::vector<int>> &nList, int targetFrame,
85 int Htype, double distCutoff = 2.42, double angleCutoff = 30.0);
86
92// ! The H atom PointCloud should be for the entire system
93std::vector<std::vector<int>> populateHbondsWithInputClouds(
96 const std::vector<std::vector<int>> &nList, double distCutoff = 2.42,
97 double angleCutoff = 30.0);
98
103 const molSys::PointCloud<molSys::Point<double>, double> &yCloud,
104 const molSys::PointCloud<molSys::Point<double>, double> &hCloud,
105 int acceptorIndex, int donorIndex, const std::vector<int> &donorHs,
106 double distCutoff = 2.42, double angleCutoff = 30.0);
107
111std::vector<std::vector<int>> populateHbondsFromDonors(
114 const std::vector<std::vector<int>> &nList,
115 const std::vector<int> &donorHs, double distCutoff = 2.42,
116 double angleCutoff = 30.0);
117
121 const molSys::PointCloud<molSys::Point<double>, double> &oCloud,
122 const molSys::PointCloud<molSys::Point<double>, double> &hCloud,
123 int oAtomIndex, int hAtomIndex);
124
128std::vector<std::vector<int>>
129populateBonds(const std::vector<std::vector<int>> &nList,
130 const molSys::PointCloud<molSys::Point<double>, double> &yCloud);
131
136std::vector<std::vector<int>>
137populateBonds(const std::vector<std::vector<int>> &nList,
138 const molSys::PointCloud<molSys::Point<double>, double> &yCloud,
139 const std::vector<cage::iceType> &atomTypes);
140
143std::vector<std::vector<int>>
144createBondsFromCages(const std::vector<std::vector<int>> &rings,
145 std::vector<cage::Cage> &cageList, cage::cageType type,
146 int &nRings);
147
149std::vector<std::vector<int>> trimBonds(std::vector<std::vector<int>> bonds);
150
151} // namespace bond
152
153#endif // SEAMS_BONDING_H_
File for cage types for topological network criteria.
std::vector< std::vector< int > > populateHbonds(std::string filename, molSys::PointCloud< molSys::Point< double >, double > &yCloud, const std::vector< std::vector< int > > &nList, int targetFrame, int Htype, double distCutoff=2.42, double angleCutoff=30.0)
std::vector< std::vector< int > > createBondsFromCages(const std::vector< std::vector< int > > &rings, std::vector< cage::Cage > &cageList, cage::cageType type, int &nRings)
std::vector< std::vector< int > > trimBonds(std::vector< std::vector< int > > bonds)
Remove duplicate bonds.
bool donatedHydrogenBond(const molSys::PointCloud< molSys::Point< double >, double > &yCloud, const molSys::PointCloud< molSys::Point< double >, double > &hCloud, int acceptorIndex, int donorIndex, const std::vector< int > &donorHs, double distCutoff=2.42, double angleCutoff=30.0)
std::vector< std::vector< int > > populateBonds(const std::vector< std::vector< int > > &nList, const molSys::PointCloud< molSys::Point< double >, double > &yCloud)
std::vector< std::vector< int > > populateHbondsFromDonors(molSys::PointCloud< molSys::Point< double >, double > &yCloud, molSys::PointCloud< molSys::Point< double >, double > &hCloud, const std::vector< std::vector< int > > &nList, const std::vector< int > &donorHs, double distCutoff=2.42, double angleCutoff=30.0)
double getHbondDistanceOH(const molSys::PointCloud< molSys::Point< double >, double > &oCloud, const molSys::PointCloud< molSys::Point< double >, double > &hCloud, int oAtomIndex, int hAtomIndex)
std::vector< std::vector< int > > populateHbondsWithInputClouds(molSys::PointCloud< molSys::Point< double >, double > &yCloud, molSys::PointCloud< molSys::Point< double >, double > &hCloud, const std::vector< std::vector< int > > &nList, double distCutoff=2.42, double angleCutoff=30.0)
cageType
Definition cage.hpp:54
The main molecular system handler.
Functions for bond-related analyses.
Definition bond.hpp:73
File for functions that read in files).
This contains a collection of points; contains information for a particular frame.
Definition mol_sys.hpp:173
This contains per-particle information.
Definition mol_sys.hpp:152