Get started:

  • Get Arbor
    • Python Installation
      • Getting Arbor
        • Customising Arbor
        • Advanced options
      • Note on performance
    • Spack Installation
      • Install Arbor
      • Build Options
      • Why use Spack?
      • Issues when using Spack
    • Build and install from source
      • Getting the code
      • Requirements
        • Dependencies
        • Minimum requirements
        • Optional requirements
      • Building and installing Arbor
        • Quick start: examples
        • Build target
        • Architecture
        • Vectorization
        • GPU backend
        • Python frontend
        • NeuroML support
        • Profiling
        • Installation
      • HPC clusters
        • MPI
        • Cray systems
      • Troubleshooting
        • Cross compiling NMODL
        • Debugging
        • CMake Git submodule warnings
  • Tutorials
    • Cells
      • A simple single cell model
        • The cell
        • The single cell model
        • The results
        • The full code
      • A simple single cell recipe
        • The cell
        • The recipe
        • The context and domain decomposition
        • The simulation
        • The results
      • A detailed single cell model
        • The cell
        • The model
        • The full code
      • A detailed single cell recipe
        • The cell
        • The recipe
        • The execution context
        • The domain decomposition
        • The simulation
        • The execution
        • The results
        • The full code
      • A simple dendrite
        • The full code
        • Walk-through
    • Networks
      • A ring network
        • The cell
        • The recipe
        • The execution
        • The results
        • The full code
      • Distributed ring network (MPI)
        • The recipe
        • The hardware context
        • The execution
        • The results
        • The full code
      • A single cell model from the Allen Brain Atlas
        • Obtaining the model
        • The morphology
        • The parameter fit
        • The decor
        • The model
        • The result
        • The full code
      • Two cells connected via a gap junction
        • The full code
        • Walk-through
    • Probes
      • Extracellular signals
        • The line source approximation
        • The model
        • Compute extracellular potentials
        • The result
        • The full code
        • References
  • Ecosystem
    • Arbor software
    • Wider ecosystem
      • Simulators
      • Frameworks

Concepts:

  • Concepts overview
  • Recipes
    • An example model
    • Are recipes always necessary?
    • Why recipes?
    • General best practices
    • API
  • Cells
    • Cell kind
    • Cell description
    • API
  • Interconnectivity
    • API
  • Hardware context
    • Execution context
    • API
  • Domain decomposition
    • Load balancers
    • API
  • Simulations
    • From recipe to simulation
    • Simulation execution and interaction
    • API
  • Cable cells
    • Cable cell morphology
      • Segment trees
      • Morphology
        • Examples
      • Supported file formats
      • Discretisation and CV policies
        • Composition of CV policies
        • Reading CV policies from strings
      • API
    • Cable cell labels
      • Example cell
      • Label types
      • Expressions
        • Expression syntax
        • Locset expressions
        • Region expressions
      • Thingification
        • Locations
        • Cables
      • Label Dictionaries
      • API
    • Cable cell mechanisms
      • Mechanism catalogues
        • Built-in Catalogues
        • Adding Catalogues to Arbor
        • Parameters
      • Mechanism types
        • Density mechanisms
        • Ion reversal potential mechanisms
        • Point mechanisms
        • Junction mechanisms
      • API
    • Cable cell decoration
      • Painted dynamics
        • 1. Cable properties
        • 3. Density mechanisms
        • 4. Ion species
      • Placed dynamics
        • 1. Connection sites
        • 2. Threshold detectors (spike detectors).
        • 3. Gap junction connection sites
        • 4. Stimuli
        • 5. Probes
      • API
    • Cable cell probing and sampling
      • API
    • API
  • LIF cells
    • API
  • Spike source cells
    • API
  • Benchmark cells
    • API

Modelling:

  • Modelling

File formats:

  • SWC
    • Arbor interpretation
    • NEURON interpretation
    • API
  • NeuroML2
    • Example
    • API
  • Neurolucida ASCII
    • Soma / CellBody
    • API
  • NMODL
    • Units
    • Ions
    • Special variables
    • Functions, procedures and blocks
    • Unsupported features
    • Arbor-specific features
    • Nernst
    • Tips for Faster NMODL
      • RANGE
      • PROCEDURE
      • PARAMETER
      • Sharing Expressions Between INITIAL and BREAKPOINT or DERIVATIVE
      • Complex Expressions in Current Computation
      • Specialised Functions
      • Small Tips and Micro-Optimisations
  • Arbor Cable Cell
    • Label dictionary
    • Decor
    • Morphology
    • Cable cell
    • Parsable arbor-components and meta-data
      • Label-dict
      • Decoration
      • Morphology
      • Cable-cell
    • API

API reference:

  • Python
    • Recipes
      • Recipe
      • Cells
      • Synapses
      • Event generator and schedules
      • Example
    • Cells
      • Cell identifiers and indexes
      • Cell kinds
    • Interconnectivity
    • Hardware context
      • Available resources
      • Prescribed resources
    • Domain decomposition
      • Load balancers
      • Decomposition
    • Simulations
      • From recipe to simulation
      • Recording spikes
      • Recording samples
        • Definitions
        • Procedure
        • Example
    • Profiler
    • Meter manager
      • Marking metering regions
      • Metering output
    • Cable cells
      • Cable cell morphology
        • Discretisation and CV policies
        • CV discretization as mcables
        • SWC
        • NeuroML
        • Neurolucida
      • Cable cell labels
      • Cable cell mechanisms
        • Mechanism catalogues
      • Cable cell decoration
      • Cable cell probing and sampling
      • Description Format
        • The arbor-components and meta-data
        • Reading and writing arbor-components
    • LIF cells
    • Spike source cells
    • Benchmark cells
    • Single cell model
  • C++
    • Recipes
      • C++ best practices
      • Recipe
      • Cells
      • Synapses
      • Probes
      • Event generator and schedules
      • Example
    • Cells
      • Cell identifiers and indexes
    • Interconnectivity
    • Hardware context
      • libarborenv
      • libarbor
      • Distributed context
        • Class documentation
      • Dry-run mode
    • Domain decomposition
      • Decomposition
      • Load balancers
    • Simulations
      • From recipe to simulation
      • Class documentation
    • Profiler
      • Compilation
      • Instrumenting code
        • Marking regions
        • Organising regions
      • Running the profiler
        • Profiler output
    • Cable cells
      • Cable cell morphology
        • Morphology API
        • Constructing cell morphologies
        • Identifying sites and subsets of the morphology
        • Translating regions and locsets to cables and locations
        • From morphologies to points and segments
        • Discretisation and CV policies
        • CV discretization as mcables
      • Supported morphology formats
        • SWC
        • Neurolucida ASCII
        • NeuroML
      • Cable cell probing and sampling
        • Cable cell probes
        • Sampling API
      • Description Format
        • The arbor-components and meta-data
        • Reading arbor-components
        • Writing arbor-components
      • The cable_cell object
      • Cell dynamics
      • Electrical properties and ion values
      • Global properties
      • Reversal potential dynamics
      • Overriding properties locally
    • Version and build information
      • Version information
      • Source information
      • Build information
      • Features
      • Full build information
  • Developers Guide
    • How the Cable Cell is made
      • Terminology
      • Setting up a Cable Cell simulation
      • Lowered Cells, Shared State, and the Discretisation
      • Main integration loop
    • Cell groups
      • Cable Cell group mc_cell_group
    • Matrix Solvers
      • Cable Equation
      • CPU
        • Assembly
        • Solving
      • GPU
    • SIMD Classes
      • Classes
        • Indirect expressions
        • Class simd
        • Class simd_mask
        • Class where_expression
      • Top-level functions
      • Implementation requirements
        • Minimal implementation
        • Concrete implementation API
      • Missing functionality
      • Implementation of vector transcendental functions
        • Exponentials
        • Logarithms
    • Shared State
      • Ions
      • Mechanisms
      • Further Functionality
    • Exporting Symbols
      • Macro Description
    • Adding Built-in Catalogues to Arbor
    • Mechanism ABI
      • Metadata: arb_mechanism_type
        • Tables
      • Interlude: Parameter packs
        • User Data
      • Implementation: arb_mechanism_interface
      • SIMDization
      • Making A Loadable Mechanism
      • Writing Mechanisms Directly Against the ABI
    • Utility wrappers and containers

Contributing:

  • Contributing to Arbor
    • Types of contributions
    • Github
      • Model
      • Start a discussion
      • Filing an issue
      • Help solving an Issue
      • Write code
      • Add examples or unit tests
      • Modify documentation
      • Making a pull request
    • Other contributions
    • Code of Conduct
      • Concerns
      • Ebrains
    • Get in touch
  • PR workflow
    • Issues
    • Making a pull request
    • Collaborating on a PR
      • Situation as a table
      • Steps
    • Reviewing a PR
    • Merging a PR
  • Coding Guidelines
    • Python
    • C++
    • Code organisation
      • Source files naming conventions
    • Namespaces
    • Formatting statements
      • Indentation and whitespace cleanup
      • Variable naming conventions
        • Recurring variables naming conventions
      • Member variables
      • Member initialisation lists
      • Member functions
      • Getters and Setters
      • Declaring references and pointers
      • Macros
      • Always use {}, even for single statement if, for, etc
      • don’t put { on a new line
      • leave a space between if, for etc and following parenthesis
      • use using instead of typedef
      • Use scoped enum instead of enum
      • Use struct for POD wrappers
    • Memory management
      • use unique_ptr
      • while avoiding shared_ptr whenever possible
    • Header files
      • use pragma once
      • don’t rely on headers being included elsewhere
      • Sort headers alphabetically
      • use C++ wrappers for C standard headers
      • group headers together
  • Documentation
    • Tutorials
    • Update policy
    • Labels and filename conventions
    • Language
  • Examples
    • Tutorials
  • Tests
    • Python tests
  • Releases
    • Release cycle
    • Procedure
      • Pre-release
        • Update tags/versions and test
        • Test the RC
      • Release
      • Post Release
  • Dependency management
    • List of dependencies
    • User platforms
    • Dependency update rules
Arbor v: latest
Arbor
  • Docs  » 
  • Developers Guide

Developers Guide¶

Here we document internal components of Arbor. These pages can be useful if you’re interested in developing on Arbor itself.

../_images/arbor-dep-graph.png

Arbor dependency graph. To see what dependencies Arbor has and how to generate this figure, see Dependency management.¶

Arbor Developers Guide:

  • How the Cable Cell is made
    • Terminology
    • Setting up a Cable Cell simulation
    • Lowered Cells, Shared State, and the Discretisation
    • Main integration loop
  • Cell groups
    • Cable Cell group mc_cell_group
  • Matrix Solvers
    • Cable Equation
    • CPU
    • GPU
  • SIMD Classes
    • Classes
    • Top-level functions
    • Implementation requirements
    • Missing functionality
    • Implementation of vector transcendental functions
  • Shared State
    • Ions
    • Mechanisms
    • Further Functionality
  • Exporting Symbols
    • Macro Description
  • Adding Built-in Catalogues to Arbor
  • Mechanism ABI
    • Metadata: arb_mechanism_type
    • Interlude: Parameter packs
    • Implementation: arb_mechanism_interface
    • SIMDization
    • Making A Loadable Mechanism
    • Writing Mechanisms Directly Against the ABI
  • Utility wrappers and containers

© Copyright 2017-2022, ETHZ & FZJ. Revision 0c3b8336.

Documentation v: latest
Versions
latest
stable
v0.6
v0.5.2
v0.5.1
v0.5
v0.4
Downloads