Skip to content

Commit

Permalink
Release 0.11.27
Browse files Browse the repository at this point in the history
Merge pull request #1759 from AMICI-dev/release_0.11.27
  • Loading branch information
dweindl authored Apr 7, 2022
2 parents f02dde9 + d8f8ad6 commit 82abf37
Show file tree
Hide file tree
Showing 85 changed files with 1,827 additions and 1,516 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/test_performance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
branches:
- develop
- master
- compile_without_optimization
- sparsify_jacobian

pull_request:
branches:
Expand Down Expand Up @@ -63,7 +63,7 @@ jobs:
# import test model
- name: Import test model
run: |
check_time.sh petab_import python tests/performance/test.py import
AMICI_IMPORT_NPROCS=2 check_time.sh petab_import python tests/performance/test.py import
- name: "Upload artifact: CS_Signalling_ERBB_RAS_AKT_petab"
uses: actions/upload-artifact@v1
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test_petab_test_suite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ jobs:
--cov-report=xml --cov-append --cov=amici tests/petab_test_suite/
- name: Codecov
uses: codecov/codecov-action@v1
uses: codecov/codecov-action@v2
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./coverage.xml
Expand Down
7 changes: 2 additions & 5 deletions .github/workflows/test_pypi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,8 @@ jobs:
- name: homebrew
run: |
if [[ ${{ matrix.os }} == macos* ]] ; then \
brew install hdf5@1.10 swig gcc libomp \
&& echo "/usr/local/opt/hdf5@1.10/bin" >> $GITHUB_PATH \
&& echo LDFLAGS="-L/usr/local/lib/ -L/usr/local/opt/hdf5@1.10/lib" >> $GITHUB_ENV \
&& echo CPPFLAGS="-I/usr/local/opt/hdf5@1.10/include" >> $GITHUB_ENV \
&& echo HDF5_BASE="/usr/local/opt/hdf5@1.10/" >> $GITHUB_ENV
brew install hdf5 swig gcc libomp \
&& echo LDFLAGS="-L/usr/local/lib/" >> $GITHUB_ENV
fi
- name: Set up Python ${{ matrix.python-version }}
Expand Down
12 changes: 5 additions & 7 deletions .github/workflows/test_python_cplusplus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ jobs:
scripts/runNotebook.sh documentation/GettingStarted.ipynb
- name: Codecov Python
uses: codecov/codecov-action@v1
uses: codecov/codecov-action@v2
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./build/coverage_py.xml
Expand All @@ -122,7 +122,7 @@ jobs:
&& lcov -a coverage_cpp.info -a coverage_py.info -o coverage.info
- name: Codecov CPP
uses: codecov/codecov-action@v1
uses: codecov/codecov-action@v2
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./coverage.info
Expand Down Expand Up @@ -152,13 +152,11 @@ jobs:
# install amici dependencies
- name: homebrew
run: |
brew install hdf5@1.10 swig gcc cppcheck libomp boost \
brew install hdf5 swig gcc cppcheck libomp boost \
&& brew ls -v boost \
&& brew ls -v libomp \
&& echo "/usr/local/opt/hdf5@1.10/bin" >> $GITHUB_PATH \
&& echo LDFLAGS="-L/usr/local/lib/ -L/usr/local/opt/hdf5@1.10/lib -L/usr/local/Cellar/boost/1.78.0_1/lib/" >> $GITHUB_ENV \
&& echo CPPFLAGS="-I/usr/local/opt/hdf5@1.10/include -I/usr/local/Cellar/boost/1.78.0_1/include/" >> $GITHUB_ENV \
&& echo HDF5_BASE="/usr/local/opt/hdf5@1.10/" >> $GITHUB_ENV
&& echo LDFLAGS="-L/usr/local/lib/ -L/usr/local/Cellar/boost/1.78.0_1/lib/" >> $GITHUB_ENV \
&& echo CPPFLAGS="-I/usr/local/Cellar/boost/1.78.0_1/include/" >> $GITHUB_ENV
- name: Build AMICI
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test_sbml_semantic_test_suite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ jobs:
path: tests/amici-semantic-results

- name: Codecov SBMLSuite
uses: codecov/codecov-action@v1
uses: codecov/codecov-action@v2
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./coverage_SBMLSuite.xml
Expand Down
57 changes: 57 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,63 @@

## v0.X Series

### v0.11.27 (2022-04-04)

New features:
* Checking condition number when computing sensitivities via Newton
by @FFroehlich in https://github.com/AMICI-dev/AMICI/pull/1730
* Removed SPBCG solver by @FFroehlich in
https://github.com/AMICI-dev/AMICI/pull/1729
* Added Newton step convergence checks to steadystate solver by @FFroehlich in
https://github.com/AMICI-dev/AMICI/pull/1737
* Removed legacy options/members `amioption.newton_preeq` and `Solver::r… by
@dweindl in https://github.com/AMICI-dev/AMICI/pull/1744
* Added `ReturnData::cpu_time_total` to track total time spent in
`runAmiciSimulation` by @dweindl in
https://github.com/AMICI-dev/AMICI/pull/1743
* SBML import: Alternative algorithm for identifying conservation laws by
@dweindl in https://github.com/AMICI-dev/AMICI/pull/1748
* Use `amici.AmiciVersionError` to indicate version mismatch by @dweindl in https://github.com/AMICI-dev/AMICI/pull/1764

Performance:
* Optional parallel computation of derivatives during model import by @dweindl
in https://github.com/AMICI-dev/AMICI/pull/1740
* Sparsify jacobian by @FFroehlich in https://github.com/AMICI-dev/AMICI/pull/1766
* Speedup for models with conservation laws by @FFroehlich in https://github.com/AMICI-dev/AMICI/pull/1765
* Speedup conservation law computation by @FFroehlich in
https://github.com/AMICI-dev/AMICI/pull/1754
* Exploit stoichiometric matrix in pysb import by @FFroehlich in
https://github.com/AMICI-dev/AMICI/pull/1761
* Speedup edata construction from petab problems by @FFroehlich in
https://github.com/AMICI-dev/AMICI/pull/1746

Fixes:
* Fixed `get_model_settings` that would to setting incorrect initial states and
initial state sensitivities for models with parameter-dependent initial
states by @dweindl in https://github.com/AMICI-dev/AMICI/pull/1751
* Use correct tolerances for convergence check in Newton solver by @FFroehlich
in https://github.com/AMICI-dev/AMICI/pull/1728
* Harmonized convergence checks by @FFroehlich in
https://github.com/AMICI-dev/AMICI/pull/1731
* Made sundials' KLU_INDEXTYPE match actual klu index type by @dweindl in
https://github.com/AMICI-dev/AMICI/pull/1733
* Fixed `Model::setStateIsNonNegative` logic that would raise exceptions in
cases where it shouldn't by @dweindl in
https://github.com/AMICI-dev/AMICI/pull/1736
* Fixed undefined reference to dladdr by @kristianmeyerr in
https://github.com/AMICI-dev/AMICI/pull/1738
* Fixed HDF5 OSX intermediate group creation errors by @dweindl in
https://github.com/AMICI-dev/AMICI/pull/1741
* Fixed recent cmake-based build issues due to changed sundials library
directory by @dweindl in https://github.com/AMICI-dev/AMICI/pull/1756
* Updated Windows installation instructions by @paulflang in
https://github.com/AMICI-dev/AMICI/pull/1763

... and other contributions by @FFroehlich, @dweindl

**Full Changelog**:
https://github.com/AMICI-dev/AMICI/compare/v0.11.26...v0.11.27

### v0.11.26 (2022-03-14)

New features:
Expand Down
60 changes: 30 additions & 30 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -54,34 +54,7 @@ set(SUITESPARSE_LIBRARIES
${SUITESPARSE_DIR}/SuiteSparse_config/libsuitesparseconfig${CMAKE_STATIC_LIBRARY_SUFFIX}
)

set(SUNDIALS_LIB_DIR "${CMAKE_SOURCE_DIR}/ThirdParty/sundials/build/${CMAKE_INSTALL_LIBDIR}")
set(SUNDIALS_LIBRARIES
${SUNDIALS_LIB_DIR}/libsundials_nvecserial${CMAKE_STATIC_LIBRARY_SUFFIX}
${SUNDIALS_LIB_DIR}/libsundials_sunlinsolband${CMAKE_STATIC_LIBRARY_SUFFIX}
${SUNDIALS_LIB_DIR}/libsundials_sunlinsolklu${CMAKE_STATIC_LIBRARY_SUFFIX}
${SUNDIALS_LIB_DIR}/libsundials_sunlinsolpcg${CMAKE_STATIC_LIBRARY_SUFFIX}
${SUNDIALS_LIB_DIR}/libsundials_sunlinsolspbcgs${CMAKE_STATIC_LIBRARY_SUFFIX}
${SUNDIALS_LIB_DIR}/libsundials_sunlinsolspfgmr${CMAKE_STATIC_LIBRARY_SUFFIX}
${SUNDIALS_LIB_DIR}/libsundials_sunmatrixband${CMAKE_STATIC_LIBRARY_SUFFIX}
${SUNDIALS_LIB_DIR}/libsundials_sunmatrixdense${CMAKE_STATIC_LIBRARY_SUFFIX}
${SUNDIALS_LIB_DIR}/libsundials_sunmatrixsparse${CMAKE_STATIC_LIBRARY_SUFFIX}
${SUNDIALS_LIB_DIR}/libsundials_sunnonlinsolfixedpoint${CMAKE_STATIC_LIBRARY_SUFFIX}
${SUNDIALS_LIB_DIR}/libsundials_sunnonlinsolnewton${CMAKE_STATIC_LIBRARY_SUFFIX}
${SUNDIALS_LIB_DIR}/libsundials_cvodes${CMAKE_STATIC_LIBRARY_SUFFIX}
${SUNDIALS_LIB_DIR}/libsundials_idas${CMAKE_STATIC_LIBRARY_SUFFIX}
)
set(SUNDIALS_INCLUDE_DIRS "${CMAKE_SOURCE_DIR}/ThirdParty/sundials/build/include")

option(SUNDIALS_SUPERLUMT_ENABLE "Enable sundials SuperLUMT?" OFF)
if(SUNDIALS_SUPERLUMT_ENABLE)
set(SUNDIALS_LIBRARIES ${SUNDIALS_LIBRARIES}
${SUNDIALS_LIB_DIR}/libsundials_sunlinsolsuperlumt${CMAKE_STATIC_LIBRARY_SUFFIX}
${CMAKE_SOURCE_DIR}/ThirdParty/SuperLU_MT_3.1/lib/libsuperlu_mt_PTHREAD${CMAKE_STATIC_LIBRARY_SUFFIX}
-lblas
)
set(SUNDIALS_INCLUDE_DIRS ${SUNDIALS_INCLUDE_DIRS}
"${CMAKE_SOURCE_DIR}/ThirdParty/SuperLU_MT_3.1/SRC/")
endif()
find_package(SUNDIALS REQUIRED PATHS "${CMAKE_SOURCE_DIR}/ThirdParty/sundials/build/lib/cmake/sundials/")

set(GSL_LITE_INCLUDE_DIR "${CMAKE_SOURCE_DIR}/ThirdParty/gsl")

Expand Down Expand Up @@ -187,7 +160,6 @@ target_include_directories(${PROJECT_NAME}
PUBLIC $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include>
PUBLIC swig
PUBLIC ${GSL_LITE_INCLUDE_DIR}
PUBLIC ${SUNDIALS_INCLUDE_DIRS}
PUBLIC ${SUITESPARSE_INCLUDE_DIRS}
PUBLIC ${HDF5_INCLUDE_DIRS}
)
Expand All @@ -197,12 +169,40 @@ if(NOT "${BLAS_INCLUDE_DIRS}" STREQUAL "")
endif()

target_link_libraries(${PROJECT_NAME}
PUBLIC ${SUNDIALS_LIBRARIES}
PUBLIC SUNDIALS::generic_static
PUBLIC SUNDIALS::nvecserial_static
PUBLIC SUNDIALS::sunmatrixband_static
PUBLIC SUNDIALS::sunmatrixdense_static
PUBLIC SUNDIALS::sunmatrixsparse_static
PUBLIC SUNDIALS::sunlinsolband_static
PUBLIC SUNDIALS::sunlinsoldense_static
PUBLIC SUNDIALS::sunlinsolpcg_static
PUBLIC SUNDIALS::sunlinsolspbcgs_static
PUBLIC SUNDIALS::sunlinsolspfgmr_static
PUBLIC SUNDIALS::sunlinsolspgmr_static
PUBLIC SUNDIALS::sunlinsolsptfqmr_static
PUBLIC SUNDIALS::sunlinsolklu_static
PUBLIC SUNDIALS::sunnonlinsolnewton_static
PUBLIC SUNDIALS::sunnonlinsolfixedpoint_static
PUBLIC SUNDIALS::cvodes_static
PUBLIC SUNDIALS::idas_static
PUBLIC ${SUITESPARSE_LIBRARIES}
PUBLIC ${HDF5_LIBRARIES}
PUBLIC ${BLAS_LIBRARIES}
PUBLIC ${CMAKE_DL_LIBS}
)

option(SUNDIALS_SUPERLUMT_ENABLE "Enable sundials SuperLUMT?" OFF)
if(SUNDIALS_SUPERLUMT_ENABLE)
set(SUNDIALS_LIBRARIES ${SUNDIALS_LIBRARIES}
${SUNDIALS_LIB_DIR}/libsundials_sunlinsolsuperlumt${CMAKE_STATIC_LIBRARY_SUFFIX}
${CMAKE_SOURCE_DIR}/ThirdParty/SuperLU_MT_3.1/lib/libsuperlu_mt_PTHREAD${CMAKE_STATIC_LIBRARY_SUFFIX}
-lblas
)
target_include_directories(${PROJECT_NAME}
PUBLIC "${CMAKE_SOURCE_DIR}/ThirdParty/SuperLU_MT_3.1/SRC/")
endif()

# Create targets to make the sources show up in IDEs for convenience

# For matlab interface
Expand Down
4 changes: 4 additions & 0 deletions ThirdParty/SuiteSparse/AMD/Include/amd_internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,8 @@
#define ID SuiteSparse_long_id
#define Int_MAX SuiteSparse_long_max

#define UnsignedInt SuiteSparse_unsigned_long

#define AMD_order amd_l_order
#define AMD_defaults amd_l_defaults
#define AMD_control amd_l_control
Expand All @@ -180,6 +182,8 @@
#define ID "%d"
#define Int_MAX INT_MAX

#define UnsignedInt unsigned int

#define AMD_order amd_order
#define AMD_defaults amd_defaults
#define AMD_control amd_control
Expand Down
2 changes: 1 addition & 1 deletion ThirdParty/SuiteSparse/AMD/Source/amd_2.c
Original file line number Diff line number Diff line change
Expand Up @@ -462,7 +462,7 @@ GLOBAL void AMD_2
nvi, nvj, nvpiv, slenme, wbig, we, wflg, wnvi, ok, ndense, ncmpa,
dense, aggressive ;

unsigned Int hash ; /* unsigned, so that hash % n is well defined.*/
UnsignedInt hash ; /* unsigned, so that hash % n is well defined.*/

/*
* deg: the degree of a variable or element
Expand Down
4 changes: 4 additions & 0 deletions ThirdParty/SuiteSparse/CAMD/Include/camd_internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,8 @@
#define ID SuiteSparse_long_id
#define Int_MAX SuiteSparse_long_max

#define UnsignedInt SuiteSparse_unsigned_long

#define CAMD_order camd_l_order
#define CAMD_defaults camd_l_defaults
#define CAMD_control camd_l_control
Expand All @@ -182,6 +184,8 @@
#define ID "%d"
#define Int_MAX INT_MAX

#define UnsignedInt unsigned int

#define CAMD_order camd_order
#define CAMD_defaults camd_defaults
#define CAMD_control camd_control
Expand Down
2 changes: 1 addition & 1 deletion ThirdParty/SuiteSparse/CAMD/Source/camd_2.c
Original file line number Diff line number Diff line change
Expand Up @@ -504,7 +504,7 @@ GLOBAL void CAMD_2
nvi, nvj, nvpiv, slenme, wbig, we, wflg, wnvi, ok, ndense, ncmpa, nnull,
dense, aggressive ;

unsigned Int hash ; /* unsigned, so that hash % n is well defined.*/
UnsignedInt hash ; /* unsigned, so that hash % n is well defined.*/

/*
* deg: the degree of a variable or element
Expand Down
6 changes: 5 additions & 1 deletion ThirdParty/SuiteSparse/COLAMD/Source/colamd.c
Original file line number Diff line number Diff line change
Expand Up @@ -663,6 +663,8 @@
#define ID SuiteSparse_long_id
#define Int_MAX SuiteSparse_long_max

#define UnsignedInt SuiteSparse_unsigned_long

#define COLAMD_recommended colamd_l_recommended
#define COLAMD_set_defaults colamd_l_set_defaults
#define COLAMD_MAIN colamd_l
Expand All @@ -676,6 +678,8 @@
#define ID "%d"
#define Int_MAX INT_MAX

#define UnsignedInt unsigned int

#define COLAMD_recommended colamd_recommended
#define COLAMD_set_defaults colamd_set_defaults
#define COLAMD_MAIN colamd
Expand Down Expand Up @@ -2193,7 +2197,7 @@ PRIVATE Int find_ordering /* return the number of garbage collections */
Int col ; /* a column index */
Int max_score ; /* maximum possible score */
Int cur_score ; /* score of current column */
unsigned Int hash ; /* hash value for supernode detection */
UnsignedInt hash ; /* hash value for supernode detection */
Int head_column ; /* head of hash bucket */
Int first_col ; /* first column in hash bucket */
Int tag_mark ; /* marker value for mark array */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ extern "C" {

#include <limits.h>
#include <stdlib.h>
#include <inttypes.h>

/* ========================================================================== */
/* === SuiteSparse_long ===================================================== */
Expand All @@ -59,12 +60,13 @@ extern "C" {

#else

#define SuiteSparse_long long
#define SuiteSparse_long_max LONG_MAX
#define SuiteSparse_long_idd "ld"
#define SuiteSparse_long int64_t
#define SuiteSparse_long_max INT64_MAX
#define SuiteSparse_long_idd PRId64

#endif
#define SuiteSparse_long_id "%" SuiteSparse_long_idd
#define SuiteSparse_unsigned_long uint64_t
#endif

/* ========================================================================== */
Expand Down
8 changes: 5 additions & 3 deletions ThirdParty/SuiteSparse/include/SuiteSparse_config.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ extern "C" {

#include <limits.h>
#include <stdlib.h>
#include <inttypes.h>

/* ========================================================================== */
/* === SuiteSparse_long ===================================================== */
Expand All @@ -59,12 +60,13 @@ extern "C" {

#else

#define SuiteSparse_long long
#define SuiteSparse_long_max LONG_MAX
#define SuiteSparse_long_idd "ld"
#define SuiteSparse_long int64_t
#define SuiteSparse_long_max INT64_MAX
#define SuiteSparse_long_idd PRId64

#endif
#define SuiteSparse_long_id "%" SuiteSparse_long_idd
#define SuiteSparse_unsigned_long uint64_t
#endif

/* ========================================================================== */
Expand Down
Loading

0 comments on commit 82abf37

Please sign in to comment.