From 5c88120c62156f9ba082b0f36e2630cdeba8e80c Mon Sep 17 00:00:00 2001 From: Jessica Mitchell Date: Wed, 17 Jan 2024 11:40:22 +0100 Subject: [PATCH 01/19] add nestml and nestdesktoplogos --- doc/htmldoc/static/img/nestdesktop022023.svg | 120 +++++++++++++++++++ doc/htmldoc/static/img/nestml022023.svg | 95 +++++++++++++++ 2 files changed, 215 insertions(+) create mode 100644 doc/htmldoc/static/img/nestdesktop022023.svg create mode 100644 doc/htmldoc/static/img/nestml022023.svg diff --git a/doc/htmldoc/static/img/nestdesktop022023.svg b/doc/htmldoc/static/img/nestdesktop022023.svg new file mode 100644 index 0000000000..d688ec8c2f --- /dev/null +++ b/doc/htmldoc/static/img/nestdesktop022023.svg @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/htmldoc/static/img/nestml022023.svg b/doc/htmldoc/static/img/nestml022023.svg new file mode 100644 index 0000000000..07b6832c5c --- /dev/null +++ b/doc/htmldoc/static/img/nestml022023.svg @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + From b09167db18c5468e1296c140b376a6b976bc7be6 Mon Sep 17 00:00:00 2001 From: Jessica Mitchell Date: Wed, 17 Jan 2024 11:54:29 +0100 Subject: [PATCH 02/19] modify heading --- doc/htmldoc/installation/docker.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/htmldoc/installation/docker.rst b/doc/htmldoc/installation/docker.rst index 5afcc3fd31..c0580b6f1b 100644 --- a/doc/htmldoc/installation/docker.rst +++ b/doc/htmldoc/installation/docker.rst @@ -163,7 +163,7 @@ After booting, a URL is presented. Click on it or copy it to your browser. .. _docker_win: Run NEST on Windows |windows| -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +----------------------------- .. important:: From cd691963eab25083a6eaf37e56a70f6b9545a490 Mon Sep 17 00:00:00 2001 From: Jessica Mitchell Date: Tue, 27 Feb 2024 21:21:44 +0100 Subject: [PATCH 03/19] remove hpc install temporarily --- doc/htmldoc/installation/index.rst | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/doc/htmldoc/installation/index.rst b/doc/htmldoc/installation/index.rst index b785ff2adc..2c4bc1a2e7 100644 --- a/doc/htmldoc/installation/index.rst +++ b/doc/htmldoc/installation/index.rst @@ -4,11 +4,12 @@ Install NEST ============ -.. grid:: 3 +.. grid:: 2 :gutter: 1 .. grid-item-card:: |user| Install a pre-built NEST package using :class-title: sd-d-flex-row sd-align-minor-center + :columns: 4 * :ref:`Docker (cross-platform) ` (Includes NESTML) @@ -20,20 +21,18 @@ Install NEST .. grid-item-card:: |dev| Source install :class-title: sd-d-flex-row sd-align-minor-center + :columns: 4 If you want to do development with NEST * :ref:`dev_install` - .. grid-item-card:: |admin| HPC install - :class-title: sd-d-flex-row sd-align-minor-center - - If you are working with HPC systems - - * :ref:`Install NEST for supercomputers and clusters ` +.. grid:: 2 + :gutter: 1 .. grid-item-card:: |desktop| :class-title: sd-d-flex-row sd-align-minor-center + :columns: 4 A graphical user interface, ideal for learning and teaching concepts regarding neural networks in classrooms and workshops. @@ -44,6 +43,7 @@ Install NEST .. grid-item-card:: |nestml| :class-title: sd-d-flex-row sd-align-minor-center + :columns: 4 Install the NEST modeling language to create and customize models From ec8545094c4a6ad96e14046ddf2d0589c0de9851 Mon Sep 17 00:00:00 2001 From: Jessica Mitchell Date: Thu, 29 Feb 2024 13:09:12 +0100 Subject: [PATCH 04/19] add css to make try it on ebrains button more buttony --- doc/htmldoc/static/css/custom.css | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/doc/htmldoc/static/css/custom.css b/doc/htmldoc/static/css/custom.css index 78da2cc40f..57c9ce3616 100644 --- a/doc/htmldoc/static/css/custom.css +++ b/doc/htmldoc/static/css/custom.css @@ -97,7 +97,27 @@ section#kernel-attributes-nest-nestmodule dd { border: none; border-bottom: 1px solid #ddd; } +.imgbutton { + background-color: white; + outline-color: lightgray !important; + outline-style: solid !important; + outline-width: 1px !important; + padding-top: 20px !important; + padding-bottom: 20px !important; + box-shadow: 3px 3px lightgray !important; +} + +.imgbutton:hover { + + background-color: white; + outline-color: var(--nest-orange) !important; + outline-style: solid !important; + outline-width: 1px !important; + padding-top: 20px !important; + padding-bottom: 20px !important; + box-shadow: 3px 3px var(--nest-orange) !important; +} /************************************************************* * Rules for mermaid diagrams *************************************************************/ From c44627895bf1abadde4b674251c748888df326ba Mon Sep 17 00:00:00 2001 From: Jessica Mitchell Date: Thu, 29 Feb 2024 13:09:33 +0100 Subject: [PATCH 05/19] add card in install for installation free service --- doc/htmldoc/installation/index.rst | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/doc/htmldoc/installation/index.rst b/doc/htmldoc/installation/index.rst index 2c4bc1a2e7..c81f4d4d10 100644 --- a/doc/htmldoc/installation/index.rst +++ b/doc/htmldoc/installation/index.rst @@ -27,6 +27,20 @@ Install NEST * :ref:`dev_install` + .. grid-item-card:: |launch| Try NEST installation-free + :class-title: sd-d-flex-row sd-align-minor-center + :columns: 4 + + With the JupyterHub service from EBRAINS you can + try out NEST (and many other tools) directly in your browser. + + .. rst-class:: imgbutton + + .. image:: https://nest-simulator.org/TryItOnEBRAINS.png + :target: https://lab.ebrains.eu/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnest%2Fnest-simulator-examples&urlpath=lab%2Ftree%2Fnest-simulator-examples%2Fnotebooks%2Fnotebooks%2Fone_neuron.ipynb&branch=main + + For more info see :ref:`our guide to running notebooks ` + .. grid:: 2 :gutter: 1 @@ -73,7 +87,7 @@ If installation didn't work, see the :ref:`troubleshooting section Date: Thu, 29 Feb 2024 13:53:25 +0100 Subject: [PATCH 06/19] add requirement carousel --- doc/requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/requirements.txt b/doc/requirements.txt index b41e49ad1f..8d7d35a84e 100644 --- a/doc/requirements.txt +++ b/doc/requirements.txt @@ -26,6 +26,7 @@ seaborn>=0.12.2 sphinx>=6.2.1 sphinx_autobuild>=2021.3.14 sphinx-copybutton>=0.5.2 +sphinx-carousel sphinx-notfound-page>=0.8.3 sphinx-design>=0.4.1 sphinx-gallery>=0.13.0 From d7b1d6852490ddaee59d588fd86224f6bc21eaf5 Mon Sep 17 00:00:00 2001 From: Jessica Mitchell Date: Thu, 29 Feb 2024 14:03:18 +0100 Subject: [PATCH 07/19] remove hpc install instructions and admin page not used, move minimal config to cmake options --- doc/htmldoc/installation/admin.rst | 26 --------- doc/htmldoc/installation/cmake_options.rst | 23 ++++++++ doc/htmldoc/installation/hpc_install.rst | 61 ---------------------- doc/htmldoc/installation/index.rst | 1 - doc/htmldoc/installation/noenv_install.rst | 5 +- 5 files changed, 24 insertions(+), 92 deletions(-) delete mode 100644 doc/htmldoc/installation/admin.rst delete mode 100644 doc/htmldoc/installation/hpc_install.rst diff --git a/doc/htmldoc/installation/admin.rst b/doc/htmldoc/installation/admin.rst deleted file mode 100644 index c95367944e..0000000000 --- a/doc/htmldoc/installation/admin.rst +++ /dev/null @@ -1,26 +0,0 @@ -.. _admin_install: - -Administrator installation instructions ---------------------------------------- - -If you need to deploy NEST on a machine - - -* Check out our guides to :ref:`optimizing NEST for HPC systems ` - -Configure HPC systems -~~~~~~~~~~~~~~~~~~~~~ - -Here are some :ref:`configuration options ` that may be useful on supercomputers and large clusters. - -Docker install -~~~~~~~~~~~~~~ - -Check out the :ref:`docker installation instructions `. - - -See the `nest-docker README `_ to find out more. - - - - diff --git a/doc/htmldoc/installation/cmake_options.rst b/doc/htmldoc/installation/cmake_options.rst index 8e919d627a..39c69c0dc8 100644 --- a/doc/htmldoc/installation/cmake_options.rst +++ b/doc/htmldoc/installation/cmake_options.rst @@ -40,6 +40,29 @@ NEST allows for several configuration options for custom builds: .. _modelset_config: +Minimal configuration +~~~~~~~~~~~~~~~~~~~~~~ + + +NEST can be compiled without any external packages; such a configuration may be useful for initial porting to a new supercomputer. +However, this implies several restrictions: + +- Some neuron and synapse models will not be available, as they depend on ODE solvers from the GNU Scientific Library. +- The Python extension will not be available +- Multi-threading and parallel computing facilities will be disabled. + +To configure NEST for compilation without external packages, use the following command:: + + cmake -DCMAKE_INSTALL_PREFIX:PATH= \ + -Dwith-python=OFF \ + -Dwith-gsl=OFF \ + -Dwith-readline=OFF \ + -Dwith-ltdl=OFF \ + -Dwith-openmp=OFF \ + + +See the :ref:`CMake Options ` to further adjust settings for your system. + Select built-in models ~~~~~~~~~~~~~~~~~~~~~~ diff --git a/doc/htmldoc/installation/hpc_install.rst b/doc/htmldoc/installation/hpc_install.rst deleted file mode 100644 index 0a926fcd43..0000000000 --- a/doc/htmldoc/installation/hpc_install.rst +++ /dev/null @@ -1,61 +0,0 @@ -.. _hpc_install: - -High Performance Computer Systems Installation -================================================ - -How you want to install NEST on a supercomputer or cluster will depend on your needs -and how the system is set up. - - - -Source install ---------------- - -See our full guide to installing :ref:`NEST from source `, which allows you to control -the configuration options. - - -Minimal configuration -~~~~~~~~~~~~~~~~~~~~~~ - - -NEST can be compiled without any external packages; such a configuration may be useful for initial porting to a new supercomputer. -However, this implies several restrictions: - -- Some neuron and synapse models will not be available, as they depend on ODE solvers from the GNU Scientific Library. -- The Python extension will not be available -- Multi-threading and parallel computing facilities will be disabled. - -To configure NEST for compilation without external packages, use the following command:: - - cmake -DCMAKE_INSTALL_PREFIX:PATH= \ - -Dwith-python=OFF \ - -Dwith-gsl=OFF \ - -Dwith-readline=OFF \ - -Dwith-ltdl=OFF \ - -Dwith-openmp=OFF \ - - -See the :ref:`CMake Options ` to further adjust settings for your system. - - -NEST docker ------------ - -Alternatively, you can set up the pre-built :ref:`NEST docker container ` that contains -everything you need for NEST, as well as options like NEST server, Jupyterlab, or :doc:`NEST Desktop `. -Our docker container also comes with :doc:`NESTML `. - -Connect to remote machine - NEST Server ---------------------------------------- - -NEST Server can be deployed on a remote machine such as a workstation or cluster, and users -can access the NEST simulation engine through the RESTful API on their laptops. - -See the :ref:`guide to NEST server ` to learn more. - - -.. seealso:: - - - Check out our guides to :ref:`optimizing NEST for HPC systems ` diff --git a/doc/htmldoc/installation/index.rst b/doc/htmldoc/installation/index.rst index 2c4bc1a2e7..5303b9fdf7 100644 --- a/doc/htmldoc/installation/index.rst +++ b/doc/htmldoc/installation/index.rst @@ -66,7 +66,6 @@ If installation didn't work, see the :ref:`troubleshooting section ` or the :ref:`High Performance Computing ` instructions to +:ref:`CMake Options ` instructions to further adjust settings for your system. * If not already installed on your system, the following packages are recommended. @@ -95,6 +95,3 @@ sourcing the script: .. code-block:: sh source /bin/nest_vars.sh - - - From 3f0ced199af2a69b07e876268b80d68c572cd3d7 Mon Sep 17 00:00:00 2001 From: Jessica Mitchell Date: Thu, 29 Feb 2024 14:39:58 +0100 Subject: [PATCH 08/19] add carousel --- doc/requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/requirements.txt b/doc/requirements.txt index b41e49ad1f..8d7d35a84e 100644 --- a/doc/requirements.txt +++ b/doc/requirements.txt @@ -26,6 +26,7 @@ seaborn>=0.12.2 sphinx>=6.2.1 sphinx_autobuild>=2021.3.14 sphinx-copybutton>=0.5.2 +sphinx-carousel sphinx-notfound-page>=0.8.3 sphinx-design>=0.4.1 sphinx-gallery>=0.13.0 From 80324c091c2335f71f48f8570cc93e471531d7c6 Mon Sep 17 00:00:00 2001 From: Jessica Mitchell Date: Fri, 1 Mar 2024 11:36:25 +0100 Subject: [PATCH 09/19] fix links --- .../connect_nest/using_nest_with_music.rst | 5 ++--- .../guidelines/coding_guidelines_check.rst | 2 +- .../guidelines/coding_guidelines_cpp.rst | 2 +- .../guidelines/styleguide/styleguide.rst | 2 +- .../workflows/development_workflow.rst | 5 +++-- .../user_documentation_workflow.rst | 2 +- .../developer_space/workflows/nest_with_ides.rst | 6 +++--- doc/htmldoc/faqs/faqs.rst | 2 +- doc/htmldoc/faqs/qa-precise-spike-times.rst | 4 ++-- doc/htmldoc/installation/user.rst | 2 +- doc/htmldoc/model_details/HillTononiModels.ipynb | 4 ++-- .../aeif_models_implementation.ipynb | 8 ++++---- doc/htmldoc/neurons/exact-integration.rst | 2 +- .../simulations_with_precise_spike_times.rst | 15 ++++++--------- models/aeif_psc_delta_clopath.h | 3 +-- models/clopath_synapse.h | 2 +- models/glif_psc_double_alpha.h | 2 +- models/hh_cond_beta_gap_traub.h | 8 +++----- models/hh_psc_alpha_clopath.h | 4 +--- models/sigmoid_rate_gg_1998.h | 2 +- pynest/examples/Potjans_2014/README.rst | 2 +- .../iaf_tum_2000_short_term_depression.py | 2 +- pynest/examples/intrinsic_currents_spiking.py | 2 +- pynest/examples/sonata_example/sonata_network.py | 4 ++-- 24 files changed, 42 insertions(+), 50 deletions(-) diff --git a/doc/htmldoc/connect_nest/using_nest_with_music.rst b/doc/htmldoc/connect_nest/using_nest_with_music.rst index 09bc75e9a0..cc89b298cb 100644 --- a/doc/htmldoc/connect_nest/using_nest_with_music.rst +++ b/doc/htmldoc/connect_nest/using_nest_with_music.rst @@ -7,7 +7,7 @@ Introduction ------------ NEST supports the `MUSIC interface -`__, a standard by +`__, a standard by the INCF, which allows the transmission of data between applications at runtime [1]_. It can be used to couple NEST with other simulators, with applications for stimulus generation and data analysis and visualization @@ -28,7 +28,7 @@ Reference .. [1] Djurfeldt M, et al. 2010. Run-time interoperability between neuronal simulators based on the MUSIC framework. Neuroinformatics, 8. `doi:10.1007/s12021-010-9064-z* - `__. + `_. Sending and receiving spike events ---------------------------------- @@ -384,4 +384,3 @@ which yields the following output: Nov 23 11:33:28 SimulationManager::run [Info]: Simulation finished. (array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9.]),) - diff --git a/doc/htmldoc/developer_space/guidelines/coding_guidelines_check.rst b/doc/htmldoc/developer_space/guidelines/coding_guidelines_check.rst index 4672a879e5..7381d5682c 100644 --- a/doc/htmldoc/developer_space/guidelines/coding_guidelines_check.rst +++ b/doc/htmldoc/developer_space/guidelines/coding_guidelines_check.rst @@ -76,7 +76,7 @@ Our ``clang-format`` configuration is specified in the ``clang-format`` is run automatically with ``pre-commit``. We supply the -`build_support/format_all_c_c++_files.sh `_ +`build_support/format_all_c_c++_files.sh `_ shell script to run ``clang-format`` manually: .. code-block:: bash diff --git a/doc/htmldoc/developer_space/guidelines/coding_guidelines_cpp.rst b/doc/htmldoc/developer_space/guidelines/coding_guidelines_cpp.rst index f8ce4360ef..83460ab19c 100644 --- a/doc/htmldoc/developer_space/guidelines/coding_guidelines_cpp.rst +++ b/doc/htmldoc/developer_space/guidelines/coding_guidelines_cpp.rst @@ -83,7 +83,7 @@ Coding style In the following the coding style guidelines are explained by example and some parts are adopted from `Google C++ Style -Guide `_. +Guide `_. The #define guard ~~~~~~~~~~~~~~~~~ diff --git a/doc/htmldoc/developer_space/guidelines/styleguide/styleguide.rst b/doc/htmldoc/developer_space/guidelines/styleguide/styleguide.rst index ba2d6a4ef1..c686881982 100644 --- a/doc/htmldoc/developer_space/guidelines/styleguide/styleguide.rst +++ b/doc/htmldoc/developer_space/guidelines/styleguide/styleguide.rst @@ -267,7 +267,7 @@ Roles look like this ``:role-name:`content```. We will only cover a few examples here. You can find more information at the following links: -* `reStructuredText User Documentation `_ +* `reStructuredText User Documentation `_ * `reStructuredText Primer `_ diff --git a/doc/htmldoc/developer_space/workflows/development_workflow.rst b/doc/htmldoc/developer_space/workflows/development_workflow.rst index 7a0e32c619..d0d6a1ad8d 100644 --- a/doc/htmldoc/developer_space/workflows/development_workflow.rst +++ b/doc/htmldoc/developer_space/workflows/development_workflow.rst @@ -197,7 +197,7 @@ It is extremely important to work on the latest available source code. If you work on old code, it is possible that in the meantime, someone else has already made more changes to the same files that you have also edited. This will result in `merge conflicts -`_ +`_ and resolving these is extra work for both the development team and you. It also muddles up the ``commit history`` of the source code. @@ -326,7 +326,8 @@ Creating a pull request When you feel your work is finished, you can create a pull request (PR). GitHub has a nice help page that outlines the process for -`submitting pull requests `_. +`submitting pull requests +`_. Please check out our :ref:`coding style guidelines ` and :ref:`code review guidelines ` prior to submitting it. diff --git a/doc/htmldoc/developer_space/workflows/documentation_workflow/user_documentation_workflow.rst b/doc/htmldoc/developer_space/workflows/documentation_workflow/user_documentation_workflow.rst index d8d40f612f..1563c37539 100644 --- a/doc/htmldoc/developer_space/workflows/documentation_workflow/user_documentation_workflow.rst +++ b/doc/htmldoc/developer_space/workflows/documentation_workflow/user_documentation_workflow.rst @@ -243,7 +243,7 @@ Read the Docs NEST documentation is hosted on Read the Docs. If you would like to view the documentation on Read the Docs, you can set up your own account and link it with your Github account. -See `this guide `_ +See `this guide `_ for more information. .. toctree:: diff --git a/doc/htmldoc/developer_space/workflows/nest_with_ides.rst b/doc/htmldoc/developer_space/workflows/nest_with_ides.rst index 9665021a82..de10e2d08a 100644 --- a/doc/htmldoc/developer_space/workflows/nest_with_ides.rst +++ b/doc/htmldoc/developer_space/workflows/nest_with_ides.rst @@ -276,7 +276,7 @@ We present two ways to install the rest: MacPorts and Homebrew. For both version Homebrew ^^^^^^^^ -1. Follow the install instructions for Homebrew (`short `_) or `long `_) +1. Follow the install instructions for Homebrew (`short `_) or `long `_) 2. Open up the Terminal and execute the following lines: .. code-block:: sh @@ -430,8 +430,8 @@ Setting up the CMake configuration in CLion has the following advantages: .. note:: `CLion `_ is a commercial product. It is *your responsibility* to ensure that you have a valid - license permitting you to use CLion (or any software product) for your work on the - NEST Simulator. + license permitting you to use CLion (or any software product) for your work on the + NEST Simulator. Setting up the project ~~~~~~~~~~~~~~~~~~~~~~ diff --git a/doc/htmldoc/faqs/faqs.rst b/doc/htmldoc/faqs/faqs.rst index 98bab8305e..ecded7b112 100644 --- a/doc/htmldoc/faqs/faqs.rst +++ b/doc/htmldoc/faqs/faqs.rst @@ -11,7 +11,7 @@ Installation known issue in some :hxt_ref:`MPI` implementations. A solution is to add --with-debug="-DMPICH\_IGNORE\_CXX\_SEEK" to the configure command line. More details about this problem can be found - `here `__ + `here `__ 2. **Configure warns that Makefile.in seems to ignore the --datarootdir setting and the installation fails because of permission errors** diff --git a/doc/htmldoc/faqs/qa-precise-spike-times.rst b/doc/htmldoc/faqs/qa-precise-spike-times.rst index 64163149de..6a4b0ae641 100644 --- a/doc/htmldoc/faqs/qa-precise-spike-times.rst +++ b/doc/htmldoc/faqs/qa-precise-spike-times.rst @@ -29,7 +29,7 @@ Questions and answers about precise neurons models relevant to Computational Neuroscience the dynamics of the single neuron is not. Examples are integrate-and-fire models with linear :hxt_ref:`subthreshold dynamics` and the AdEx model considered in `Hanuschkin - (2010) `__. In these cases + (2010) `__. In these cases it is possible to study the accuracy of a solution of the single neuron dynamics. @@ -61,7 +61,7 @@ Questions and answers about precise neurons A: Although the networks dynamics is chaotic, in some cases mesoscopic measures of network activity can be affected by the quality of the single neuron solver. For example, `Hansel et al. - (1998) `__ showed that a + (1998) `__ showed that a measure of network synchrony exhibits a considerable error if the single neuron dynamics is integrated using a grid-constrained algorithm. Without confidence in the precision of the single neuron solver we diff --git a/doc/htmldoc/installation/user.rst b/doc/htmldoc/installation/user.rst index 4197a3e1b8..bd53e3498a 100644 --- a/doc/htmldoc/installation/user.rst +++ b/doc/htmldoc/installation/user.rst @@ -84,7 +84,7 @@ Options for Windows users |windows| ------------------------------------ Please note that NEST does not officially support Windows. Members of our community have had success -using NEST on Windows with the `Windows Subsystem for Linux `_. +using NEST on Windows with the `Windows Subsystem for Linux `_. You can also try our :ref:`docker container `. .. |linux| image:: ../static/img/linux.png diff --git a/doc/htmldoc/model_details/HillTononiModels.ipynb b/doc/htmldoc/model_details/HillTononiModels.ipynb index 074836d444..a2e39c532d 100644 --- a/doc/htmldoc/model_details/HillTononiModels.ipynb +++ b/doc/htmldoc/model_details/HillTononiModels.ipynb @@ -1,5 +1,5 @@ { - "cells": [ + "cells": [ { "cell_type": "markdown", "metadata": {}, @@ -10,7 +10,7 @@ "\n", "## Background\n", "\n", - "This notebook describes the neuron and synapse model proposed by Hill and Tononi in *J Neurophysiol* 93:1671-1698, 2005 ([doi:10.1152/jn.00915.2004](http://dx.doi.org/doi:10.1152/jn.00915.2004)) and their implementation in NEST. The notebook also contains some tests.\n", + "This notebook describes the neuron and synapse model proposed by Hill and Tononi in *J Neurophysiol* 93:1671-1698, 2005 ([doi:10.1152/jn.00915.2004](https://doi.org/doi:10.1152/jn.00915.2004)) and their implementation in NEST. The notebook also contains some tests.\n", "\n", "This description is based on the original publication and publications cited therein, an analysis of the source code of the original Synthesis implementation kindly provided by Sean Hill, and plausibility arguments.\n", "\n", diff --git a/doc/htmldoc/model_details/aeif_models_implementation.ipynb b/doc/htmldoc/model_details/aeif_models_implementation.ipynb index 38f1bce242..d1c1e68b42 100644 --- a/doc/htmldoc/model_details/aeif_models_implementation.ipynb +++ b/doc/htmldoc/model_details/aeif_models_implementation.ipynb @@ -1,5 +1,5 @@ { - "cells": [ + "cells": [ { "cell_type": "markdown", "metadata": {}, @@ -48,12 +48,12 @@ "\n", "The reference solution is implemented using the LSODAR solver which is described and compared in the following references:\n", "\n", - "* http://www.radford.edu/~thompson/RP/eventlocation.pdf (papers citing this one)\n", - "* http://www.sciencedirect.com/science/article/pii/S0377042712000684\n", + "* http://www.edu/~thompson/RP/eventlocation.pdf (papers citing this one)\n", + "* https://doi.org/10.1016/j.cam.2012.02.011\n", "* http://www.radford.edu/~thompson/RP/rootfinding.pdf\n", "* https://computation.llnl.gov/casc/nsde/pubs/u88007.pdf\n", "* http://www.cs.ucsb.edu/~cse/Files/SCE000136.pdf\n", - "* http://www.sciencedirect.com/science/article/pii/0377042789903348\n", + "* https://doi.org/10.1016/0377-0427(89)90334-8\n", "* http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.455.2976&rep=rep1&type=pdf\n", "* https://theses.lib.vt.edu/theses/available/etd-12092002-105032/unrestricted/etd.pdf" ] diff --git a/doc/htmldoc/neurons/exact-integration.rst b/doc/htmldoc/neurons/exact-integration.rst index cd282325d8..0980d968b0 100644 --- a/doc/htmldoc/neurons/exact-integration.rst +++ b/doc/htmldoc/neurons/exact-integration.rst @@ -208,7 +208,7 @@ Every matrix entry is calculated twice. For inhibitory postsynaptic inputs (with The update is performed `here `_. The first multiplication evolves the external input. The others are the multiplication of the matrix :math:`e^{Ah}` with :math:`y` (for inhibitory and excitatory inputs). -If synaptic and membrane time constants become very close, :math:`\tau_m\approx \tau_{syn}`, the matrix :math:`e^{Ah}` becomes numerically unstable. NEST handles this gracefully as described in the `IAF Integration Singularity notebook `_. +If synaptic and membrane time constants become very close, :math:`\tau_m\approx \tau_{syn}`, the matrix :math:`e^{Ah}` becomes numerically unstable. NEST handles this gracefully as described in the `IAF Integration Singularity notebook <../model_details/IAF_Integration_Singularity.ipynb>`_. For more information see [1]_. diff --git a/doc/htmldoc/neurons/simulations_with_precise_spike_times.rst b/doc/htmldoc/neurons/simulations_with_precise_spike_times.rst index ad981d040c..574da67b2b 100644 --- a/doc/htmldoc/neurons/simulations_with_precise_spike_times.rst +++ b/doc/htmldoc/neurons/simulations_with_precise_spike_times.rst @@ -15,7 +15,7 @@ neurons can propagate their state variables for an entire *h*-step without interruption by incoming spikes. This enables faster simulations of neurons with linear sub-threshold dynamics as a precomputed propagator matrix for a time step of fixed size *h* can be employed -(`Rotter & Diesmann, 1999 `__). +(`Rotter & Diesmann, 1999 `__). Neurons buffer the incoming spikes until they become due, where spikes can be lumped together provided that the corresponding synapses have the @@ -79,25 +79,24 @@ integrate-and-fire neuron model with alpha-shaped postsynaptic current that employ precise spike times; The grid-constrained counterpart is ``iaf_psc_alpha``. The neuron models have been developed in the context of `Morrison et al. -(2007) `__. As the model +(2007) `__. As the model employ interpolation in order to determine the precise location of an outgoing spike, the achieved precision depends on the simulation resolution *h*. The models differ in the way they process incoming spikes, which also affects the attained precision (see `Morrison et al. -(2007) `__ for details). +(2007) `__ for details). ``iaf_psc_exp_ps`` is an integrate-and-fire neuron model with exponentially shaped postsynaptic currents that employs precise spike times; its grid-constrained counterpart is ``iaf_psc_exp``. It has been developed in the context of `Hanuschkin et al. -(2010) `__, which is a +(2010) `__, which is a continuation of the work presented in `Morrison et al. -(2007) `__. As the neuron +(2007) `__. As the neuron model employs an iterative search in order to determine the precise location of an outgoing spike, the achieved precision does not depend on the simulation resolution h. The model can also be used through the -`PyNN -interface `__. +:doc:`PyNN interface `. Questions and answers about precise neurons ------------------------------------------- @@ -106,5 +105,3 @@ During the review process of the above mentioned papers, we came up with a list of questions and answers pertaining to the implementation and usage of precise spiking neurons. This list can be found :ref:`here `. - - diff --git a/models/aeif_psc_delta_clopath.h b/models/aeif_psc_delta_clopath.h index 893db047a6..e865a4e854 100644 --- a/models/aeif_psc_delta_clopath.h +++ b/models/aeif_psc_delta_clopath.h @@ -188,8 +188,7 @@ References in STDP – a unified model. Frontiers in Synaptic Neuroscience. 2:25 DOI: https://doi.org/10.3389/fnsyn.2010.00025 .. [3] Voltage-based STDP synapse (Clopath et al. 2010) on ModelDB - https://senselab.med.yale.edu/ModelDB/showmodel.cshtml?model=144566&file=%2f - modeldb_package%2fVoTriCode%2faEIF.m + https://modeldb.science/144566?tab=1 See also ++++++++ diff --git a/models/clopath_synapse.h b/models/clopath_synapse.h index 080f73333d..0252e7f019 100644 --- a/models/clopath_synapse.h +++ b/models/clopath_synapse.h @@ -98,7 +98,7 @@ References in STDP – a unified model. Frontiers in Synaptic Neuroscience 2:25. DOI: https://doi.org/10.3389/fnsyn.2010.00025 .. [3] Voltage-based STDP synapse (Clopath et al. 2010) on ModelDB - https://senselab.med.yale.edu/ModelDB/showmodel.cshtml?model=144566 + https://modeldb.science/144566?tab=1 See also ++++++++ diff --git a/models/glif_psc_double_alpha.h b/models/glif_psc_double_alpha.h index 841a75ff5c..ce4c310acd 100644 --- a/models/glif_psc_double_alpha.h +++ b/models/glif_psc_double_alpha.h @@ -124,7 +124,7 @@ condition of ``tau_syn_in``, respectively, to avoid numerical instabilities. For implementation details see the - `IAF_neurons_singularity <../model_details/IAF_neurons_singularity.ipynb>`_ notebook. + `IAF Integration Singularity <../model_details/IAF_Integration_Singularity.ipynb>`_ notebook. Parameters ++++++++++ diff --git a/models/hh_cond_beta_gap_traub.h b/models/hh_cond_beta_gap_traub.h index 4e2ae9f5c9..106299a97e 100644 --- a/models/hh_cond_beta_gap_traub.h +++ b/models/hh_cond_beta_gap_traub.h @@ -87,13 +87,12 @@ The key differences between the current model and the model in [1]_ are: For details on asynchronicity in spike and firing events with Hodgkin Huxley models see :ref:`here `. -See also [2]_. Postsynaptic currents --------------------- Incoming spike events induce a postsynaptic change of conductance modelled by a -beta function as outlined in [3]_ [4]_. The beta function is normalized such that an +beta function as outlined in [2]_ [3]_. The beta function is normalized such that an event of weight 1.0 results in a peak current of 1 nS at :math:`t = \tau_{rise,xx}` where xx is ex or in. @@ -151,11 +150,10 @@ References .. [1] Traub RD and Miles R (1991). Neuronal Networks of the Hippocampus. Cambridge University Press, Cambridge UK. -.. [2] http://modeldb.yale.edu/83319 -.. [3] Rotter S and Diesmann M (1999). Exact digital simulation of +.. [2] Rotter S and Diesmann M (1999). Exact digital simulation of time-invariant linear systems with applications to neuronal modeling. Biological Cybernetics 81:381 DOI: https://doi.org/10.1007/s004220050570 -.. [4] Roth A and van Rossum M (2010). Chapter 6: Modeling synapses. +.. [3] Roth A and van Rossum M (2010). Chapter 6: Modeling synapses. in De Schutter, Computational Modeling Methods for Neuroscientists, MIT Press. diff --git a/models/hh_psc_alpha_clopath.h b/models/hh_psc_alpha_clopath.h index f7901a556e..dc47de64f9 100644 --- a/models/hh_psc_alpha_clopath.h +++ b/models/hh_psc_alpha_clopath.h @@ -163,9 +163,7 @@ References DOI: https://doi.org/10.3389/fnsyn.2010.00025 .. [6] Voltage-based STDP synapse (Clopath et al. 2010) connected to a Hodgkin-Huxley neuron on ModelDB: - https://senselab.med.yale.edu/ModelDB/showmodel.cshtml?model=144566&file - =%2fmodeldb_package%2fstdp_cc.mod - + https://modeldb.science/144566?tab=1 Sends +++++ diff --git a/models/sigmoid_rate_gg_1998.h b/models/sigmoid_rate_gg_1998.h index fcfbf52fa4..6039d9692b 100644 --- a/models/sigmoid_rate_gg_1998.h +++ b/models/sigmoid_rate_gg_1998.h @@ -103,7 +103,7 @@ References .. [3] Hahne J, Helias M, Kunkel S, Igarashi J, Bolten M, Frommer A, Diesmann M (2015). A unified framework for spiking and gap-junction interactions in distributed neuronal network simulations. Frontiers in - Neuroinformatics, 9:22. DOI: https://doi/org/10.3389/fninf.2015.00022 + Neuroinformatics, 9:22. DOI: https://doi.org/10.3389/fninf.2015.00022 Sends diff --git a/pynest/examples/Potjans_2014/README.rst b/pynest/examples/Potjans_2014/README.rst index ed00587823..d8ec2c5539 100644 --- a/pynest/examples/Potjans_2014/README.rst +++ b/pynest/examples/Potjans_2014/README.rst @@ -56,7 +56,7 @@ To run the simulation, simply use: The output will be saved in the ``data`` directory. -The code can be `parallelized `_ using OpenMP and MPI, if NEST has been built with these features. +The code can be :ref:`parallelized ` using OpenMP and MPI, if NEST has been built with these features. The number of threads (per MPI process) can be chosen by adjusting ``local_num_threads`` in ``sim_params.py``. diff --git a/pynest/examples/iaf_tum_2000_short_term_depression.py b/pynest/examples/iaf_tum_2000_short_term_depression.py index ac6ac2cc78..a68f0767ce 100644 --- a/pynest/examples/iaf_tum_2000_short_term_depression.py +++ b/pynest/examples/iaf_tum_2000_short_term_depression.py @@ -62,7 +62,7 @@ 20,RC50:1-5. URL: https://infoscience.epfl.ch/record/183402 .. [2] Tsodyks M, Pawelzik K, Markram H (1998). Neural networks with dynamic synapses. Neural - computation, http://dx.doi.org/10.1162/089976698300017502 + computation, https://doi.org/10.1162/089976698300017502 See Also ~~~~~~~~ diff --git a/pynest/examples/intrinsic_currents_spiking.py b/pynest/examples/intrinsic_currents_spiking.py index 22a69f79ed..dc9dc24293 100644 --- a/pynest/examples/intrinsic_currents_spiking.py +++ b/pynest/examples/intrinsic_currents_spiking.py @@ -39,7 +39,7 @@ .. [1] Hill and Tononi (2005) Modeling sleep and wakefulness in the thalamocortical system. J Neurophysiol 93:1671 - http://dx.doi.org/10.1152/jn.00915.2004. + https://doi.org/10.1152/jn.00915.2004 See Also ~~~~~~~~ diff --git a/pynest/examples/sonata_example/sonata_network.py b/pynest/examples/sonata_example/sonata_network.py index f01b7be2c7..4fb9d86c33 100644 --- a/pynest/examples/sonata_example/sonata_network.py +++ b/pynest/examples/sonata_example/sonata_network.py @@ -27,8 +27,8 @@ the SONATA format [1]_. The network model consists of 300 internal nodes (explicitly simulated) and 100 external nodes (only provide inputs to the simulated system). The SONATA files can be found in the -`pynest/examples/300_pointneurons -`_ +`pynest/examples/sonata_example/300_pointneurons +`_ directory. See the :ref:`nest_sonata` for details on the NEST support of the SONATA format. From 28a79a17e2d830b92ae262c5b6037e9c3e418a7e Mon Sep 17 00:00:00 2001 From: Hans Ekkehard Plesser Date: Fri, 1 Mar 2024 14:28:14 +0100 Subject: [PATCH 10/19] Add note to expect changes to tripartite syntax and semantics --- .../synapses/connection_management.rst | 6 + pynest/nest/lib/hl_api_connections.py | 112 +++++++++--------- 2 files changed, 65 insertions(+), 53 deletions(-) diff --git a/doc/htmldoc/synapses/connection_management.rst b/doc/htmldoc/synapses/connection_management.rst index 3ddffcae14..eac3ad39e7 100644 --- a/doc/htmldoc/synapses/connection_management.rst +++ b/doc/htmldoc/synapses/connection_management.rst @@ -314,6 +314,12 @@ specification to connections from ``pre`` to ``third`` nodes and the ``'third_out'`` specification to connections from ``third`` to ``post`` nodes. +.. admonition: + + Tripartite connectivity is a new feature. Please expect some adjustments to + the syntax and semantics for for tripartite connectivity in the next NEST releases. + + .. _tripartite_bernoulli_with_pool: Tripartite Bernoulli with pool diff --git a/pynest/nest/lib/hl_api_connections.py b/pynest/nest/lib/hl_api_connections.py index b977c3f23b..9a30c3a264 100644 --- a/pynest/nest/lib/hl_api_connections.py +++ b/pynest/nest/lib/hl_api_connections.py @@ -298,77 +298,83 @@ def Connect(pre, post, conn_spec=None, syn_spec=None, return_synapsecollection=F @check_stack def TripartiteConnect(pre, post, third, conn_spec, syn_specs=None): """ - Connect `pre` nodes to `post` nodes and a `third`-factor nodes. + Connect `pre` nodes to `post` nodes and a `third`-factor nodes. - Nodes in `pre` and `post` are connected using the specified tripartite connection rule - and the given synapse types (all :cpp:class:`static_synapse ` by default). - Details depend on the connection rule. + Nodes in `pre` and `post` are connected using the specified tripartite connection rule + and the given synapse types (all :cpp:class:`static_synapse ` by default). + Details depend on the connection rule. - Lists of synapse models and connection rules are available as - ``nest.synapse_models`` and ``nest.connection_rules``, respectively. Note that only tripartite - connection rules can be used. + Lists of synapse models and connection rules are available as + ``nest.synapse_models`` and ``nest.connection_rules``, respectively. Note that only tripartite + connection rules can be used. - Parameters - ---------- - pre : NodeCollection - Presynaptic nodes - post : NodeCollection - Postsynaptic nodes - third : NodeCollection - Third population to include in connection - conn_spec : dict - Specifies connection rule, which must support tripartite connections, see below - syn_spec : dict, optional - Specifies synapse models to be used, see below + Parameters + ---------- + pre : NodeCollection + Presynaptic nodes + post : NodeCollection + Postsynaptic nodes + third : NodeCollection + Third population to include in connection + conn_spec : dict + Specifies connection rule, which must support tripartite connections, see below + syn_spec : dict, optional + Specifies synapse models to be used, see below - Raises - ------ - kernel.NESTError + Raises + ------ + kernel.NESTError - Notes - ----- - **Connectivity specification (conn_spec)** + Notes + ----- + **Connectivity specification (conn_spec)** - Available tripartite rules:: + Available tripartite rules:: - - ``tripartite_bernoulli_with_pool`` + - ``tripartite_bernoulli_with_pool`` - See :ref:`tripartite_connectivity` for more details and :doc:`/auto_examples/astrocytes/astrocyte_small_network` - and :doc:`/auto_examples/astrocytes/astrocyte_brunel` for examples. + See :ref:`tripartite_connectivity` for more details and :doc:`/auto_examples/astrocytes/astrocyte_small_network` + and :doc:`/auto_examples/astrocytes/astrocyte_brunel` for examples. - **Synapse specifications (syn_specs)** + **Synapse specifications (syn_specs)** - Synapse specifications for tripartite connections are given as a dictionary with specifications - for each of the three projections to be created:: + Synapse specifications for tripartite connections are given as a dictionary with specifications + for each of the three projections to be created:: - {"primary": , - "third_in": , - "third_out": } + {"primary": , + "third_in": , + "third_out": } - Here, ``"primary"`` marks the synapse specification for the projections between ``pre`` and ``post`` nodes, - ``"third_in"`` for connections between ``pre`` and ``third`` nodes and ``"third_out"`` for connections between - ``third`` and ``post`` nodes. + Here, ``"primary"`` marks the synapse specification for the projections between ``pre`` and ``post`` nodes, + ``"third_in"`` for connections between ``pre`` and ``third`` nodes and ``"third_out"`` for connections between + ``third`` and ``post`` nodes. - Each ```` entry can be any entry that would be possible as synapse specification - in a normal ``Connect()`` call. Any missing entries default to ``static_synapse``. If no ```` argument - is given at all, all three entries default to ``static_synapse``. + Each ```` entry can be any entry that would be possible as synapse specification + in a normal ``Connect()`` call. Any missing entries default to ``static_synapse``. If no ```` argument + is given at all, all three entries default to ``static_synapse``. - The synapse model and its properties can be given either as a string - identifying a specific synapse model (default: :cpp:class:`static_synapse `) or - as a dictionary specifying the synapse model and its parameters. + The synapse model and its properties can be given either as a string + identifying a specific synapse model (default: :cpp:class:`static_synapse `) or + as a dictionary specifying the synapse model and its parameters. - Available keys in the synapse specification dictionary are:: + Available keys in the synapse specification dictionary are:: - - 'synapse_model' - - 'weight' - - 'delay' - - 'receptor_type' - - any parameters specific to the selected synapse model. + - 'synapse_model' + - 'weight' + - 'delay' + - 'receptor_type' + - any parameters specific to the selected synapse model. - See Also - --------- - :ref:`connection_management` + .. admonition: + + Tripartite connectivity is a new feature. Please expect some adjustments to + the syntax and semantics for for tripartite connectivity in the next NEST releases. + + + See Also + --------- + :ref:`connection_management` """ # Confirm that we got node collections From df44535aae8a9d9efb52f065b3db714bcf514d79 Mon Sep 17 00:00:00 2001 From: Hans Ekkehard Plesser Date: Fri, 1 Mar 2024 15:24:12 +0100 Subject: [PATCH 11/19] Fix indentation in docstring --- pynest/nest/lib/hl_api_connections.py | 106 +++++++++++++------------- 1 file changed, 53 insertions(+), 53 deletions(-) diff --git a/pynest/nest/lib/hl_api_connections.py b/pynest/nest/lib/hl_api_connections.py index 9a30c3a264..4858c15350 100644 --- a/pynest/nest/lib/hl_api_connections.py +++ b/pynest/nest/lib/hl_api_connections.py @@ -298,72 +298,72 @@ def Connect(pre, post, conn_spec=None, syn_spec=None, return_synapsecollection=F @check_stack def TripartiteConnect(pre, post, third, conn_spec, syn_specs=None): """ - Connect `pre` nodes to `post` nodes and a `third`-factor nodes. + Connect `pre` nodes to `post` nodes and a `third`-factor nodes. - Nodes in `pre` and `post` are connected using the specified tripartite connection rule - and the given synapse types (all :cpp:class:`static_synapse ` by default). - Details depend on the connection rule. + Nodes in `pre` and `post` are connected using the specified tripartite connection rule + and the given synapse types (all :cpp:class:`static_synapse ` by default). + Details depend on the connection rule. - Lists of synapse models and connection rules are available as - ``nest.synapse_models`` and ``nest.connection_rules``, respectively. Note that only tripartite - connection rules can be used. + Lists of synapse models and connection rules are available as + ``nest.synapse_models`` and ``nest.connection_rules``, respectively. Note that only tripartite + connection rules can be used. - Parameters - ---------- - pre : NodeCollection - Presynaptic nodes - post : NodeCollection - Postsynaptic nodes - third : NodeCollection - Third population to include in connection - conn_spec : dict - Specifies connection rule, which must support tripartite connections, see below - syn_spec : dict, optional - Specifies synapse models to be used, see below + Parameters + ---------- + pre : NodeCollection + Presynaptic nodes + post : NodeCollection + Postsynaptic nodes + third : NodeCollection + Third population to include in connection + conn_spec : dict + Specifies connection rule, which must support tripartite connections, see below + syn_spec : dict, optional + Specifies synapse models to be used, see below - Raises - ------ - kernel.NESTError + Raises + ------ + kernel.NESTError - Notes - ----- - **Connectivity specification (conn_spec)** + Notes + ----- + **Connectivity specification (conn_spec)** - Available tripartite rules:: + Available tripartite rules:: - - ``tripartite_bernoulli_with_pool`` + - ``tripartite_bernoulli_with_pool`` - See :ref:`tripartite_connectivity` for more details and :doc:`/auto_examples/astrocytes/astrocyte_small_network` - and :doc:`/auto_examples/astrocytes/astrocyte_brunel` for examples. + See :ref:`tripartite_connectivity` for more details and :doc:`/auto_examples/astrocytes/astrocyte_small_network` + and :doc:`/auto_examples/astrocytes/astrocyte_brunel` for examples. - **Synapse specifications (syn_specs)** + **Synapse specifications (syn_specs)** - Synapse specifications for tripartite connections are given as a dictionary with specifications - for each of the three projections to be created:: + Synapse specifications for tripartite connections are given as a dictionary with specifications + for each of the three projections to be created:: - {"primary": , - "third_in": , - "third_out": } + {"primary": , + "third_in": , + "third_out": } - Here, ``"primary"`` marks the synapse specification for the projections between ``pre`` and ``post`` nodes, - ``"third_in"`` for connections between ``pre`` and ``third`` nodes and ``"third_out"`` for connections between - ``third`` and ``post`` nodes. + Here, ``"primary"`` marks the synapse specification for the projections between ``pre`` and ``post`` nodes, + ``"third_in"`` for connections between ``pre`` and ``third`` nodes and ``"third_out"`` for connections between + ``third`` and ``post`` nodes. - Each ```` entry can be any entry that would be possible as synapse specification - in a normal ``Connect()`` call. Any missing entries default to ``static_synapse``. If no ```` argument - is given at all, all three entries default to ``static_synapse``. + Each ```` entry can be any entry that would be possible as synapse specification + in a normal ``Connect()`` call. Any missing entries default to ``static_synapse``. If no ```` argument + is given at all, all three entries default to ``static_synapse``. - The synapse model and its properties can be given either as a string - identifying a specific synapse model (default: :cpp:class:`static_synapse `) or - as a dictionary specifying the synapse model and its parameters. + The synapse model and its properties can be given either as a string + identifying a specific synapse model (default: :cpp:class:`static_synapse `) or + as a dictionary specifying the synapse model and its parameters. - Available keys in the synapse specification dictionary are:: + Available keys in the synapse specification dictionary are:: - - 'synapse_model' - - 'weight' - - 'delay' - - 'receptor_type' - - any parameters specific to the selected synapse model. + - 'synapse_model' + - 'weight' + - 'delay' + - 'receptor_type' + - any parameters specific to the selected synapse model. .. admonition: @@ -372,9 +372,9 @@ def TripartiteConnect(pre, post, third, conn_spec, syn_specs=None): the syntax and semantics for for tripartite connectivity in the next NEST releases. - See Also - --------- - :ref:`connection_management` + See Also + --------- + :ref:`connection_management` """ # Confirm that we got node collections From 4140029543589534648e116fd90ee51ab151e06b Mon Sep 17 00:00:00 2001 From: Jessica Mitchell Date: Mon, 4 Mar 2024 08:58:53 +0100 Subject: [PATCH 12/19] add hpc --- doc/htmldoc/installation/index.rst | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/doc/htmldoc/installation/index.rst b/doc/htmldoc/installation/index.rst index 5303b9fdf7..e4479978e2 100644 --- a/doc/htmldoc/installation/index.rst +++ b/doc/htmldoc/installation/index.rst @@ -53,6 +53,14 @@ Install NEST :ref:`Install docker container for NEST + NESTML ` + .. grid-item-card:: |hpc| Configure HPC systems + :class-title: sd-d-flex-row sd-align-minor-center + :columns: 4 + + Find out how to set up and optimize HPC systems for NEST + + * :ref:`optimize_performance` + ---- @@ -76,3 +84,4 @@ If installation didn't work, see the :ref:`troubleshooting section Date: Mon, 4 Mar 2024 13:17:00 +0100 Subject: [PATCH 13/19] Update doc/htmldoc/installation/cmake_options.rst Co-authored-by: Hans Ekkehard Plesser --- doc/htmldoc/installation/cmake_options.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/htmldoc/installation/cmake_options.rst b/doc/htmldoc/installation/cmake_options.rst index 8e919d627a..4eac73bd60 100644 --- a/doc/htmldoc/installation/cmake_options.rst +++ b/doc/htmldoc/installation/cmake_options.rst @@ -104,7 +104,7 @@ Build documentation If either documentation build is toggled to `ON`, you can then run ``make docs`` if you only want to build the docs. -See also the :ref:`documentation workflow ` for user facing and technical docs. +See also the :ref:`documentation workflow ` for user-facing and technical docs. External libraries From 7fca951be8fde544bea48e0222c1e7d78132f03a Mon Sep 17 00:00:00 2001 From: jessica-mitchell Date: Mon, 4 Mar 2024 13:22:03 +0100 Subject: [PATCH 14/19] Apply suggestions from code review Co-authored-by: Hans Ekkehard Plesser --- doc/htmldoc/installation/cmake_options.rst | 2 +- doc/htmldoc/installation/index.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/htmldoc/installation/cmake_options.rst b/doc/htmldoc/installation/cmake_options.rst index 4eac73bd60..7f3518decc 100644 --- a/doc/htmldoc/installation/cmake_options.rst +++ b/doc/htmldoc/installation/cmake_options.rst @@ -180,7 +180,7 @@ Generic build configuration | ``-Dwith-intel-compiler-flags=[OFF|]``| User defined flags for the Intel compiler | | | [default='-fp-model strict']. Separate multiple flags by ';'. | +------------------------------------------------------+------------------------------------------------------------------+ -| ``-Dwith-cpp-std=[]`` | C++ standard to use for compilation [default='c++11']. | +| ``-Dwith-cpp-std=[]`` | C++ standard to use for compilation [default='c++17']. | +------------------------------------------------------+------------------------------------------------------------------+ | ``-Dwith-libraries=[OFF|]`` | Link additional libraries [default=OFF]. Give full path. Separate| | | multiple libraries by ';'. | diff --git a/doc/htmldoc/installation/index.rst b/doc/htmldoc/installation/index.rst index c81f4d4d10..a8c5e1f863 100644 --- a/doc/htmldoc/installation/index.rst +++ b/doc/htmldoc/installation/index.rst @@ -39,7 +39,7 @@ Install NEST .. image:: https://nest-simulator.org/TryItOnEBRAINS.png :target: https://lab.ebrains.eu/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnest%2Fnest-simulator-examples&urlpath=lab%2Ftree%2Fnest-simulator-examples%2Fnotebooks%2Fnotebooks%2Fone_neuron.ipynb&branch=main - For more info see :ref:`our guide to running notebooks ` + For more info see :ref:`our guide to running Jupyter notebooks on EBRAINS ` .. grid:: 2 :gutter: 1 From 172d071d24afd3e94a17dabed5ce704394ec9ccb Mon Sep 17 00:00:00 2001 From: Hans Ekkehard Plesser Date: Mon, 4 Mar 2024 15:47:34 +0100 Subject: [PATCH 15/19] Apply suggestions from code review Co-authored-by: jessica-mitchell --- doc/htmldoc/synapses/connection_management.rst | 2 +- pynest/nest/lib/hl_api_connections.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/htmldoc/synapses/connection_management.rst b/doc/htmldoc/synapses/connection_management.rst index eac3ad39e7..b9c782f408 100644 --- a/doc/htmldoc/synapses/connection_management.rst +++ b/doc/htmldoc/synapses/connection_management.rst @@ -317,7 +317,7 @@ the ``'third_out'`` specification to connections from ``third`` to .. admonition: Tripartite connectivity is a new feature. Please expect some adjustments to - the syntax and semantics for for tripartite connectivity in the next NEST releases. + the syntax and semantics for the tripartite connectivity in the next NEST releases. .. _tripartite_bernoulli_with_pool: diff --git a/pynest/nest/lib/hl_api_connections.py b/pynest/nest/lib/hl_api_connections.py index 4858c15350..c6f8475c1f 100644 --- a/pynest/nest/lib/hl_api_connections.py +++ b/pynest/nest/lib/hl_api_connections.py @@ -369,7 +369,7 @@ def TripartiteConnect(pre, post, third, conn_spec, syn_specs=None): .. admonition: Tripartite connectivity is a new feature. Please expect some adjustments to - the syntax and semantics for for tripartite connectivity in the next NEST releases. + the syntax and semantics for the tripartite connectivity in the next NEST releases. See Also From 19673029fb6869ed6a61db1bb032842cb1fcb47b Mon Sep 17 00:00:00 2001 From: Jessica Mitchell Date: Mon, 4 Mar 2024 19:47:42 +0100 Subject: [PATCH 16/19] update references in notebook and hh_cond... --- .../aeif_models_implementation.ipynb | 17 ++++++++--------- models/hh_cond_beta_gap_traub.h | 18 +++++++++++++----- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/doc/htmldoc/model_details/aeif_models_implementation.ipynb b/doc/htmldoc/model_details/aeif_models_implementation.ipynb index d1c1e68b42..68cf2651a7 100644 --- a/doc/htmldoc/model_details/aeif_models_implementation.ipynb +++ b/doc/htmldoc/model_details/aeif_models_implementation.ipynb @@ -48,15 +48,14 @@ "\n", "The reference solution is implemented using the LSODAR solver which is described and compared in the following references:\n", "\n", - "* http://www.edu/~thompson/RP/eventlocation.pdf (papers citing this one)\n", - "* https://doi.org/10.1016/j.cam.2012.02.011\n", - "* http://www.radford.edu/~thompson/RP/rootfinding.pdf\n", - "* https://computation.llnl.gov/casc/nsde/pubs/u88007.pdf\n", - "* http://www.cs.ucsb.edu/~cse/Files/SCE000136.pdf\n", - "* https://doi.org/10.1016/0377-0427(89)90334-8\n", - "* http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.455.2976&rep=rep1&type=pdf\n", - "* https://theses.lib.vt.edu/theses/available/etd-12092002-105032/unrestricted/etd.pdf" - ] + + "* Shampine LF, and Thompson S. (2000). Event location for ordinary differential equations. Computers and Mathematics with Applications, 39(5–6), 43–54. https://doi.org/10.1016/S0898-1221(00)00045-6 \n", + "* Thompson S (1987). A collection of test problems for ordinary differential equation solvers which have provisions for rootfinding (ORNL/TM-9912, 6111421; p. ORNL/TM-9912, 6111421). https://doi.org/10.2172/6111421 \n", + "* Dieci L, and Lopez L (2012). A survey of numerical methods for IVPs of ODEs with discontinuous right-hand side. Journal of Computational and Applied Mathematics, 236(16), 3967–3991. https://doi.org/10.1016/j.cam.2012.02.011 \n", + "* Hindmarsh, AC (1983). ODEPACK, a systematized collection of ODE solvers. In R. S. Stepleman & others (Eds.), Scientific computing (Vol. 1, pp. 55–64). North-Holland. https://computing.llnl.gov/sites/default/files/u88007.pdf \n", + "* Petzold L. (1983). Automatic Selection of Methods for Solving Stiff and Nonstiff Systems of Ordinary Differential Equations. SIAM Journal on Scientific and Statistical Computing, 4(1), 136–148. https://doi.org/10.1137/0904010 \n", + "* Kahaner DK, Lawkins WF, and Thompson S. (1989). On the use of rootfinding ODE software for the solution of a common problem in nonlinear dynamical systems. Journal of Computational and Applied Mathematics, 28, 219–230. https://doi.org/10.1016/0377-0427(89)90334-8 \n" + ] }, { "cell_type": "markdown", diff --git a/models/hh_cond_beta_gap_traub.h b/models/hh_cond_beta_gap_traub.h index 106299a97e..c4dda9b281 100644 --- a/models/hh_cond_beta_gap_traub.h +++ b/models/hh_cond_beta_gap_traub.h @@ -78,11 +78,12 @@ based on a model of hippocampal pyramidal cells by Traub and Miles [1]_. The key differences between the current model and the model in [1]_ are: - This model is a point neuron, not a compartmental model. -- This model includes only ``I_Na`` and ``I_K``, with simpler ``I_K`` dynamics than +- Following [2]_, this model includes only ``I_Na`` and ``I_K``, with simpler ``I_K`` dynamics than in [1]_, so it has only three instead of eight gating variables; in particular, all Ca dynamics have been removed. - Incoming spikes induce an instantaneous conductance change followed by exponential decay instead of activation over time. +- The model incorporates gap junctions [3]_. For details on asynchronicity in spike and firing events with Hodgkin Huxley models see :ref:`here `. @@ -92,9 +93,9 @@ Postsynaptic currents --------------------- Incoming spike events induce a postsynaptic change of conductance modelled by a -beta function as outlined in [2]_ [3]_. The beta function is normalized such that an +beta function as outlined in [4]_ [5]_. The beta function is normalized such that an event of weight 1.0 results in a peak current of 1 nS at :math:`t = \tau_{rise,xx}` -where xx is ex or in. +where xx is `ex` or `in`. Spike Detection --------------- @@ -150,10 +151,17 @@ References .. [1] Traub RD and Miles R (1991). Neuronal Networks of the Hippocampus. Cambridge University Press, Cambridge UK. -.. [2] Rotter S and Diesmann M (1999). Exact digital simulation of +.. [2] Brette R, et al (2007). Simulation of networks of spiking neurons: + A review of tools and strategies. J Comput Neurosci, 23, 349–398 + DOI: https://doi.org/10.1007/s10827-007-0038-6 +.. [3] Hahne J, Helias M, Kunkel S, Igarashi J, Bolten M, Frommer A, + and Diesmann M. (2015). A unified framework for spiking and gap-junction + interactions in distributed neuronal network simulations. + Frontiers in Neuroinformatics, 9. DOI: https://doi.org/10.3389/fninf.2015.00022 +.. [4] Rotter S and Diesmann M (1999). Exact digital simulation of time-invariant linear systems with applications to neuronal modeling. Biological Cybernetics 81:381 DOI: https://doi.org/10.1007/s004220050570 -.. [3] Roth A and van Rossum M (2010). Chapter 6: Modeling synapses. +.. [5] Roth A and van Rossum M (2010). Chapter 6: Modeling synapses. in De Schutter, Computational Modeling Methods for Neuroscientists, MIT Press. From cc9bc22bc12557d6d1eeed4e020c7888e39f6813 Mon Sep 17 00:00:00 2001 From: Jessica Mitchell Date: Mon, 4 Mar 2024 20:13:12 +0100 Subject: [PATCH 17/19] ajust try it on ebrains buttons spacine --- doc/htmldoc/installation/index.rst | 5 +++-- doc/htmldoc/static/css/custom.css | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/doc/htmldoc/installation/index.rst b/doc/htmldoc/installation/index.rst index a8c5e1f863..09f0185ce9 100644 --- a/doc/htmldoc/installation/index.rst +++ b/doc/htmldoc/installation/index.rst @@ -31,7 +31,7 @@ Install NEST :class-title: sd-d-flex-row sd-align-minor-center :columns: 4 - With the JupyterHub service from EBRAINS you can + With the JupyterHub service from EBRAINS, you can try out NEST (and many other tools) directly in your browser. .. rst-class:: imgbutton @@ -39,7 +39,8 @@ Install NEST .. image:: https://nest-simulator.org/TryItOnEBRAINS.png :target: https://lab.ebrains.eu/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fnest%2Fnest-simulator-examples&urlpath=lab%2Ftree%2Fnest-simulator-examples%2Fnotebooks%2Fnotebooks%2Fone_neuron.ipynb&branch=main - For more info see :ref:`our guide to running Jupyter notebooks on EBRAINS ` + + * For more info see :ref:`our guide to running Jupyter notebooks on EBRAINS ` .. grid:: 2 :gutter: 1 diff --git a/doc/htmldoc/static/css/custom.css b/doc/htmldoc/static/css/custom.css index ecf8ab157c..49b96cfaed 100644 --- a/doc/htmldoc/static/css/custom.css +++ b/doc/htmldoc/static/css/custom.css @@ -97,11 +97,12 @@ section#kernel-attributes-nest-nestmodule dd { outline-color: lightgray !important; outline-style: solid !important; outline-width: 1px !important; + padding-right: 1px !important; + padding-right: 1px !important; padding-top: 20px !important; padding-bottom: 20px !important; box-shadow: 3px 3px lightgray !important; } - .imgbutton:hover { background-color: white; From fc83ed776c052e746ea524b1277a3c23ad40cefc Mon Sep 17 00:00:00 2001 From: Hans Ekkehard Plesser Date: Tue, 5 Mar 2024 09:30:45 +0100 Subject: [PATCH 18/19] Fix warning issued by gcc 12.3 --- nestkernel/mpi_manager.cpp | 12 ++++++------ nestkernel/vp_manager.h | 3 ++- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/nestkernel/mpi_manager.cpp b/nestkernel/mpi_manager.cpp index 591aecb17f..3492e33c20 100644 --- a/nestkernel/mpi_manager.cpp +++ b/nestkernel/mpi_manager.cpp @@ -400,7 +400,7 @@ nest::MPIManager::communicate_Allgather( std::vector< unsigned int >& send_buffe int disp = 0; unsigned int max_recv_count = send_buffer_size_; bool overflow = false; - for ( int pid = 0; pid < get_num_processes(); ++pid ) + for ( size_t pid = 0; pid < get_num_processes(); ++pid ) { unsigned int block_disp = pid * send_buffer_size_; displacements[ pid ] = disp; @@ -470,7 +470,7 @@ nest::MPIManager::communicate_Allgather( std::vector< T >& send_buffer, int disp = 0; unsigned int max_recv_count = send_buffer_size_; bool overflow = false; - for ( int pid = 0; pid < get_num_processes(); ++pid ) + for ( size_t pid = 0; pid < get_num_processes(); ++pid ) { unsigned int block_disp = pid * send_buffer_size_; displacements[ pid ] = disp; @@ -560,7 +560,7 @@ nest::MPIManager::communicate_Allgather( std::vector< OffGridSpike >& send_buffe int disp = 0; unsigned int max_recv_count = send_buffer_size_; bool overflow = false; - for ( int pid = 0; pid < get_num_processes(); ++pid ) + for ( size_t pid = 0; pid < get_num_processes(); ++pid ) { unsigned int block_disp = pid * send_buffer_size_; displacements[ pid ] = disp; @@ -604,7 +604,7 @@ nest::MPIManager::communicate( std::vector< double >& send_buffer, communicate( n_nodes ); // Set up displacements vector. displacements.resize( get_num_processes(), 0 ); - for ( int i = 1; i < get_num_processes(); ++i ) + for ( size_t i = 1; i < get_num_processes(); ++i ) { displacements.at( i ) = displacements.at( i - 1 ) + n_nodes.at( i - 1 ); } @@ -864,7 +864,7 @@ nest::MPIManager::time_communicatev( int num_bytes, int samples ) std::vector< int > n_nodes( get_num_processes(), packet_length ); std::vector< int > displacements( get_num_processes(), 0 ); - for ( int i = 1; i < get_num_processes(); ++i ) + for ( size_t i = 1; i < get_num_processes(); ++i ) { displacements.at( i ) = displacements.at( i - 1 ) + n_nodes.at( i - 1 ); } @@ -963,7 +963,7 @@ nest::MPIManager::time_communicate_alltoallv( int num_bytes, int samples ) std::vector< int > n_nodes( get_num_processes(), packet_length ); std::vector< int > displacements( get_num_processes(), 0 ); - for ( int i = 1; i < get_num_processes(); ++i ) + for ( size_t i = 1; i < get_num_processes(); ++i ) { displacements.at( i ) = displacements.at( i - 1 ) + n_nodes.at( i - 1 ); } diff --git a/nestkernel/vp_manager.h b/nestkernel/vp_manager.h index 226c389adf..c0acc819a0 100644 --- a/nestkernel/vp_manager.h +++ b/nestkernel/vp_manager.h @@ -203,7 +203,8 @@ inline void nest::VPManager::assert_thread_parallel() const { #ifdef _OPENMP - assert( omp_get_num_threads() == n_threads_ ); + // omp_get_num_threads() returns int + assert( omp_get_num_threads() == static_cast< int >( n_threads_ ) ); #endif } From db17b13a9cb51e774e3839b100a83ea9e4c8853f Mon Sep 17 00:00:00 2001 From: Jessica Mitchell Date: Tue, 5 Mar 2024 13:25:03 +0100 Subject: [PATCH 19/19] add bullets and subheading --- doc/htmldoc/installation/index.rst | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/doc/htmldoc/installation/index.rst b/doc/htmldoc/installation/index.rst index e4479978e2..b8637fab7a 100644 --- a/doc/htmldoc/installation/index.rst +++ b/doc/htmldoc/installation/index.rst @@ -27,6 +27,9 @@ Install NEST * :ref:`dev_install` +Install related tools +~~~~~~~~~~~~~~~~~~~~~ + .. grid:: 2 :gutter: 1 @@ -37,9 +40,9 @@ Install NEST A graphical user interface, ideal for learning and teaching concepts regarding neural networks in classrooms and workshops. - :doc:`NEST Desktop documentation ` :octicon:`link-external` + * :doc:`NEST Desktop documentation ` :octicon:`link-external` - :ref:`Install docker container with NEST + NEST Desktop ` + * :ref:`Install docker container with NEST + NEST Desktop ` .. grid-item-card:: |nestml| :class-title: sd-d-flex-row sd-align-minor-center @@ -48,9 +51,9 @@ Install NEST Install the NEST modeling language to create and customize models - :doc:`NESTML documentation ` :octicon:`link-external` + * :doc:`NESTML documentation ` :octicon:`link-external` - :ref:`Install docker container for NEST + NESTML ` + * :ref:`Install docker container for NEST + NESTML ` .. grid-item-card:: |hpc| Configure HPC systems