diff --git a/src/friction_writer.cc b/src/friction_writer.cc index 22cfe296f887343a1fb0121cd111e1d02ad51455..8dba3a93eb3bce4e86524ad5f0d7f056e0965330 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 7494b890537a9eb8f83af0828fdec2ee4ea386d8..dbd283497718867787db17138763904150362e10 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 9a95b2611f6977c56650d6018cfa92514caa1c00..6b50b0f6efe8724233ca3bc992063332317a60f4 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 0a10471c91cdb280817eebd6ad6c3a99c337ad48..935bf3aa7cc296b5d2d94c353f7426ead503f20a 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);