Network Multisplit Problem

General issues of interest both for network and
individual cell parallelization.

Moderator: hines

Post Reply
Krishna Chaitanya
Posts: 70
Joined: Wed Jan 18, 2012 12:25 am
Location: University of Pavia

Network Multisplit Problem

Post by Krishna Chaitanya » Sun Apr 01, 2012 6:24 am

Hi,

When I am trying to test a network with multisplit method described in Hines 2008 paper, the following error results.

all not a public member of GrC
0 /mirror/neuron/nrn-7.3/x86_64/bin/nrniv: GrC all
0 in init1.hoc near line 95
0 model()
^
0 CellBalanceInfo[0].msdiv(GrC[0], SectionRef[8], 100, ParallelContext[0], 0)
0 CellBalanceInfo[0].multisplit(..., 100, ParallelContext[0], 0)
0 multisplit(GrC[1], 2)
0 model()
application called MPI_Abort(MPI_COMM_WORLD, -1) - process 0

Can anyone tell me what could be the problem? Thank you.

ted
Site Admin
Posts: 5619
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Network Multisplit Problem

Post by ted » Sun Apr 01, 2012 11:58 am

Krishna Chaitanya wrote:all not a public member of GrC
This means that the GrC class does not have a public member called "all". By convention, "all" is used in a cell class template as the name of the SectionList to which all sections have been appended. Think of "all" as a set of all sections in an instance of a cell class. If the GrC template is short (<25 lines), include it in your reply on this thread and I will tell you how to fix the problem. If it is long, email it to me
ted dot carnevale at yale dot edu

Krishna Chaitanya
Posts: 70
Joined: Wed Jan 18, 2012 12:25 am
Location: University of Pavia

Re: Network Multisplit Problem

Post by Krishna Chaitanya » Mon Apr 02, 2012 10:37 pm

Dear Ted,

Thank you very much for the reply. Please kindly let me know the corrections in the file. Thank you.
Last edited by Krishna Chaitanya on Wed Apr 04, 2012 9:40 am, edited 1 time in total.

ted
Site Admin
Posts: 5619
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Network Multisplit Problem

Post by ted » Tue Apr 03, 2012 12:12 pm

The error message you received referred to a problem with an instance of the GrC class--specifically, that it did not have a public member called "all". In the code you sent I find three templates that define cell classes. Of these, two (one in Grc_Cell.hoc and the other in GrcTemplateMC.hoc) define a cell class named GrC. Neither of the GrC templates has a public member called "all".

"all" is typically used in a cell class as the name for the set that contains all sections that belong to an instance of that class. So you need to add something to your GrC template (you'll know which one, I am sure) so that each instance of the GrC class will have such a public member.

How? The easiest way is to use the CellBuilder to make a toy model cell, then export a cell class from the CellBuilder, look at the resulting hoc code to see how the CellBuilder does it, then adopt this strategy to your own code.

Which is what I did, and here is what you need to do:

1. In your GrC template, right after the statement
public soma, . . .
insert this statement:
public all

2. At the very end of your GrC template's proc init(), i.e. before its closing bracket, insert this statement:
subsets()

3. At the very end of your GrC template, i.e. before its closing bracket, insert the following statements:

Code: Select all

objref all
proc subsets() {
  objref all
  all = new Section.List()
  . . . statements that append each of your model cell's sections to all, 
        e.g.
        soma all.append() . . .
}

Post Reply