34 double avgPrismHeight) {
37 double nanoTubeHeight;
43 nanoTubeHeight = *max_element(yCloud->box.begin(), yCloud->box.end());
47 numberMax = nanoTubeHeight / avgPrismHeight;
50 hPercent = nPrisms / numberMax * 100.0;
74 double areaXY, areaXZ, areaYZ;
84 for (
int iring = 0; iring < rings.size(); iring++) {
88 areaXY += singleAreas[0];
89 areaXZ += singleAreas[1];
90 areaYZ += singleAreas[2];
94 areaXY = areaXY / sheetArea * 100.0;
95 areaXZ = areaXZ / sheetArea * 100.0;
96 areaYZ = areaYZ / sheetArea * 100.0;
98 return {areaXY, areaXZ, areaYZ};
109 int iatomIndex, jatomIndex;
110 int ringSize =
ring.size();
111 double areaXY, areaXZ, areaYZ;
112 double x_iatom, y_iatom, z_iatom;
113 double x_jatom, y_jatom, z_jatom;
122 jatomIndex =
ring[0];
125 for (
int k = 1; k < ringSize; k++) {
126 iatomIndex =
ring[k];
131 &z_iatom, &x_jatom, &y_jatom, &z_jatom);
137 areaXY += (x_jatom + x_iatom) * (y_jatom - y_iatom);
140 areaXZ += (x_jatom + x_iatom) * (z_jatom - z_iatom);
143 areaYZ += (y_jatom + y_iatom) * (z_jatom - z_iatom);
145 jatomIndex = iatomIndex;
149 iatomIndex =
ring[0];
152 &z_iatom, &x_jatom, &y_jatom, &z_jatom);
155 areaXY += (x_jatom + x_iatom) * (y_jatom - y_iatom);
158 areaXZ += (x_jatom + x_iatom) * (z_jatom - z_iatom);
161 areaYZ += (y_jatom + y_iatom) * (z_jatom - z_iatom);
169 areaXY = fabs(areaXY);
170 areaXZ = fabs(areaXZ);
171 areaYZ = fabs(areaYZ);
173 return {areaXY, areaYZ, areaXZ};
int unwrappedCoordShift(molSys::PointCloud< molSys::Point< double >, double > *yCloud, int iatomIndex, int jatomIndex, double *x_i, double *y_i, double *z_i, double *x_j, double *y_j, double *z_j)
Shift particles (unwrapped coordinates)
Topological network criteria functions.
std::vector< double > projAreaSingleRing(molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< int > ring)
Calculates the projected area on the XY, YZ and XZ planes.
double normHeightPercent(molSys::PointCloud< molSys::Point< double >, double > *yCloud, int nPrisms, double avgPrismHeight)
std::vector< double > calcCoverageArea(molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< std::vector< int >> rings, double sheetArea)
This contains a collection of points; contains information for a particular frame.
This contains per-particle information.