diff --git a/src/sand-wedge-data/boundaryconditions.py b/src/sand-wedge-data/boundaryconditions.py
index 5143bd93f2d13a3a20fb02141756c13c7e2af32a..05035c8075cfd0f3a14d7cabef65a0458781d6f3 100644
--- a/src/sand-wedge-data/boundaryconditions.py
+++ b/src/sand-wedge-data/boundaryconditions.py
@@ -1,14 +1,15 @@
+import math
+
 class neumannCondition:
     def __call__(self, relativeTime):
         return 0
 
 class velocityDirichletCondition:
     def __call__(self, relativeTime):
-        if relativeTime <= 0.25:
-            factor = 4*relativeTime;
-        else:
-            factor = 1
-        return -5e-5 * factor
+        finalVelocity = -5e-5
+        if relativeTime <= 0.1:
+            return finalVelocity * ( 1.0 - math.cos(relativeTime * math.pi / 0.1) ) / 2.0
+        return finalVelocity
 
 Functions = {
     'neumannCondition' : neumannCondition(),
diff --git a/src/sand-wedge.cc b/src/sand-wedge.cc
index f39d5e586f0f1696d10493fa0ca0dfd44b1697a2..42e90c146aef41e725c9b3b96ff48642b8050ada 100644
--- a/src/sand-wedge.cc
+++ b/src/sand-wedge.cc
@@ -258,7 +258,7 @@ int main(int argc, char *argv[]) {
     {
       double v_initial_const;
       velocityDirichletFunction.evaluate(0.0, v_initial_const);
-      assert(v_initial_const == 0.0);
+      assert(std::abs(v_initial_const) < 1e-14);
     }
     Vector vr_initial(fineVertexCount);
     vr_initial = 0.0;