From 90d8423f7e1d11a2dc6b238075029a55c33f7f85 Mon Sep 17 00:00:00 2001 From: Elias Pipping <elias.pipping@fu-berlin.de> Date: Thu, 30 Jan 2014 13:12:49 +0100 Subject: [PATCH] [Cleanup] Friction writing: Move templates around --- src/friction_writer.cc | 15 ++++++++------- src/friction_writer.hh | 9 +++++---- src/friction_writer_tmpl.cc | 10 +--------- src/one-body-sample.cc | 2 +- 4 files changed, 15 insertions(+), 21 deletions(-) diff --git a/src/friction_writer.cc b/src/friction_writer.cc index 22cfe296..8dba3a93 100644 --- a/src/friction_writer.cc +++ b/src/friction_writer.cc @@ -4,26 +4,27 @@ #include "friction_writer.hh" -template <class BitVector> -FrictionWriter<BitVector>::FrictionWriter(BitVector const &_boundaryNodes) +template <class ScalarVector, class Vector> +FrictionWriter<ScalarVector, Vector>::FrictionWriter( + Dune::BitSetVector<1> const &_boundaryNodes) : coefficientWriter("coefficients", std::fstream::out), displacementWriter("displacements", std::fstream::out), stateWriter("states", std::fstream::out), velocityWriter("velocities", std::fstream::out), boundaryNodes(_boundaryNodes) {} -template <class BitVector> FrictionWriter<BitVector>::~FrictionWriter() { +template <class ScalarVector, class Vector> +FrictionWriter<ScalarVector, Vector>::~FrictionWriter() { stateWriter.close(); displacementWriter.close(); velocityWriter.close(); coefficientWriter.close(); } -template <class BitVector> template <class ScalarVector, class Vector> -void FrictionWriter<BitVector>::writeInfo(ScalarVector const &coefficient, - ScalarVector const &alpha, - Vector const &u, Vector const &v) { +void FrictionWriter<ScalarVector, Vector>::writeInfo( + ScalarVector const &coefficient, ScalarVector const &alpha, Vector const &u, + Vector const &v) { for (size_t i = 0; i < boundaryNodes.size(); ++i) { if (!boundaryNodes[i][0]) continue; diff --git a/src/friction_writer.hh b/src/friction_writer.hh index 7494b890..dbd28349 100644 --- a/src/friction_writer.hh +++ b/src/friction_writer.hh @@ -3,13 +3,14 @@ #include <fstream> -template <class BitVector> class FrictionWriter { +#include <dune/common/bitsetvector.hh> + +template <class ScalarVector, class Vector> class FrictionWriter { public: - FrictionWriter(BitVector const &_boundaryNodes); + FrictionWriter(Dune::BitSetVector<1> const &_boundaryNodes); ~FrictionWriter(); - template <class ScalarVector, class Vector> void writeInfo(ScalarVector const &coefficient, ScalarVector const &alpha, Vector const &u, Vector const &v); @@ -18,6 +19,6 @@ template <class BitVector> class FrictionWriter { std::fstream displacementWriter; std::fstream stateWriter; std::fstream velocityWriter; - BitVector const &boundaryNodes; + Dune::BitSetVector<1> const &boundaryNodes; }; #endif diff --git a/src/friction_writer_tmpl.cc b/src/friction_writer_tmpl.cc index 9a95b261..6b50b0f6 100644 --- a/src/friction_writer_tmpl.cc +++ b/src/friction_writer_tmpl.cc @@ -2,14 +2,6 @@ #error DIM unset #endif -#include <dune/common/bitsetvector.hh> - #include "explicitvectors.hh" -using BitVector = Dune::BitSetVector<1>; - -template class FrictionWriter<BitVector>; - -template void FrictionWriter<BitVector>::writeInfo( - ScalarVector const &coefficient, ScalarVector const &alpha, Vector const &u, - Vector const &v); +template class FrictionWriter<ScalarVector, Vector>; diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc index 0a10471c..935bf3aa 100644 --- a/src/one-body-sample.cc +++ b/src/one-body-sample.cc @@ -269,7 +269,7 @@ int main(int argc, char *argv[]) { parset.sub("a0.solver")); } // }}} - FrictionWriter<Dune::BitSetVector<1>> writer(frictionalNodes); + FrictionWriter<ScalarVector, Vector> writer(frictionalNodes); { ScalarVector c; myGlobalNonlinearity->coefficientOfFriction(v_initial, c); -- GitLab