38 std::string path, std::vector<std::vector<int>> rings,
39 std::vector<std::vector<int>> nList,
41 double sheetArea,
int firstFrame) {
43 std::vector<std::vector<int>>
46 std::vector<int> nRingList;
48 std::vector<double> coverageAreaXY;
50 std::vector<double> coverageAreaXZ;
52 std::vector<double> coverageAreaYZ;
54 std::vector<double> singleAreas;
63 coverageAreaXY.resize(maxDepth - 2);
64 coverageAreaXZ.resize(maxDepth - 2);
65 coverageAreaYZ.resize(maxDepth - 2);
67 atomTypes.resize(yCloud->nop, 1);
71 for (
int ringSize = 3; ringSize <= maxDepth; ringSize++) {
78 if (ringsOneType.size() == 0) {
79 nRingList[ringSize - 3] = 0;
81 coverageAreaXY[ringSize - 3] = 0.0;
82 coverageAreaXZ[ringSize - 3] = 0.0;
83 coverageAreaYZ[ringSize - 3] = 0.0;
89 nRings = ringsOneType.size();
92 nRingList[ringSize - 3] = nRings;
96 coverageAreaXY[ringSize - 3] = singleAreas[0];
98 coverageAreaXZ[ringSize - 3] = singleAreas[1];
100 coverageAreaYZ[ringSize - 3] = singleAreas[2];
109 coverageAreaXZ, coverageAreaYZ, maxDepth, firstFrame);
int polygonRingAnalysis(std::string path, std::vector< std::vector< int > > rings, std::vector< std::vector< int > > nList, molSys::PointCloud< molSys::Point< double >, double > *yCloud, int maxDepth, double sheetArea, int firstFrame)
int writeRingNum(std::string path, int currentFrame, std::vector< int > nRings, std::vector< double > coverageAreaXY, std::vector< double > coverageAreaXZ, std::vector< double > coverageAreaYZ, int maxDepth, int firstFrame)
int writeLAMMPSdataAllRings(molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< std::vector< int > > nList, std::vector< int > atomTypes, int maxDepth, std::string path, bool isMonolayer=true)
Write a data file for rings of every type for a monolayer.