diff --git a/common/TwoPhase.h b/common/TwoPhase.h index bdba786d..64ad2588 100644 --- a/common/TwoPhase.h +++ b/common/TwoPhase.h @@ -261,6 +261,7 @@ public: void ComputeLocal(); void ComponentAverages(); void Reduce(); + void WriteSurfaces(); void NonDimensionalize(double D, double viscosity, double IFT); void PrintAll(int timestep); int GetCubeLabel(int i, int j, int k, IntArray &BlobLabel); @@ -886,6 +887,133 @@ void TwoPhase::ComponentAverages(){ } } +void TwoPhase::WriteSurfaces(){ + + int i,j,k,n; + int ncubes=(Nx-1)*(Ny-1)*(Nz-1); + Point P,A,B,C; + + std::shared_ptr wn_mesh( new TriList() ); + wn_mesh->A.reserve(8*ncubes); + wn_mesh->B.reserve(8*ncubes); + wn_mesh->C.reserve(8*ncubes); + + std::shared_ptr ns_mesh( new TriList() ); + ns_mesh->A.reserve(8*ncubes); + ns_mesh->B.reserve(8*ncubes); + ns_mesh->C.reserve(8*ncubes); + + std::shared_ptr ws_mesh( new TriList() ); + ws_mesh->A.reserve(8*ncubes); + ws_mesh->B.reserve(8*ncubes); + ws_mesh->C.reserve(8*ncubes); + + std::shared_ptr wns_mesh( new TriList() ); + wns_mesh->A.reserve(8*ncubes); + wns_mesh->B.reserve(8*ncubes); + wns_mesh->C.reserve(8*ncubes); + + for (k=1; kA.push_back(A); + wn_mesh->B.push_back(B); + wn_mesh->C.push_back(C); + } + for (int r=0;rA.push_back(A); + ws_mesh->B.push_back(B); + ws_mesh->C.push_back(C); + } + for (int r=0;rA.push_back(A); + ns_mesh->B.push_back(B); + ns_mesh->C.push_back(C); + } + } + } + } + + std::vector meshData(4); + meshData[0].meshName = "wn-tris"; + meshData[0].mesh = wn_mesh; + meshData[1].meshName = "ws-tris"; + meshData[1].mesh = ws_mesh; + meshData[2].meshName = "ns-tris"; + meshData[2].mesh = ns_mesh; + meshData[3].meshName = "wns-tris"; + meshData[3].mesh = wns_mesh; + writeData( logcount, meshData ); + +} void TwoPhase::Reduce(){ int i;