View Issue Details

IDProjectCategoryView StatusLast Update
0000559ascendsolverpublic2013-01-25 20:36
Reporterjohn 
Assigned ToKsenija 
PrioritynormalSeverityminorReproducibilityalways
Status assignedResolutionopen 
PlatformLinuxOSUbuntuOS Version10.04 LTS
Product Version0.9.8 
Target Version1.0Fixed in Version 
Summary0000559: ASCEND doesn't compile against the IDA provided with Ubuntu 10.04 (SUNDIALS 2.4.0)
DescriptionWe need to either detect which IDA/SUNDIALS we have and disallow 2.4.0, or we should see if we can re-institute support for 2.4.0. As I recall it there was a bug with boundary traversal in 2.4.0, so maybe it's best to just disallow 2.4.0 in the SCons scripts.
TagsNo tags attached.

Relationships

Activities

Ksenija

2012-07-20 21:52

developer  

sundials.patch (765 bytes)
Index: SConstruct
===================================================================
--- SConstruct	(revision 4239)
+++ SConstruct	(working copy)
@@ -1553,8 +1553,7 @@
 # IDA test
 
 sundials_version_major_required = 2
-sundials_version_minor_min = 2
-sundials_version_minor_max = 4
+sundials_version_minor_required = 4
 
 sundials_version_text = """
 #include <sundials/sundials_config.h>
@@ -1609,8 +1608,7 @@
 	context.env['SUNDIALS_VERSION_MAJOR'] = major
 	context.env['SUNDIALS_VERSION_MINOR'] = minor
 	if major != sundials_version_major_required \
-			or minor < sundials_version_minor_min \
-			or minor > sundials_version_minor_max:
+			or minor != sundials_version_minor_required:
 		context.Result(output+" (bad version)")
 		# bad version
 		return 0
sundials.patch (765 bytes)

john

2012-12-12 13:30

administrator   ~0000931

I have been looking at SUNDIALS just now and I see that 2.5.0 is available and that it has some changes to the Dense Matrix API that we're using currently (and which we should try to change to a suitable sparse API if we can). This means that we can't support both 2.5.0 and 2.4.0 easily (and we have already lost support for 2.3.0 due to the recent boundary-crossing work and a but that was there in SUNDIALS 2.3.0).

I have made some changes in Trunk to currently support only 2.4.0, and I propose that we take a look and see what we can do to add support for 2.5.0 in future.

See also [[Building a SUNDIALS RPM for Fedora]].

Ksenija

2013-01-25 20:36

developer  

sundials-2.5.0.patch (2,513 bytes)
Index: SConstruct
===================================================================
--- SConstruct	(revision 4373)
+++ SConstruct	(working copy)
@@ -1554,7 +1554,7 @@
 
 sundials_version_major_required = 2
 sundials_version_minor_min = 2
-sundials_version_minor_max = 4
+sundials_version_minor_max = 5
 
 sundials_version_text = """
 #include <sundials/sundials_config.h>
Index: solvers/ida/idacalc.c
===================================================================
--- solvers/ida/idacalc.c	(revision 4373)
+++ solvers/ida/idacalc.c	(working copy)
@@ -255,7 +255,13 @@
 	Dense Jacobian evaluation. Only suitable for small problems!
 	Has been seen working for problems up to around 2000 vars, FWIW.
 */
-#if SUNDIALS_VERSION_MAJOR==2 && SUNDIALS_VERSION_MINOR>=4
+#if SUNDIALS_VERSION_MAJOR==2 && SUNDIALS_VERSION_MINOR==5
+int integrator_ida_djex(long int Neq, realtype tt, realtype c_j
+		, N_Vector yy, N_Vector yp, N_Vector rr
+		, IDA_MTX_T Jac, void *jac_data
+		, N_Vector tmp1, N_Vector tmp2, N_Vector tmp3
+){
+#elif SUNDIALS_VERSION_MAJOR==2 && SUNDIALS_VERSION_MINOR==4
 int integrator_ida_djex(int Neq, realtype tt, realtype c_j
 		, N_Vector yy, N_Vector yp, N_Vector rr
 		, IDA_MTX_T Jac, void *jac_data
Index: solvers/ida/idacalc.h
===================================================================
--- solvers/ida/idacalc.h	(revision 4373)
+++ solvers/ida/idacalc.h	(working copy)
@@ -33,7 +33,13 @@
 );
 
 /* dense jacobian evaluation for IDADense dense direct linear solver */
-#if SUNDIALS_VERSION_MAJOR==2 && SUNDIALS_VERSION_MINOR>=4
+#if SUNDIALS_VERSION_MAJOR==2 && SUNDIALS_VERSION_MINOR==5
+int integrator_ida_djex(long int Neq, realtype tt, realtype c_j
+		, N_Vector yy, N_Vector yp, N_Vector rr
+		, IDA_MTX_T Jac, void *jac_data
+		, N_Vector tmp1, N_Vector tmp2, N_Vector tmp3
+);
+#elif SUNDIALS_VERSION_MAJOR==2 && SUNDIALS_VERSION_MINOR==4
 int integrator_ida_djex(int Neq, realtype tt, realtype c_j
 		, N_Vector yy, N_Vector yp, N_Vector rr
 		, IDA_MTX_T Jac, void *jac_data
Index: solvers/ida/ida.h
===================================================================
--- solvers/ida/ida.h	(revision 4373)
+++ solvers/ida/ida.h	(working copy)
@@ -40,7 +40,7 @@
 #endif
 
 /* SUNDIALS 2.4.0 introduces new DlsMat in place of DenseMat */
-#if SUNDIALS_VERSION_MAJOR==2 && SUNDIALS_VERSION_MINOR==4
+#if SUNDIALS_VERSION_MAJOR==2 && SUNDIALS_VERSION_MINOR>=4
 # define IDA_MTX_T DlsMat
 # define IDADENSE_SUCCESS IDADLS_SUCCESS
 # define IDADENSE_MEM_NULL IDADLS_MEM_NULL
sundials-2.5.0.patch (2,513 bytes)

Issue History

Date Modified Username Field Change
2012-07-19 11:41 john New Issue
2012-07-19 11:41 john Status new => assigned
2012-07-19 11:41 john Assigned To => Ksenija
2012-07-20 21:52 Ksenija File Added: sundials.patch
2012-12-12 13:30 john Note Added: 0000931
2012-12-12 13:31 svn
2013-01-25 20:36 Ksenija File Added: sundials-2.5.0.patch