30 double avgPrismHeight) {
33 double nanoTubeHeight;
39 nanoTubeHeight = *max_element(yCloud->box.begin(), yCloud->box.end());
43 numberMax = nanoTubeHeight / avgPrismHeight;
46 hPercent = nPrisms / numberMax * 100.0;
70 double areaXY, areaXZ, areaYZ;
80 for (
int iring = 0; iring < rings.size(); iring++) {
84 areaXY += singleAreas[0];
85 areaXZ += singleAreas[1];
86 areaYZ += singleAreas[2];
90 areaXY = areaXY / sheetArea * 100.0;
91 areaXZ = areaXZ / sheetArea * 100.0;
92 areaYZ = areaYZ / sheetArea * 100.0;
94 return {areaXY, areaXZ, areaYZ};
105 int iatomIndex, jatomIndex;
106 int ringSize =
ring.size();
107 double areaXY, areaXZ, areaYZ;
108 double x_iatom, y_iatom, z_iatom;
109 double x_jatom, y_jatom, z_jatom;
118 jatomIndex =
ring[0];
121 for (
int k = 1; k < ringSize; k++) {
122 iatomIndex =
ring[k];
127 &z_iatom, &x_jatom, &y_jatom, &z_jatom);
133 areaXY += (x_jatom + x_iatom) * (y_jatom - y_iatom);
136 areaXZ += (x_jatom + x_iatom) * (z_jatom - z_iatom);
139 areaYZ += (y_jatom + y_iatom) * (z_jatom - z_iatom);
141 jatomIndex = iatomIndex;
145 iatomIndex =
ring[0];
148 &z_iatom, &x_jatom, &y_jatom, &z_jatom);
151 areaXY += (x_jatom + x_iatom) * (y_jatom - y_iatom);
154 areaXZ += (x_jatom + x_iatom) * (z_jatom - z_iatom);
157 areaYZ += (y_jatom + y_iatom) * (z_jatom - z_iatom);
165 areaXY = fabs(areaXY);
166 areaXZ = fabs(areaXZ);
167 areaYZ = fabs(areaYZ);
169 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.