diff --git a/src/boundary_writer.cc b/src/boundary_writer.cc index 7a37208001e73301bf30c0578bf3a8de6e9539de..8649f3d85173c53dc534fcb29a7b0f88bae5fb35 100644 --- a/src/boundary_writer.cc +++ b/src/boundary_writer.cc @@ -3,6 +3,7 @@ #endif #include "boundary_writer.hh" +#include "tobool.hh" template <class ScalarVector, class Vector> BoundaryWriter<ScalarVector, Vector>::BoundaryWriter( @@ -16,7 +17,7 @@ BoundaryWriter<ScalarVector, Vector>::BoundaryWriter( std::fstream vertexCoordinateWriter(prefix + "Coordinates", std::fstream::out); for (size_t i = 0; i < boundaryNodes.size(); ++i) - if (boundaryNodes[i][0]) + if (toBool(boundaryNodes[i])) vertexCoordinateWriter << vertexCoordinates[i] << std::endl; vertexCoordinateWriter.close(); } @@ -31,7 +32,7 @@ template <class ScalarVector, class Vector> void BoundaryWriter<ScalarVector, Vector>::writeKinetics(Vector const &u, Vector const &v) { for (size_t i = 0; i < boundaryNodes.size(); ++i) { - if (!boundaryNodes[i][0]) + if (!toBool(boundaryNodes[i])) continue; displacementWriter << projector_(u[i]) << " "; diff --git a/src/friction_writer.cc b/src/friction_writer.cc index 9f07b3c2c3a5a552da9ff1a93e23a2220b29487c..175f8e6a94bfbd8c6ccede17bbe0d702b07ef51a 100644 --- a/src/friction_writer.cc +++ b/src/friction_writer.cc @@ -3,6 +3,7 @@ #endif #include "friction_writer.hh" +#include "tobool.hh" template <class ScalarVector, class Vector> FrictionWriter<ScalarVector, Vector>::FrictionWriter( @@ -23,7 +24,7 @@ template <class ScalarVector, class Vector> void FrictionWriter<ScalarVector, Vector>::writeOther( ScalarVector const &coefficient, ScalarVector const &alpha) { for (size_t i = 0; i < boundaryNodes.size(); ++i) { - if (!boundaryNodes[i][0]) + if (!toBool(boundaryNodes[i])) continue; coefficientWriter << coefficient[i] << " "; diff --git a/src/sand-wedge.cc b/src/sand-wedge.cc index e2e7ecb162707868cbe85c0e5316b46d92128834..173aa45054c36f46c97102da3aabdffc9cb0a760 100644 --- a/src/sand-wedge.cc +++ b/src/sand-wedge.cc @@ -68,6 +68,7 @@ #include <dune/tectonic/globalnonlinearity.hh> #include "assemblers.hh" +#include "tobool.hh" #include "enum_parser.cc" #include "enum_scheme.cc" #include "enum_state_model.cc" diff --git a/src/state/dieterichstateupdater.hh b/src/state/dieterichstateupdater.hh index ffb417a08d39a3e3b5ebe1d040869664dbfbd75e..30a9c6dc57a2ede08a836e5857fe715356231061 100644 --- a/src/state/dieterichstateupdater.hh +++ b/src/state/dieterichstateupdater.hh @@ -1,6 +1,7 @@ #ifndef DIETERICH_STATE_UPDATER_HH #define DIETERICH_STATE_UPDATER_HH +#include "tobool.hh" #include "stateupdater.hh" template <class ScalarVector, class Vector> @@ -56,7 +57,7 @@ template <class ScalarVector, class Vector> void DieterichStateUpdater<ScalarVector, Vector>::solve( Vector const &velocity_field) { for (size_t i = 0; i < nodes.size(); ++i) { - if (not nodes[i][0]) + if (not toBool(nodes[i])) continue; double const VoL = velocity_field[i].two_norm() / L; diff --git a/src/state/ruinastateupdater.hh b/src/state/ruinastateupdater.hh index d87870bb0716508d32176a46e08265562770e333..578f1e9fecd517dc3ce02182c4a417705a723517 100644 --- a/src/state/ruinastateupdater.hh +++ b/src/state/ruinastateupdater.hh @@ -1,6 +1,7 @@ #ifndef RUINA_STATE_UPDATER_HH #define RUINA_STATE_UPDATER_HH +#include "tobool.hh" #include "stateupdater.hh" template <class ScalarVector, class Vector> @@ -42,7 +43,7 @@ template <class ScalarVector, class Vector> void RuinaStateUpdater<ScalarVector, Vector>::solve( Vector const &velocity_field) { for (size_t i = 0; i < nodes.size(); ++i) { - if (not nodes[i][0]) + if (not toBool(nodes[i])) continue; double const VoL = velocity_field[i].two_norm() / L; diff --git a/src/tobool.hh b/src/tobool.hh new file mode 100644 index 0000000000000000000000000000000000000000..d561225dd3d4615c2d3fc31648a9f20abad9977e --- /dev/null +++ b/src/tobool.hh @@ -0,0 +1,9 @@ +#ifndef TO_BOOL_HH +#define TO_BOOL_HH + +template <class Alloc> +bool toBool(Dune::BitSetVectorConstReference<1, Alloc> x) { + return x[0]; +} + +#endif