From 8bfab19a230fc60a066cbe26d7cb4e731168aafa Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Fri, 31 May 2024 10:03:44 +0200 Subject: [PATCH 1/3] added error message --- festim/generic_simulation.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/festim/generic_simulation.py b/festim/generic_simulation.py index 9efad23c4..5b260620f 100644 --- a/festim/generic_simulation.py +++ b/festim/generic_simulation.py @@ -251,6 +251,10 @@ def initialise(self): # check that dt attribute is None if the sim is steady state if not self.settings.transient and self.dt is not None: raise AttributeError("dt must be None in steady state simulations") + if self.settings.transient and self.settings.final_time is None: + raise AttributeError( + "final_time argument must be provided to settings in transient simulations" + ) if self.settings.transient and self.dt is None: raise AttributeError("dt must be provided in transient simulations") From ca2641155c523d9cfd7acb272395c8ab37e5afe3 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Fri, 31 May 2024 10:04:22 +0200 Subject: [PATCH 2/3] added test --- test/simulation/test_initialise.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/test/simulation/test_initialise.py b/test/simulation/test_initialise.py index f4b5ba1ed..2908de4a0 100644 --- a/test/simulation/test_initialise.py +++ b/test/simulation/test_initialise.py @@ -168,3 +168,29 @@ def test_error_is_raised_when_no_temp(): with pytest.raises(AttributeError, match="Temperature is not defined"): my_model.initialise() + + +def test_error_raised_when_no_final_time(): + """ + Creates a Simulation object and checks that a AttributeError is raised + when .initialise() is called without a final_time argument + """ + + my_model = F.Simulation() + + my_model.mesh = F.MeshFromVertices([0, 1, 2, 3]) + + my_model.materials = F.Material(D_0=1, E_D=0, id=1) + + my_model.T = F.Temperature(500) + + my_model.settings = F.Settings( + absolute_tolerance=1e-10, + relative_tolerance=1e-10, + transient=True, + ) + + my_model.dt = F.Stepsize(1) + + with pytest.raises(AttributeError, match="final_time argument must be provided"): + my_model.initialise() From 38677a788ebe40336be6902995c460dd74f5cc14 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Fri, 31 May 2024 10:10:02 +0200 Subject: [PATCH 3/3] fixed old test --- test/system/test_misc.py | 1 + 1 file changed, 1 insertion(+) diff --git a/test/system/test_misc.py b/test/system/test_misc.py index ec3e3804e..7ee22ee43 100644 --- a/test/system/test_misc.py +++ b/test/system/test_misc.py @@ -76,6 +76,7 @@ def test_error_transient_without_stepsize(): transient=True, absolute_tolerance=1e-10, relative_tolerance=1e-10, + final_time=10, ) my_model.dt = None