modelon-community / Assimulo

Assimulo is a simulation package for solving ordinary differential equations.
https://jmodelica.org/assimulo/index.html
GNU Lesser General Public License v3.0
70 stars 17 forks source link

2 tests are failing with sundials>=4.x #55

Closed jschueller closed 11 months ago

jschueller commented 1 year ago

the same 2 tests fail (on current master) with all sundials versions>=4.x (out of tested versions 2.7.0, 3.2.0, 4.1.0, 5.8.0, 6.5.0):

here is the test output:

======================================================================
ERROR: This tests the class Mechanical_system together with ind3 and ida
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/nose/case.py", line 197, in runTest
    self.test(*self.arg)
  File "/home/runner/work/Assimulo/Assimulo/tests/test_examples.py", line 195, in test_mech_system_pendulum3
    mech_system_pendulum.run_example('ind3',with_plots=False,with_test=True)
  File "/home/runner/.local/lib/python3.10/site-packages/Assimulo-trunk-py3.10-linux-x86_64.egg/assimulo/examples/mech_system_pendulum.py", line 60, in run_example
    t,y,yd=dae_pend.simulate(10.,100)
  File "assimulo/ode.pyx", line 185, in assimulo.ode.ODE.simulate
  File "assimulo/ode.pyx", line 308, in assimulo.ode.ODE.simulate
  File "assimulo/implicit_ode.pyx", line 129, in assimulo.implicit_ode.Implicit_ODE._simulate
  File "assimulo/implicit_ode.pyx", line 206, in assimulo.implicit_ode.Implicit_ODE._simulate
  File "assimulo/solvers/sundials.pyx", line 523, in assimulo.solvers.sundials.IDA.integrate
  File "assimulo/solvers/sundials.pyx", line 592, in assimulo.solvers.sundials.IDA.integrate
assimulo.solvers.sundials.IDAError: 'The solver took max internal steps but could not reach tout. At time 0.000087.'

======================================================================
FAIL: This tests the functionality of the property usejac.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/nose/case.py", line 197, in runTest
    self.test(*self.arg)
  File "/home/runner/work/Assimulo/Assimulo/tests/solvers/test_sundials.py", line 1055, in test_usejac
    nose.tools.assert_equal(imp_sim.statistics["nfcnjacs"], 0)
AssertionError: 28 != 0
-------------------- >> begin captured stdout << ---------------------
Final Run Statistics: --- 

 Number of steps                                 : 27
 Number of function evaluations                  : 28
 Number of Jacobian evaluations                  : 25
 Number of function eval. due to Jacobian eval.  : 28
 Number of error test failures                   : 0
 Number of nonlinear iterations                  : 28
 Number of nonlinear convergence failures        : 0

Solver options:

 Solver                       : IDA (BDF)
 Maximal order                : 5
 Suppressed algebr. variables : False
 Tolerances (absolute)        : 1e-06
 Tolerances (relative)        : 1e-06

Simulation interval    : 0.0 - 3.0 seconds.
Elapsed simulation time: 0.0005052060000139136 seconds.

--------------------- >> end captured stdout << ----------------------
PeterMeisrimelModelon commented 1 year ago

I agree that the IDA error looks worrying. We may investigate it.

On a general note: There are no current plans to make sure that Assimulo is compliant with Sundials versions > 2.7.0.