Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ExternalProject SUNDIALS 3.2.1 #1960

Open
wants to merge 122 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 110 commits
Commits
Show all changes
122 commits
Select commit Hold shift + click to select a range
4581ab4
ExternalProject SUNDIALS 3.2.1
alexsavulescu Aug 20, 2022
0a3692c
ninja needs BUILD_BYPRODUCTS in ExternalProject_Add
alexsavulescu Aug 20, 2022
d38f489
Merge branch 'master' into slds
alkino Dec 11, 2022
f36e64a
Format
alkino Dec 11, 2022
daf0008
Merge remote-tracking branch 'origin/master'
alkino May 1, 2023
857bd86
Format
alkino May 1, 2023
152e86f
Fix name of SUNR functions
alkino May 1, 2023
e613da1
Fix segfault (missing IDASetUserData) and N_VSpace_... prototypes.
nrnhines May 4, 2023
f2c6b4d
Build sundials with the same type than nrn
alkino May 4, 2023
5c5ae92
Fully remove sundials
alkino May 4, 2023
3341256
Merge remote-tracking branch 'origin/master'
alkino May 4, 2023
9a38810
IDASetStopTime should not be called for interpolation.
nrnhines May 4, 2023
e0b3ef1
ctest -R netpar passes. MPI_Comm not available from cvodeobj.cpp
nrnhines May 5, 2023
5a11a3f
Revert "ctest -R netpar passes. MPI_Comm not available from cvodeobj.…
nrnhines May 5, 2023
aeb1684
ctest -R netpar passes. Works with NRNMPI_DYNAMICLOAD.
nrnhines May 5, 2023
00b2c66
Problem translating long long foo for NRNMPI_DYNAMICLOAD
nrnhines May 5, 2023
174036f
update nrntest (cvode version 3 and no hhtable)
nrnhines May 6, 2023
554b326
Merge branch 'master' into slds
alkino May 11, 2023
56a1134
Selected messages from old digest-debug branch
nrnhines May 15, 2023
7e6761c
libcrypt for mac
nrnhines May 15, 2023
7176f4a
Merge branch 'master' into slds
nrnhines May 17, 2023
824732b
No need link libsundials_nvecparallel.a
nrnhines May 17, 2023
a2044cb
Merge branch 'master' into slds
nrnhines May 17, 2023
5e0162b
format
nrnhines May 17, 2023
c60a3eb
Left out }
nrnhines May 17, 2023
fe5c851
Revert "No need link libsundials_nvecparallel.a"
nrnhines May 17, 2023
d0bf3e7
Merge branch 'master' into slds
nrnhines May 25, 2023
65b13f5
"major.minor.patch" = h.CVode().version()
nrnhines May 26, 2023
12ddfb5
eliminate pytest warning
nrnhines May 26, 2023
84f05af
CVode 3.2.1 json data for test_nrntest_fast.py
nrnhines May 28, 2023
ffdb5fb
Merge branch 'master' into slds
alkino Jun 1, 2023
34062f3
Merge remote-tracking branch 'origin/master'
alkino Jun 1, 2023
dbfc76f
sundials nvecparallel needs MPI
alkino Jun 1, 2023
06f2bc3
Merge remote-tracking branch 'origin/slds'
alkino Jun 1, 2023
ff9bb0f
Fix FindSUNDIALS.cmake
alkino Jun 1, 2023
1a84a72
fix linkage
alkino Jun 1, 2023
910d9ac
Try to clean linkage with sundials
alkino Jun 1, 2023
7e9ddf1
Format
alkino Jun 1, 2023
5ac7685
Don't use corenrn if corenrn not set
alkino Jun 1, 2023
009a914
Fix fix and fix
alkino Jun 1, 2023
53683bf
Format
alkino Jun 1, 2023
9d6b033
trick depends
alkino Jun 1, 2023
7dbf02f
try to help sundials to find MPI
alkino Jun 1, 2023
6f92bd5
set LIBDIR
alkino Jun 2, 2023
6a4e401
-tp=haswell is not accepted by sundials
alkino Jun 2, 2023
0eda725
Merge branch 'master' into slds
alkino Jun 2, 2023
f9749ca
Merge remote-tracking branch 'origin/master'
alkino Jun 12, 2023
cfe9ef1
Remove too more spaces
alkino Jun 12, 2023
6279e08
Merge remote-tracking branch 'origin/master'
alkino Jun 12, 2023
858b829
CVodeSetFdata => CVodeSetUserData
alkino Jun 12, 2023
67b677c
Merge branch 'master' into slds
nrnhines Nov 4, 2023
3777c05
eliminate some compiler warnings
nrnhines Nov 5, 2023
8f17f69
update nrntest to master merged hines/update-t12
nrnhines Nov 5, 2023
93be65e
Merge branch 'master' into slds
nrnhines Dec 30, 2023
30ee751
on previous master merge, resolve conflict incorrectly
nrnhines Dec 30, 2023
8c46a46
Merge branch 'master' into slds
nrnhines Mar 9, 2024
9414fb6
Merge remote-tracking branch 'origin/master'
alkino May 7, 2024
7cf79d6
Merge branch 'master' into slds
nrnhines Oct 1, 2024
be164eb
some files missing in NRN_PARALLEL_SRC_FILES
nrnhines Oct 3, 2024
b40997a
ninja format
nrnhines Oct 3, 2024
30c9890
Merge branch 'master' into slds (master for test_nlayer.py conflict)
nrnhines Oct 3, 2024
d7c2d10
cvode.version() got lost in a merge
nrnhines Oct 3, 2024
fe1260f
test_kschan data for cvode 3.2.1
nrnhines Oct 4, 2024
cf0ccb1
test_nrntest_fast.py tolerance adjustment for t14
nrnhines Oct 4, 2024
f26fc9d
missing json file for ctest -R parallel::nrntest_fast
nrnhines Oct 4, 2024
8368752
cv3 version of json file for test_netcvode.py
nrnhines Oct 4, 2024
ca98ce5
Merge branch 'master' into slds
nrnhines Oct 4, 2024
eb5e85a
temporarily turn off CI tests of rxd
nrnhines Oct 4, 2024
0d4cc21
temporarily turn off (most) wheel builds and gitlab CI
nrnhines Oct 6, 2024
21c7826
adust a few tolerance values to see if more CI pass
nrnhines Oct 6, 2024
95b5cca
Merge branch 'digest-debug-2' into digest-debug-3
nrnhines Oct 7, 2024
52cd8b8
nrn_digest(i) will print the details of the i'th digest item.
nrnhines Oct 8, 2024
97b1089
missing include
nrnhines Oct 9, 2024
3277919
Allow digest when multiple threads.
nrnhines Oct 15, 2024
02c9d51
digest print solvex enter y
nrnhines Oct 15, 2024
8b4d2c2
sundial RPowerR uses hoc_pow. nrn_digest(i, "abort") calls abort() on
nrnhines Oct 17, 2024
a66cc8f
Documentation for nrn_digest and use_exp_pow_precision
nrnhines Oct 18, 2024
6910d0a
nrn_digest signature consistent with documentation
nrnhines Oct 18, 2024
932bdff
occvode.cpp -Wall free
nrnhines Oct 18, 2024
a8e8b85
Merge branch 'master' into hines/digest-debug-3
nrnhines Oct 18, 2024
50b1163
Merge branch 'master' into hines/digest-debug-3
nrnhines Oct 18, 2024
73c8c79
The configure option is NRN_ENABLE_ARCH_INDEP_EXP_POW
nrnhines Oct 18, 2024
71a629c
format
nrnhines Oct 18, 2024
4d4889e
Revert "adust a few tolerance values to see if more CI pass"
nrnhines Oct 18, 2024
befbb64
Revert "temporarily turn off (most) wheel builds and gitlab CI"
nrnhines Oct 18, 2024
083a1c8
Revert "temporarily turn off CI tests of rxd"
nrnhines Oct 18, 2024
4c5905b
Merge branch 'master' into slds
nrnhines Oct 18, 2024
ce227b4
Merge branch 'hines/digest-debug-3' into hines/cv3-digest
nrnhines Oct 18, 2024
e6017d3
Use the neuronsimulator fork of sundials
nrnhines Oct 19, 2024
4267638
passes ctest -j 8 (with "-ffp-model=strict")
nrnhines Oct 19, 2024
befec84
Merge branch 'master' into hines/cv3-digest
nrnhines Oct 21, 2024
8099fd1
Merge branch 'master' into hines/cv3-digest
nrnhines Oct 22, 2024
7c670b7
Update test/rxd/testdata for cvode3
nrnhines Oct 22, 2024
e0a6bc2
document how to update rxd test data
nrnhines Oct 22, 2024
8ab1989
Revert "Update test/rxd/testdata for cvode3"
nrnhines Oct 23, 2024
5bdaf5e
fix typo
nrnhines Oct 23, 2024
9870f3f
update rxdtest repository (e0a6bc281) 2024-10-22
nrnhines Oct 23, 2024
f0d233a
Merge branch 'master' into hines/cv3
nrnhines Oct 24, 2024
710c2c2
cd share/lib/python/neuron/tests; python test_rxd.py --save test_rxd.…
nrnhines Oct 24, 2024
45e0fc9
extend the rxd test data instructions
nrnhines Oct 24, 2024
9db5f29
propagate compiler from nrn to sundials. SUNDIALS MPI_ENABLE=OFF
nrnhines Oct 25, 2024
5de9b21
Merge branch 'master' into hines/cv3
nrnhines Oct 25, 2024
4464390
Since sundials MPI_ENABLE=OFF have our own nvector_parallel.h
nrnhines Oct 25, 2024
5614e5d
nvector_parallel.cpp agnostic with respect to MPI_Comm
nrnhines Oct 26, 2024
285dada
cast between sunindextype and long
nrnhines Oct 28, 2024
f17e9a8
update a cv3.json file.
nrnhines Oct 28, 2024
ac12c82
nrnparallel_ld follows nvector_parallel style for MPI_Comm
nrnhines Oct 28, 2024
34b82a7
relax resolution requirements so macosx will pass CI without needing
nrnhines Oct 28, 2024
4e12ea1
adjust tol of test_nrntest_fast.py::test_t14[cvode_long_double-3-t]
nrnhines Oct 28, 2024
b398627
black format for test/.../*.py
nrnhines Oct 28, 2024
68bc030
Changes after ctest coverage analysis.
nrnhines Oct 31, 2024
1c2308c
Merge branch 'master' into slds
nrnhines Oct 31, 2024
82c2f25
Replace cvode.extra_scatter_gather with h.beforestep_callback
nrnhines Nov 1, 2024
1204452
rxd tests use rxdtestdata hines/data-fix af269297
nrnhines Nov 1, 2024
11afb3b
rxd/testdata when test/rxd/3d/test_multi_gridding_mix.py not skipped
nrnhines Nov 1, 2024
c084919
Merge branch 'master' into hines/cv3
nrnhines Nov 1, 2024
f96ebe3
Replace cvode.extra_scatter_gather with h.beforestep_callback
nrnhines Nov 1, 2024
a5f2b48
use rxdtestdata hines/cvode3 721ac55a
nrnhines Nov 1, 2024
7286d43
Don't use cvode version specific filenames or keys for json data.
nrnhines Nov 2, 2024
a89f3e4
ecs_diffusion needs section to gather data.
nrnhines Nov 6, 2024
0467293
Merge branch 'master' into hines/rxd-data-fix
nrnhines Nov 6, 2024
d38be72
Merge branch 'hines/rxd-data-fix' into hines/cv3 and update testdata
nrnhines Nov 6, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -502,6 +502,24 @@ endif()
# initialize CLI11 submodule
cpp_cc_git_submodule(CLI11 BUILD PACKAGE CLI11 REQUIRED)

# =============================================================================
# Enable NRN_DIGEST
# =============================================================================
if(NRN_ENABLE_DIGEST)
set(NRN_DIGEST 1)
else()
set(NRN_DIGEST 0)
endif()

# =============================================================================
# Enable NRN_ARCH_INDEP_EXP_POW
# =============================================================================
if(NRN_ENABLE_ARCH_INDEP_EXP_POW)
set(NRN_ARCH_INDEP_EXP_POW 1)
else()
set(NRN_ARCH_INDEP_EXP_POW 0)
endif()

# =============================================================================
# Enable CoreNEURON support
# =============================================================================
Expand Down
2 changes: 0 additions & 2 deletions cmake/ConfigFileSetting.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -158,8 +158,6 @@ configure_file("${PROJECT_SOURCE_DIR}/src/nrnoc/nrnconfigargs.h.in"
"${PROJECT_BINARY_DIR}/src/nrnoc/nrnconfigargs.h" @ONLY)
configure_file("${PROJECT_SOURCE_DIR}/src/nrncvode/nrnneosm.h.in"
"${PROJECT_BINARY_DIR}/src/nrncvode/nrnneosm.h" @ONLY)
configure_file("${PROJECT_SOURCE_DIR}/src/sundials/sundials_config.h.in"
"${PROJECT_BINARY_DIR}/src/sundials/sundials_config.h" @ONLY)
configure_file("${PROJECT_SOURCE_DIR}/share/lib/nrn.defaults.in"
"${PROJECT_BINARY_DIR}/share/nrn/lib/nrn.defaults" @ONLY)
file(COPY ${PROJECT_SOURCE_DIR}/share/lib/nrnunits.lib
Expand Down
43 changes: 1 addition & 42 deletions cmake/NeuronFileLists.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -269,45 +269,6 @@ set(NRNCVODE_FILE_LIST
occvode.cpp
tqueue.cpp)

# =============================================================================
# Files in sundials directory
# =============================================================================
nrn_create_file_list(
SUNDIALS_CVODES
"${PROJECT_SOURCE_DIR}/src/sundials/cvodes"
cvband.c
cvbandpre.c
cvbbdpre.c
cvdense.c
cvdiag.c
cvodea.c
cvodes.c
cvodesio.c
cvspgmr.c)

nrn_create_file_list(
SUNDIALS_IDA
"${PROJECT_SOURCE_DIR}/src/sundials/ida"
idaband.c
idabbdpre.c
ida.c
idadense.c
idaic.c
idaio.c
idaspgmr.c)
nrn_create_file_list(
SUNDIALS_SHARED
"${PROJECT_SOURCE_DIR}/src/sundials/shared"
band.c
dense.c
iterative.c
nvector.c
nvector_serial.c
smalldense.c
spgmr.c
sundialsmath.c)
set(NRN_SUNDIALS_SRC_FILES ${SUNDIALS_CVODES} ${SUNDIALS_IDA} ${SUNDIALS_SHARED})

set(SPARSE_FILES_LIST bksub.cpp getelm.cpp lineq.cpp prmat.cpp subrows.cpp)

# scopmath sources
Expand Down Expand Up @@ -451,9 +412,7 @@ nrn_create_file_list(NRN_NRNIV_SRC_FILES ${NRN_NRNIV_SRC_DIR} ${NRNIV_FILE_LIST}
nrn_create_file_list(NRN_PARALLEL_SRC_FILES ${NRN_PARALLEL_SRC_DIR} ${NRN_PARALLEL_FILES_LIST})
if(NRN_ENABLE_MPI)
nrn_create_file_list(NRN_PARALLEL_SRC_FILES ${PROJECT_SOURCE_DIR}/src/nrniv
nvector_nrnparallel_ld.cpp)
nrn_create_file_list(NRN_PARALLEL_SRC_FILES ${PROJECT_SOURCE_DIR}/src/sundials/shared
nvector_parallel.c)
nvector_nrnparallel_ld.cpp nvector_parallel.cpp)
endif()
nrn_create_file_list(NRN_SPARSE_SRC_FILES ${PROJECT_SOURCE_DIR}/src/sparse ${SPARSE_FILES_LIST})
nrn_create_file_list(NRN_SCOPMATH_SRC_FILES ${PROJECT_SOURCE_DIR}/src/scopmath
Expand Down
58 changes: 58 additions & 0 deletions cmake/modules/FindSUNDIALS.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# =============================================================================
# Sundials
# =============================================================================

include(ExternalProject)
set(SUNDIALS_PREFIX "${THIRD_PARTY_DIRECTORY}/sundials")
set(SUNDIALS_INCLUDE_DIR "${SUNDIALS_PREFIX}/include")
set(SUNDIALS_LIB_DIR "${SUNDIALS_PREFIX}/lib")
make_directory(${SUNDIALS_INCLUDE_DIR})

set(SUNDIALS_C_FLAGS ${CMAKE_C_FLAGS})
list(REMOVE_ITEM SUNDIALS_C_FLAGS "-tp=haswell")
set(SUNDIALS_CXX_FLAGS ${CMAKE_CXX_FLAGS})
list(REMOVE_ITEM SUNDIALS_CXX_FLAGS "-tp=haswell")
include(ExternalProject)
ExternalProject_Add(
sundials-external
PREFIX "${SUNDIALS_PREFIX}"
# cmake-format: off
# GIT_REPOSITORY https://github.com/LLNL/sundials.git
# Forked to following, to allow RPowerR to use hoc_pow
GIT_REPOSITORY https://github.com/neuronsimulator/sundials.git
# GIT_TAG e2f29c34f324829302037a1492db480be8828084 6.2.0 -> CVodeMem no longer "visible" GIT_TAG
# c09e732080a214694b209032ec627c93fed45340 4
#GIT_TAG 811234254d37652954daff0ccdb7af9813736846 # 3.2.1
GIT_TAG 71b3daec18ce66a7c011be9501a31567aa5c09b6 # 3.2.1 hines/hoc_pow
# GIT_TAG 7ed895fd102226dbc52225e6b2c6e26ef1cafa0e #2.7.0
# cmake-format: on
Comment on lines +22 to +28
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nrnhines : is this LLNL/sundials@main...neuronsimulator:sundials:hines/hoc_pow only change that we need to have? Indeed it's look very trivial.

Copy link
Member

@nrnhines nrnhines Oct 29, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That is correct for Sundials version 3. We'll eventually see if changes need to be more substantial for later versions. There is some question about where to put the 10 nrn/src/nrniv/nvector_* files. They distinguish between (serial, thread, mpi) and (double, longdouble) and I don't think the changes are relevant to sundials as they have details that depend on how NEURON uses threads and mpi and NRN_ENABLE_MPI_DYNAMIC. At the moment, when
NRN_ENABLE_MPI_DYNAMIC=ON, then nm libnrniv.so | grep MPI shows nothing that points into libmpi. Instead, many things point into mpi specific interface libraries such as libnrnmpi_mpich.so and libnrnmpi_ompi.so . I think the worst case, ultimately, is that sundials gets built for each ```-DNRN_MPI_DYNAMIC="mpi;versions" and then all of sundials gets linked into each of the various libnrnmpi_.so

GIT_SHALLOW ON
GIT_PROGRESS ON
# UPDATE_COMMAND ""
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_C_FLAGS=${SUNDIALS_C_FLAGS}
-DCMAKE_CXX_FLAGS=${SUNDIALS_CXX_FLAGS}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DEXAMPLES_INSTALL=OFF
-DBUILD_ARKODE=OFF
-DBUILD_CVODES=OFF
-DBUILD_IDAS=OFF
-DBUILD_KINSOL=OFF
-DEXAMPLES_ENABLE_C=OFF
-DMPI_ENABLE=OFF
-DPTHREAD_ENABLE=ON
-DSUNDIALS_PRECISION=double
-DUSE_GENERIC_MATH=ON
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
-DBUILD_SHARED_LIBS=OFF
-DMPI_C_COMPILER=${MPI_C_COMPILER}
-DCMAKE_INSTALL_LIBDIR=${SUNDIALS_LIB_DIR}
BUILD_BYPRODUCTS
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FYI: this is needed for Ninja

<INSTALL_DIR>/lib/libsundials_ida.a <INSTALL_DIR>/lib/libsundials_cvode.a
<INSTALL_DIR>/lib/libsundials_nvecserial.a <INSTALL_DIR>/lib/libsundials_nvecpthreads.a
<INSTALL_DIR>/lib/libsundials_nvecparallel.a)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was previously discussed with Alex, but still remember less-than-ideal experiences with ExternalProject_Add during 2016-17. I am still wondering if there might be better alternatives to using nested cmake configure steps. :)

I'll leave it to @alkino and @1uc to weigh in.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My experience with ExternalProject_Add for Sundials hasn't been too bad. At least any change to a build at the nrn level propagates to re-compile and build the sundials *.a files (that link into libnrniv.so). It could be better in terms of having a build tree as a subtree in the nrn build tree. (I often use mulitple nrn/build.../ with different cmake option choices and it would be nice if the latest nrn build did not cause the previous sundial build to be overwritten. I would also prefer to avoid git status not showing the untracked folder external/sundials At the moment the sundials repository seems to begin at nrn/external/sundials/src/sundials-external, the build takes place in nrn/external/sundials/src/sundials-external-build, and the install takes place in nrn/external/sundials/(include, lib). I suppose the way we have been handling InterViews and, more recently, fmt, might provide an alternative strategy.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm all in for ExternalProject_Add 🚀 given that we can do custom build/configure commands, it will be definitely useful for upgrading to newer sundials.


add_library(SUNDIALS INTERFACE IMPORTED)
add_dependencies(SUNDIALS sundials-external)
6 changes: 0 additions & 6 deletions cmake_nrnconf.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -88,12 +88,6 @@
/* Define to the version of this package. */
#cmakedefine PACKAGE_VERSION @PACKAGE_VERSION@

/* Define SUNDIALS data type 'realtype' as 'long double' */
#cmakedefine SUNDIALS_DOUBLE_PRECISION @SUNDIALS_DOUBLE_PRECISION@

/* Use generic math functions */
#cmakedefine SUNDIALS_USE_GENERIC_MATH @SUNDIALS_USE_GENERIC_MATH@

/* Version number of package */
#cmakedefine VERSION @VERSION@

Expand Down
21 changes: 21 additions & 0 deletions docs/install/debug.md
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,27 @@ explicitly: `-DNRN_SANITIZERS=undefined` will not compile NMODL code with UBSan
enabled, you must additionally pass `-DNMODL_SANITIZERS=undefined` to enable
instrumentation of NMODL code.

#### Updating rxd test data for new versions of CVode

Updates to new versions of SUNDIALS integrators produce different,
but presumably as accurate, results. These differences can cause CI failures.
A method to update rxd test data is, from the top level nrn folder:
```
nrnivmodl test/rxd/*.mod
PYTHONPATH=./test/rxd:$PYTHONPATH pytest -s ./test/rxd/ --save ./test/rxd/testdata/tests
python share/lib/python/neuron/rxdtests/run_all.py
cp -r ./share/lib/python/neuron/rxdtests/test_data/* ./test/rxd/testdata/rxdtests/
cp -r ./test/rxd/testdata/tests/* ./test/rxd/testdata/test
rm -r -f ./test/rxd/testdata/tests
(cd share/lib/python/neuron/tests; python test_rxd.py --save test_rxd.json)
```
When everything is working again, cd to test/rxd/testdata, start a new branch,
commit, and push to ``https://github.com/neuronsimulator/rxdtestdata``.
Individual rxd tests can be run, e.g., by
```
PYTHONPATH=./test/rxd:$PYTHONPATH pytest -s ./test/rxd/3d/test_ics_currents.py
```

Profiling and performance benchmarking
--------------------------------------

Expand Down
15 changes: 15 additions & 0 deletions docs/python/simctrl/cvode.rst
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,21 @@ CVode



.. method:: CVode.version


Syntax:
``"major.minor.patch" = cvode.version()``


Description:
Returns the version string. Eg. "3.2.1"


----



.. method:: CVode.spike_stat


Expand Down
Loading
Loading