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;