Skip to content
Snippets Groups Projects
Commit 41531aee authored by Elias Pipping's avatar Elias Pipping Committed by Elias Pipping
Browse files

Externalise the data writers

parent 411da0d6
No related branches found
No related tags found
No related merge requests found
......@@ -103,9 +103,40 @@
else if (coordinates[0] == lowerLeft[0])
;
}
// Make sure that specialNode was set and points to a frictional node
assert(specialNode != finestSize);
assert(frictionalNodes[specialNode][0]);
}
#+end_src
* Writers
#+name: createWriters
#+begin_src c++
std::fstream state_writer("state", std::fstream::out);
std::fstream displacement_writer("displacement", std::fstream::out);
std::fstream velocity_writer("velocity", std::fstream::out);
std::fstream coefficient_writer("coefficient", std::fstream::out);
#+end_src
#+name: writeData
#+begin_src c++
state_writer << alpha[specialNode][0] << " " << std::endl;
displacement_writer << u[specialNode][0] << " " << std::endl;
velocity_writer << ud[specialNode][0] << " " << std::endl;
coefficient_writer << mu
+ a * std::log(ud[specialNode].two_norm() / V0)
+ b * (alpha[specialNode] + std::log(V0 / L))
<< " " << std::endl;
#+end_src
#+name: closeWriters
#+begin_src c++
state_writer.close();
displacement_writer.close();
velocity_writer.close();
coefficient_writer.close();
#+end_src
* Main
#+begin_src c++ :tangle one-body-sample.cc :noweb yes
#ifdef HAVE_CONFIG_H
......@@ -336,8 +367,6 @@
Dune::BitSetVector<1> neumannNodes(finestSize, false);
Dune::BitSetVector<1> frictionalNodes(finestSize, false);
<<setupBoundary>>
assert(specialNode != finestSize);
assert(frictionalNodes[specialNode][0]);
auto const nodalIntegrals
= assemble_frictional<GridType, GridView, SmallVector, P1Basis>
......@@ -372,10 +401,7 @@
mySolver(parset.sub("solver.tnnmg"), refinements, solver_tolerance,
*grid, ignoreNodes);
std::fstream state_writer("state", std::fstream::out);
std::fstream displacement_writer("displacement", std::fstream::out);
std::fstream velocity_writer("velocity", std::fstream::out);
std::fstream coefficient_writer("coefficient", std::fstream::out);
<<createWriters>>
auto const L = parset.get<double>("boundary.friction.ruina.L");
auto const a = parset.get<double>("boundary.friction.ruina.a");
......@@ -461,15 +487,7 @@
std::cerr << std::endl;
}
{ // Write all kinds of data
state_writer << alpha[specialNode][0] << " " << std::endl;
displacement_writer << u[specialNode][0] << " " << std::endl;
velocity_writer << ud[specialNode][0] << " " << std::endl;
coefficient_writer << mu
+ a * std::log(ud[specialNode].two_norm() / V0)
+ b * (alpha[specialNode] + std::log(V0 / L))
<< " " << std::endl;
}
<<writeData>>
// Compute von Mises stress and write everything to a file
if (parset.get<bool>("writeVTK")) {
......@@ -491,10 +509,7 @@
<< " time steps took " << timer.elapsed()
<< "s" << std::endl;
state_writer.close();
displacement_writer.close();
velocity_writer.close();
coefficient_writer.close();
<<closeWriters>>;
Python::stop();
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment