diff --git a/mgrid_2/geom.cpp b/mgrid_2/geom.cpp index 3b3f1d9..793be7a 100644 --- a/mgrid_2/geom.cpp +++ b/mgrid_2/geom.cpp @@ -851,10 +851,16 @@ const std::vector Mesh::TopNodes() const { vector topNodes; - for (size_t i = 0; i < _outerEdgesNodes.size(); ++i) + vector outerNodes = Index_DirichletNodes(); + + for (size_t i = 0; i < outerNodes.size(); ++i) { - int nodeIndex = _outerEdgesNodes[i]; - if (abs(_xc[2*nodeIndex + 1] - 105.0) < 0.01 ) // if y-coordinate of node is 105, i.e. node is on top + int nodeIndex = outerNodes[i]; + + //cout << nodeIndex << endl; + //cout << "x: " << _xc[2*nodeIndex] << " y: " << _xc[2*nodeIndex+1] << endl; + + if (abs(_xc[2*nodeIndex + 1] - 0.105) < 0.0001 ) // if y-coordinate of node is 105, i.e. node is on top { topNodes.push_back(nodeIndex); } diff --git a/solid-cpp/ownSolver b/solid-cpp/ownSolver index 78aa557..1f80bda 100755 Binary files a/solid-cpp/ownSolver and b/solid-cpp/ownSolver differ diff --git a/solid-cpp/ownSolver.cpp b/solid-cpp/ownSolver.cpp index 2741caf..e10b2c2 100644 --- a/solid-cpp/ownSolver.cpp +++ b/solid-cpp/ownSolver.cpp @@ -111,13 +111,22 @@ int main(int argc, char **argv ) vector wetNodes = mesh_c.TopNodes(); int numberOfVertices = wetNodes.size(); + cout << numberOfVertices << " TOP NODES " << endl; + // Determine coordinates of "wet" vertices std::vector allCoords = mesh_c.GetCoords(); std::vector coords(numberOfVertices*meshDim); - for (size_t i = 0; i < numberOfVertices*meshDim; ++i) + for (size_t i = 0; i < numberOfVertices; ++i) { - coords.push_back(allCoords[2*wetNodes[i]]); // x-coord of node - coords.push_back(allCoords[2*wetNodes[i + 1]]); // y-coord of node + int currentNode = wetNodes[i]; + double x = allCoords[2*wetNodes[i]]; // x-coord of node + double y = allCoords[2*wetNodes[i] + 1]; // y-coord of node + + // cout << "x: " << x << " y: " << y << endl; + + coords[2*i] = x; + coords[2*i + 1] = y; + } std::vector vertexIDs(numberOfVertices); @@ -159,6 +168,8 @@ int main(int argc, char **argv ) vector G(Mdt.Nrows(), 0.0); Mdt.Mult(G, uv); // G = M/dt * u_{n} + + vector H = fv; for (size_t i = 0; i < Mdt.Nrows(); ++i) {