Get started:

  • Get Arbor
    • Python Installation
      • Getting Arbor
        • Customising Arbor
        • Advanced options
      • Note on performance
    • Spack Installation
    • Build and install from source
      • Requirements
        • Minimum requirements
        • Optional requirements
      • Getting the code
      • 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
    • 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 morphology
        • The label dictionary
        • The decorations
      • The model
        • The global properties
        • The probes
        • The simulation
        • The results
      • 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
    • 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
    • Two cells connected via a gap junction
      • The full code
      • Walk-through

Concepts:

  • Concepts overview
  • Recipes
    • Are recipes always necessary?
    • Why recipes?
    • General best practices
    • API
  • Cells
    • Cell kind
    • Cell description
    • API
  • Interconnectivity
    • API
  • Hardware management
    • 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
  • 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 management
      • 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 management
      • 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
  • Internals
    • Utility wrappers and containers
    • 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
    • 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

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
    • 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
Arbor v: v0.6
Arbor
  • Docs  » 
  • C++

C++¶

The C++ API is the recommended interface through which advanced users and HPC developers can access Arbor.

Arbor makes a distinction between the description of a model, and the execution of a model.

A arb::recipe describes a model, and a arb::simulation is an executable instantiation of a model.

C++ API:

  • Recipes
    • C++ best practices
    • Recipe
    • Cells
    • Synapses
    • Probes
    • Event generator and schedules
    • Example
  • Cells
    • Cell identifiers and indexes
  • Interconnectivity
  • Hardware management
    • libarborenv
    • libarbor
    • Distributed context
    • Dry-run mode
  • Domain decomposition
    • Decomposition
    • Load balancers
  • Simulations
    • From recipe to simulation
    • Class documentation
  • Profiler
    • Compilation
    • Instrumenting code
    • Running the profiler
  • Cable cells
    • Cable cell morphology
    • Supported morphology formats
    • Cable cell probing and sampling
    • Description Format
    • 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

© Copyright 2017-2021, ETHZ & FZJ. Revision 930c23eb.

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