From 28ef3afa6ddf5dbdd404906b983feed3088e9908 Mon Sep 17 00:00:00 2001
From: David Seus <david.seus@ians.uni-stuttgart.de>
Date: Thu, 7 Mar 2019 17:39:21 +0100
Subject: [PATCH] add _init_subdomains() to self.initialise() and add defence
 against forgetting to run self.set_parameters

---
 LDDsimulation.py | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/LDDsimulation.py b/LDDsimulation.py
index ce9bdb3..5f2a854 100644
--- a/LDDsimulation.py
+++ b/LDDsimulation.py
@@ -82,6 +82,8 @@ class LDDsimulation(object):
         ## Private variables
         # The number of subdomains are counted by self.init_meshes_and_markers()
         self._number_of_subdomains = 0
+        # variable to check if self.set_parameters() has been called
+        self._parameters_set = False
         # list of objects of class DomainPatch initialised by self._init_subdomains()
         self.subdomain = []
 
@@ -92,7 +94,7 @@ class LDDsimulation(object):
                        interface_def_points: tp.List[tp.List[df.Point]],#
                        adjacent_subdomains: tp.List[np.ndarray],#
                        mesh_resolution: float,#
-                       viscosity: tp.Dict[int, float],#
+                       viscosity: tp.Dict[int, tp.List[float]],#
                        porosity: tp.Dict[int, float],#
                        L: tp.Dict[int, tp.List[float]],#
                        lambda_param: tp.Dict[int, tp.List[float]])-> None:
@@ -107,10 +109,18 @@ class LDDsimulation(object):
         self.porosity = porosity
         self.L = L
         self.lambda_param = lambda_param
+        self._parameters_set = True
 
     def initialise(self) -> None:
+        """ initialise LDD simulation
+
+        Public method to call all the init methods of the LDD simulation.
+        """
+        if not self._parameters_set:
+            raise RuntimeError("You forgott to run self.set_parameters(**kwds)")
         self._init_meshes_and_markers()
         self._init_interfaces()
+        self._init_subdomains()
 
 
     ## Private methods
@@ -245,7 +255,7 @@ class LDDsimulation(object):
                     mesh = self.mesh_subdomain[subdom_num],#
                     viscosity = self.viscosity[subdom_num],#
                     porosity = self.porosity[subdom_num],#
-                    interfaces = interface_list,#
+                    has_interface = interface_list,#
                     L = self.L[subdom_num],#
                     lambda_param = self.lambda_param[subdom_num]#
                     ))
-- 
GitLab