Skip to content
Snippets Groups Projects
Commit 109919ad authored by Elias Pipping's avatar Elias Pipping
Browse files

[Cleanup] Friction writing: Move coordinate writing to friction writer

parent 90d8423f
No related branches found
No related tags found
No related merge requests found
...@@ -6,12 +6,19 @@ ...@@ -6,12 +6,19 @@
template <class ScalarVector, class Vector> template <class ScalarVector, class Vector>
FrictionWriter<ScalarVector, Vector>::FrictionWriter( FrictionWriter<ScalarVector, Vector>::FrictionWriter(
Vector const &vertexCoordinates,
Dune::BitSetVector<1> const &_boundaryNodes) Dune::BitSetVector<1> const &_boundaryNodes)
: coefficientWriter("coefficients", std::fstream::out), : coefficientWriter("coefficients", std::fstream::out),
displacementWriter("displacements", std::fstream::out), displacementWriter("displacements", std::fstream::out),
stateWriter("states", std::fstream::out), stateWriter("states", std::fstream::out),
velocityWriter("velocities", std::fstream::out), velocityWriter("velocities", std::fstream::out),
boundaryNodes(_boundaryNodes) {} boundaryNodes(_boundaryNodes) {
std::fstream vertexCoordinateWriter("coordinates", std::fstream::out);
for (size_t i = 0; i < boundaryNodes.size(); ++i)
if (boundaryNodes[i][0])
vertexCoordinateWriter << vertexCoordinates[i] << std::endl;
vertexCoordinateWriter.close();
}
template <class ScalarVector, class Vector> template <class ScalarVector, class Vector>
FrictionWriter<ScalarVector, Vector>::~FrictionWriter() { FrictionWriter<ScalarVector, Vector>::~FrictionWriter() {
......
...@@ -7,7 +7,8 @@ ...@@ -7,7 +7,8 @@
template <class ScalarVector, class Vector> class FrictionWriter { template <class ScalarVector, class Vector> class FrictionWriter {
public: public:
FrictionWriter(Dune::BitSetVector<1> const &_boundaryNodes); FrictionWriter(Vector const &vertexCoordinates,
Dune::BitSetVector<1> const &_boundaryNodes);
~FrictionWriter(); ~FrictionWriter();
......
...@@ -269,7 +269,19 @@ int main(int argc, char *argv[]) { ...@@ -269,7 +269,19 @@ int main(int argc, char *argv[]) {
parset.sub("a0.solver")); parset.sub("a0.solver"));
} }
// }}} // }}}
FrictionWriter<ScalarVector, Vector> writer(frictionalNodes);
Vector vertexCoordinates(fineVertexCount);
{
Dune::MultipleCodimMultipleGeomTypeMapper<
GridView, Dune::MCMGVertexLayout> const vertexMapper(leafView);
for (auto it = leafView.begin<dims>(); it != leafView.end<dims>(); ++it) {
auto const geometry = it->geometry();
assert(geometry.corners() == 1);
vertexCoordinates[vertexMapper.map(*it)] = geometry.corner(0);
}
}
FrictionWriter<ScalarVector, Vector> writer(vertexCoordinates,
frictionalNodes);
{ {
ScalarVector c; ScalarVector c;
myGlobalNonlinearity->coefficientOfFriction(v_initial, c); myGlobalNonlinearity->coefficientOfFriction(v_initial, c);
...@@ -289,24 +301,6 @@ int main(int argc, char *argv[]) { ...@@ -289,24 +301,6 @@ int main(int argc, char *argv[]) {
dirichletNodes); dirichletNodes);
auto multigridStep = factory.getSolver(); auto multigridStep = factory.getSolver();
{
Vector vertexCoordinates(fineVertexCount);
{
Dune::MultipleCodimMultipleGeomTypeMapper<
GridView, Dune::MCMGVertexLayout> const vertexMapper(leafView);
for (auto it = leafView.begin<dims>(); it != leafView.end<dims>();
++it) {
auto const geometry = it->geometry();
assert(geometry.corners() == 1);
vertexCoordinates[vertexMapper.map(*it)] = geometry.corner(0);
}
}
std::fstream vertexCoordinateWriter("coordinates", std::fstream::out);
for (size_t i = 0; i < fineVertexCount; ++i)
if (frictionalNodes[i][0])
vertexCoordinateWriter << vertexCoordinates[i] << std::endl;
vertexCoordinateWriter.close();
}
std::fstream iterationWriter("iterations", std::fstream::out), std::fstream iterationWriter("iterations", std::fstream::out),
relaxationWriter("relaxation", std::fstream::out); relaxationWriter("relaxation", std::fstream::out);
......
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