void Partition::GetAxisData(stp_axis2_placement_3d* axis, GeometryData& data) { CVector3D cV1(axis->axis()->direction_ratios()->get(0), axis->axis()->direction_ratios()->get(1), axis->axis()->direction_ratios()->get(2)); if(axis->ref_direction()) { CVector3D cV2(axis->ref_direction()->direction_ratios()->get(0), axis->ref_direction()->direction_ratios()->get(1), axis->ref_direction()->direction_ratios()->get(2)); data.verRefDirection = cV2; } else { CVector3D cV2(0.0, 0.0, 0.0); data.verRefDirection = cV2; } CPoint3D cP(axis->location()->coordinates()->get(0), axis->location()->coordinates()->get(1), axis->location()->coordinates()->get(2)); cP /= ZOOMTIME; data.verAxis = cV1; data.point = cP; }
int main(int argc, char *argv[]) { # include "setRootCase.H" # include "createTime.H" # include "createMesh.H" # include "createRandom.H" reducedUnits rU(runTime, mesh); constantMoleculeProperties cP (mesh, rU); polyMoleculeCloud molecules ( runTime, mesh, rU, cP, rndGen, "mdInitialise", true ); IOstream::defaultPrecision(15); if (!mesh.write()) { FatalErrorIn(args.executable()) << "Failed writing moleculeCloud." << nl << exit(FatalError); } Info<< nl << "ClockTime = " << runTime.elapsedClockTime() << " s" << nl << endl; Info << nl << "End\n" << endl; return 0; }
void Cell::update(){ upToDate = false; if(upToDate){ return; } numberOfFaces = 0; vertices.clear(); if(faces(N) != 0 && faces(N)->isUncovered()){ numberOfFaces++; Vertex * A, * B; A = (faces(N))->getVertexA(); // NW B = (faces(N))->getVertexB(); // NE if(vertices.empty()){ vertices.push_back(A); vertices.push_back(B); } else{ if(A != vertices.back()){ vertices.push_back(A); } if(B != vertices.front()){ vertices.push_back(B); } } } if(faces(E) != 0 && faces(E)->isUncovered()){ numberOfFaces++; Vertex * A, * B; A = (faces(E))->getVertexA(); // SE B = (faces(E))->getVertexB(); // NE if(vertices.empty()){ vertices.push_back(B); vertices.push_back(A); } else{ if(B != vertices.back()){ vertices.push_back(B); } if(A != vertices.front()){ vertices.push_back(A); } } } if(faces(S) != 0 && faces(S)->isUncovered()){ numberOfFaces++; Vertex * A, * B; A = (faces(S))->getVertexA(); B = (faces(S))->getVertexB(); if(vertices.empty()){ vertices.push_back(B); vertices.push_back(A); } else{ if(B != vertices.back()){ vertices.push_back(B); } if(A != vertices.front()){ vertices.push_back(A); } } } if(faces(W) != 0 && faces(W)->isUncovered()){ numberOfFaces++; Vertex * A, * B; A = (faces(W))->getVertexA(); B = (faces(W))->getVertexB(); if(vertices.empty()){ vertices.push_back(A); vertices.push_back(B); } else{ if(A != vertices.back()){ vertices.push_back(A); } if(B != vertices.front()){ vertices.push_back(B); } } } if(faces(B) != 0){ numberOfFaces++; } /*vector<Vertex*>::iterator it; cout << "Here are the vertices: " << endl; for(it = vertices.begin(); it != vertices.end(); it++){ cout << (*it)->getCoord() << ". " << (*it) << endl; }*/ /* for(int k = 0; k < faces.length()-1; k++){ if(faces(k) != 0){ numberOfFaces++; Vertex * A, * B; A = (faces(k))->getVertexA(); B = (faces(k))->getVertexB(); if(vertices.empty()){ vertices.push_back(A); vertices.push_back(B); } else{ if(A != vertices.back()){ vertices.push_back(A); } if(B != vertices.front()){ vertices.push_back(B); } } } }*/ numberOfVertices = vertices.size(); double signedVolume = 0; for(int k = 0; k < vertices.size(); k++){ int kP = (k+1) % vertices.size(); Coord c, cP; c = vertices[k]->getCoord(); cP = vertices[kP]->getCoord(); signedVolume += c(0)*cP(1) - cP(0)*c(1); } signedVolume /= 2; if(!overrideVolume){ volume = abs(signedVolume); } centroid = 0; for(int k = 0; k < vertices.size(); k++){ int kP = (k+1) % vertices.size(); Coord c, cP; c = vertices[k]->getCoord(); cP = vertices[kP]->getCoord(); double temp = c(0)*cP(1) - cP(0)*c(1); centroid(0) += (c(0)+cP(0))*temp; centroid(1) += (c(1)+cP(1))*temp; } centroid /= 6*signedVolume; //upToDate = true; }