NEURON
solve.cpp File Reference
#include <../../nrnconf.h>
#include "membdef.h"
#include "membfunc.h"
#include "nrniv_mf.h"
#include "nrnmpiuse.h"
#include "ocnotify.h"
#include "section.h"
#include "spmatrix.h"
#include "treeset.h"
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <utility>

Go to the source code of this file.

Functions

static void node_free ()
 
static void triang (NrnThread *)
 
static void bksub (NrnThread *)
 
double node_dist (Section *sec, Node *node)
 
double topol_distance (Section *sec1, Node *node1, Section *sec2, Node *node2, Section **prootsec, Node **prootnode)
 
void distance (void)
 
static void dashes (Section *sec, int offset, int first)
 
void nrnhoc_topology (void)
 
void nrn_solve (NrnThread *_nt)
 
void nrn_clear_mark (void)
 
short nrn_increment_mark (Section *sec)
 
short nrn_value_mark (Section *sec)
 
Sectionsec_alloc ()
 Allocate a new Section object. More...
 
static void node_free (Section *sec)
 
static void section_unlink (Section *sec)
 
void sec_free (hoc_Item *secitem)
 
void section_unref (Section *sec)
 
void section_ref (Section *sec)
 
void nrn_sec_ref (Section **psec, Section *sec)
 
void node_destruct (Node **pnode, int n)
 
static Nodenode_clone (Node *nd1)
 
static void node_realloc (Section *sec, short nseg)
 
void node_alloc (Section *sec, short nseg)
 
void section_order (void)
 

Variables

void(* nrn_multisplit_solve_ )()
 
void(* nrnpy_o2loc_p_ )(Object *, Section **, double *)
 
void(* nrnpy_o2loc2_p_ )(Object *, Section **, double *)
 
int section_count
 
Section ** secorder
 
static Sectionorigin_sec
 
int keep_nseg_parm_
 

Function Documentation

◆ bksub()

void bksub ( NrnThread _nt)

Definition at line 410 of file solve.cpp.

◆ dashes()

static void dashes ( Section sec,
int  offset,
int  first 
)
static

Definition at line 299 of file solve.cpp.

◆ distance()

void distance ( void  )

Definition at line 226 of file solve.cpp.

◆ node_alloc()

void node_alloc ( Section sec,
short  nseg 
)

Definition at line 705 of file solve.cpp.

◆ node_clone()

static Node* node_clone ( Node nd1)
static

Definition at line 582 of file solve.cpp.

◆ node_destruct()

void node_destruct ( Node **  pnode,
int  n 
)

Definition at line 569 of file solve.cpp.

◆ node_dist()

double node_dist ( Section sec,
Node node 
)

Definition at line 153 of file solve.cpp.

◆ node_free() [1/2]

static void node_free ( )
static

◆ node_free() [2/2]

static void node_free ( Section sec)
static

Definition at line 450 of file solve.cpp.

◆ node_realloc()

static void node_realloc ( Section sec,
short  nseg 
)
static

Definition at line 628 of file solve.cpp.

◆ nrn_clear_mark()

void nrn_clear_mark ( void  )

Definition at line 426 of file solve.cpp.

◆ nrn_increment_mark()

short nrn_increment_mark ( Section sec)

Definition at line 431 of file solve.cpp.

◆ nrn_sec_ref()

void nrn_sec_ref ( Section **  psec,
Section sec 
)

Definition at line 525 of file solve.cpp.

◆ nrn_solve()

void nrn_solve ( NrnThread _nt)

Definition at line 333 of file solve.cpp.

◆ nrn_value_mark()

short nrn_value_mark ( Section sec)

Definition at line 434 of file solve.cpp.

◆ nrnhoc_topology()

void nrnhoc_topology ( void  )

Definition at line 285 of file solve.cpp.

◆ sec_alloc()

Section* sec_alloc ( )

Allocate a new Section object.

Changed from emalloc to allocation from a SectionPool in order to allow safe checking of whether a void* is a possible Section* without the possibility of invalid memory read errors. Note that freeing sections must be done with nrn_section_free(Section*).

Definition at line 445 of file solve.cpp.

◆ sec_free()

void sec_free ( hoc_Item secitem)

Definition at line 467 of file solve.cpp.

◆ section_order()

void section_order ( void  )

Definition at line 729 of file solve.cpp.

◆ section_ref()

void section_ref ( Section sec)

Definition at line 520 of file solve.cpp.

◆ section_unlink()

static void section_unlink ( Section sec)
static

Definition at line 536 of file solve.cpp.

◆ section_unref()

void section_unref ( Section sec)

Definition at line 509 of file solve.cpp.

◆ topol_distance()

double topol_distance ( Section sec1,
Node node1,
Section sec2,
Node node2,
Section **  prootsec,
Node **  prootnode 
)

Definition at line 167 of file solve.cpp.

◆ triang()

static void triang ( NrnThread _nt)
static

Definition at line 393 of file solve.cpp.

Variable Documentation

◆ keep_nseg_parm_

int keep_nseg_parm_
extern

Definition at line 1474 of file cabcode.cpp.

◆ nrn_multisplit_solve_

void(* nrn_multisplit_solve_) () ( )

Definition at line 76 of file solve.cpp.

◆ nrnpy_o2loc2_p_

void(* nrnpy_o2loc2_p_) (Object *, Section **, double *) ( Object ,
Section **  ,
double *   
)
extern

Definition at line 31 of file point.cpp.

◆ nrnpy_o2loc_p_

void(* nrnpy_o2loc_p_) (Object *, Section **, double *) ( Object ,
Section **  ,
double *   
)
extern

Definition at line 30 of file point.cpp.

◆ origin_sec

Section* origin_sec
static

Definition at line 224 of file solve.cpp.

◆ secorder

Section** secorder

Definition at line 82 of file solve.cpp.

◆ section_count

int section_count

Definition at line 81 of file solve.cpp.