diff --git a/test/multidomain/boundary/stokesdarcy/1p_1p/convergencetest/manufactured_solution.py b/test/multidomain/boundary/stokesdarcy/1p_1p/convergencetest/manufactured_solution.py
index cf1faad899757d1496306c31b3a3232e62ba3ad3..e06ece60e357bfee1da173bd577eb9da113dd39e 100644
--- a/test/multidomain/boundary/stokesdarcy/1p_1p/convergencetest/manufactured_solution.py
+++ b/test/multidomain/boundary/stokesdarcy/1p_1p/convergencetest/manufactured_solution.py
@@ -1,7 +1,19 @@
+#!/usr/bin/env python
+
+"""
+This script determines the source terms needed for analytical solutions for coupled Stokes/Darcy problems.
+Given an analytical solution, it evaluates the momentum and mass balance equations and outputs source terms
+such that the balance equations are fulfilled. It furthermore calculates the Darcy velocity from a given pressure solution.
+"""
+
 import sympy as sp
 import numpy as np
 from sympy import *
 
+# case = "Rybak"
+# case = "Shiue_1"
+case = "Shiue_2"
+
 # divergence of a matrix
 def div(M):
     return np.array([sp.diff(M[0,0],x) + sp.diff(M[0,1],y) , sp.diff(M[1,0],x) + sp.diff(M[1,1],y) ])
@@ -26,7 +38,7 @@ def analyticalSolutionStokes(case):
         pFF = 2.0*x + y - 1.0
     return [vFF, pFF]
 
-vFF, pFF = analyticalSolutionStokes("Rybak")
+vFF, pFF = analyticalSolutionStokes(case)
 
 # individual terms of the Navier-Stokes eq.
 vvT = np.outer(vFF, vFF)
@@ -39,13 +51,15 @@ pI = np.array([[pFF,  0], [0,  pFF]])
 momentumFlux = - (gradV + gradVT) +pI # only Stokes
 divMomentumFlux = div(momentumFlux)
 
+print("Source terms for case", case)
+
 # solution for source term
-print("Stokes:")
-print("divV", sp.diff(vFF[0],x) + sp.diff(vFF[1], y))
-print("divMomentumFlux x:", divMomentumFlux[0])
-print("divMomentumFlux y:", divMomentumFlux[1])
+print(" \nStokes:")
+print("Source term mass:", sp.diff(vFF[0],x) + sp.diff(vFF[1], y))
+print("Source term momentum x:", divMomentumFlux[0])
+print("Source term momentum y:", divMomentumFlux[1])
 
-# analytical solutions for v and p in arcydomain (see reference given in problems)
+# analytical solutions for p in Darcy domain (see reference given in problems)
 def analyticalSolutionDarcy(case):
     if case == "Rybak":
         pD = 0.5*y*y*sp.sin(sp.pi*x)
@@ -55,16 +69,13 @@ def analyticalSolutionDarcy(case):
         pD = x*(1.0-x)*(y-1.0) + pow(y-1.0, 3)/3.0 + 2.0*x + 2.0*y + 4.0
     return pD
 
-pD = analyticalSolutionDarcy("Rybak")
+pD = analyticalSolutionDarcy(case)
 
 gradPdK = np.array([sp.diff(pD,x), sp.diff(pD,y)])
 vD = -gradPdK
 divVd = sp.diff(vD[0],x) + sp.diff(vD[1],y)
 
 print("\nDarcy:")
-print("divVd_", simplify(divVd))
+print("Source term mass:", simplify(divVd))
 print("v x:", simplify(vD[0]))
 print("v_y", simplify(vD[1]))
-
-print("\nInterface:")
-print("vD[1]_y=1 * n[1]", simplify(-1*vD[1].subs(y, 1)))