NEST main@caf0ae8
 
Loading...
Searching...
No Matches
conn_builder.h
Go to the documentation of this file.
1/*
2 * conn_builder.h
3 *
4 * This file is part of NEST.
5 *
6 * Copyright (C) 2004 The NEST Initiative
7 *
8 * NEST is free software: you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation, either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * NEST is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with NEST. If not, see <http://www.gnu.org/licenses/>.
20 *
21 */
22
23#ifndef CONN_BUILDER_H
24#define CONN_BUILDER_H
25
33// C++ includes:
34#include <map>
35#include <set>
36#include <stdexcept>
37#include <vector>
38
39// Includes from libnestutil
40#include "block_vector.h"
41
42// Includes from nestkernel:
43#include "conn_parameter.h"
44#include "nest_time.h"
45#include "node_collection.h"
46#include "parameter.h"
47
48
49namespace nest
50{
51class Node;
52class ConnParameter;
53class SparseNodeArray;
54class BipartiteConnBuilder;
55class ThirdInBuilder;
56class ThirdOutBuilder;
57
58
69{
70public:
72 virtual void connect();
73
75 virtual void disconnect();
76
88 NodeCollectionPTR targets,
89 ThirdOutBuilder* third_out,
90 const Dictionary& conn_spec,
91 const std::vector< Dictionary >& syn_specs );
92 virtual ~BipartiteConnBuilder();
93
94 size_t
96 {
97 if ( synapse_model_id_.size() > 1 )
98 {
99 throw KernelException( "Can only retrieve synapse model when one synapse per connection is used." );
100 }
101 assert( not synapse_model_id_.empty() );
102 return synapse_model_id_[ 0 ];
103 }
104
105 bool
107 {
108 if ( synapse_model_id_.size() > 1 )
109 {
110 throw KernelException( "Can only retrieve default delay when one synapse per connection is used." );
111 }
112 assert( not default_delay_.empty() );
113 return default_delay_[ 0 ];
114 }
115
116 void set_synaptic_element_names( const std::string& pre_name, const std::string& post_name );
117
127 bool change_connected_synaptic_elements( size_t snode_id, size_t tnode_id, const size_t tid, int update );
128
130 virtual bool
132 {
133 return false;
134 }
135
137 virtual bool
139 {
140 return false;
141 }
142
143 bool
145 {
146 return allow_autapses_;
147 }
148
149 bool
151 {
152 return allow_multapses_;
153 }
154
156 virtual bool
158 {
159 return true;
160 }
161
162protected:
164 virtual void connect_() = 0;
165
166 bool all_parameters_scalar_() const;
167
168 virtual void
170 {
171 throw NotImplemented( "This connection rule is not implemented for structural plasticity." );
172 }
173
174 virtual void
176 {
177 throw NotImplemented( "This disconnection rule is not implemented." );
178 }
179
180 virtual void
182 {
183 throw NotImplemented( "This connection rule is not implemented for structural plasticity." );
184 }
185
186 void update_param_dict_( size_t snode_id, Node& target, size_t target_thread, RngPtr rng, size_t indx );
187
189 void single_connect_( size_t, Node&, size_t, RngPtr );
190 void single_disconnect_( size_t, Node&, size_t );
191
201 void skip_conn_parameter_( size_t, size_t n_skip = 1 );
202
217 bool loop_over_targets_() const;
218
221
223
228
230 std::vector< std::exception_ptr > exceptions_raised_;
231
232 // Name of the pre synaptic and postsynaptic elements for this connection builder
235
237
239 std::vector< ConnParameter* > parameters_requiring_skipping_;
240
241 std::vector< size_t > synapse_model_id_;
242
250 std::vector< std::vector< Dictionary > > param_dicts_;
251
252private:
253 typedef std::map< std::string, ConnParameter* > ConnParameterMap;
254
256 std::vector< bool > default_weight_and_delay_;
257
259 std::vector< bool > default_weight_;
260
262 std::vector< bool > default_delay_;
263
264 // null-pointer indicates that default be used
265 std::vector< ConnParameter* > weights_;
266 std::vector< ConnParameter* > delays_;
267
269 std::vector< ConnParameterMap > synapse_params_;
270
272 std::set< std::string > skip_syn_params_;
273
282
286 void set_synapse_model_( const Dictionary& syn_params, const size_t indx );
287 void set_default_weight_or_delay_( const Dictionary& syn_params, const size_t indx );
288 void set_synapse_params( const Dictionary& syn_defaults, const Dictionary& syn_params, const size_t indx );
289
305 void set_structural_plasticity_parameters( const std::vector< Dictionary >& syn_specs );
306
310 void reset_weights_();
311 void reset_delays_();
312};
313
314
333{
334public:
347 NodeCollectionPTR third,
348 const Dictionary& third_conn_spec,
349 const std::vector< Dictionary >& syn_specs );
351
358 void register_connection( size_t primary_source_id, size_t third_node_id );
359
360private:
362 void connect_() override;
363
370 {
372 : source_gid( 0 )
373 , third_gid( 0 )
374 , third_rank( 0 )
375 {
376 }
377 SourceThirdInfo_( size_t src, size_t trd, size_t rank )
378 : source_gid( src )
379 , third_gid( trd )
380 , third_rank( rank )
381 {
382 }
383
384 size_t source_gid;
385 size_t third_gid;
386 size_t third_rank;
387 };
388
391 std::vector< BlockVector< SourceThirdInfo_ >* > source_third_gids_;
392
394 std::vector< std::vector< size_t >* > source_third_counts_;
395};
396
397
408{
409public:
420 const NodeCollectionPTR targets,
421 ThirdInBuilder* third_in,
422 const Dictionary& third_conn_spec,
423 const std::vector< Dictionary >& syn_specs );
424
426 void
427 connect() override final
428 {
429 assert( false );
430 }
431
438 virtual void third_connect( size_t source_gid, Node& target ) = 0;
439
440protected:
442};
443
444
452{
453public:
463 ConnBuilder( const std::string& primary_rule,
464 NodeCollectionPTR sources,
465 NodeCollectionPTR targets,
466 const Dictionary& conn_spec,
467 const std::vector< Dictionary >& syn_specs );
468
482 ConnBuilder( const std::string& primary_rule,
483 const std::string& third_rule,
484 NodeCollectionPTR sources,
485 NodeCollectionPTR targets,
486 NodeCollectionPTR third,
487 const Dictionary& conn_spec,
488 const Dictionary& third_conn_spec,
489 const std::map< std::string, std::vector< Dictionary > >& syn_specs );
490
491 ~ConnBuilder();
492
494 void connect();
495
497 void disconnect();
498
499private:
500 // Order of declarations based on dependencies, do not change.
504};
505
511{
512public:
516 const Dictionary&,
517 const std::vector< Dictionary >& );
519
520 void third_connect( size_t source_gid, Node& target ) override;
521
522private:
523 void
524 connect_() override
525 {
526 assert( false );
527 }
528
534 size_t get_first_pool_index_( const size_t target_index ) const;
535
536 double p_;
538 size_t pool_size_;
540
546 typedef std::vector< NodeIDTriple > PoolType_;
547
549 typedef std::map< size_t, PoolType_ > TgtPoolMap_;
550
560 std::vector< TgtPoolMap_* > pools_; // outer: threads
561};
562
563
565{
566public:
568 NodeCollectionPTR targets,
569 ThirdOutBuilder* third_out,
570 const Dictionary& conn_spec,
571 const std::vector< Dictionary >& syn_specs );
572
573 bool
574 supports_symmetric() const override
575 {
576 return true;
577 }
578
579 bool
580 requires_proxies() const override
581 {
582 return false;
583 }
584
585protected:
586 void connect_() override;
587
594 void sp_connect_() override;
595
601 void disconnect_() override;
602
609 void sp_disconnect_() override;
610};
611
613{
614public:
616 NodeCollectionPTR targets,
617 ThirdOutBuilder* third_out,
618 const Dictionary& conn_spec,
619 const std::vector< Dictionary >& syn_specs )
620 : BipartiteConnBuilder( sources, targets, third_out, conn_spec, syn_specs )
621 {
622 }
623
624 bool
625 is_symmetric() const override
626 {
628 }
629
630 bool
631 requires_proxies() const override
632 {
633 return false;
634 }
635
636protected:
637 void connect_() override;
638
645 void sp_connect_() override;
646
652 void disconnect_() override;
653
660 void sp_disconnect_() override;
661
662private:
663 void inner_connect_( const int, RngPtr, Node*, size_t, bool );
664};
665
666
668{
669public:
672 ThirdOutBuilder* third_out,
673 const Dictionary&,
674 const std::vector< Dictionary >& );
675
676protected:
677 void connect_() override;
678
679private:
680 void inner_connect_( const int, RngPtr, Node*, size_t, bool, long );
682};
683
685{
686public:
689 ThirdOutBuilder* third_out,
690 const Dictionary&,
691 const std::vector< Dictionary >& );
692
693protected:
694 void connect_() override;
695
696private:
698};
699
701{
702public:
705 ThirdOutBuilder* third_out,
706 const Dictionary&,
707 const std::vector< Dictionary >& );
708
709protected:
710 void connect_() override;
711
712private:
713 long N_;
714};
715
717{
718public:
721 ThirdOutBuilder* third_out,
722 const Dictionary&,
723 const std::vector< Dictionary >& );
724
725protected:
726 void connect_() override;
727
728private:
729 void inner_connect_( const int, RngPtr, Node*, size_t );
731};
732
734{
735public:
738 ThirdOutBuilder* third_out,
739 const Dictionary&,
740 const std::vector< Dictionary >& );
741
742protected:
743 void connect_() override;
744
745private:
746 void inner_connect_( const int, RngPtr, Node*, size_t );
748};
749
751{
752public:
755 ThirdOutBuilder* third_out,
756 const Dictionary&,
757 const std::vector< Dictionary >& );
758
759 bool
760 supports_symmetric() const override
761 {
762 return true;
763 }
764
765protected:
766 void connect_() override;
767
768private:
769 double p_;
770};
771
773{
774public:
785 NodeCollectionPTR targets,
786 ThirdOutBuilder* third_out,
787 const Dictionary& conn_spec,
788 const std::vector< Dictionary >& syn_spec );
789
790 const std::string&
795
796 const std::string&
801
802 void
803 set_name( const std::string& name )
804 {
805 name_ = name;
806 }
807
808 std::string
809 get_name() const
810 {
811 return name_;
812 }
813
819 void update_delay( long& d ) const;
820
824 void sp_connect( const std::vector< size_t >& sources, const std::vector< size_t >& targets );
825
826protected:
828 std::string name_;
829
831 void connect_() override;
832 void connect_( NodeCollectionPTR sources, NodeCollectionPTR targets );
833
840 void connect_( const std::vector< size_t >& sources, const std::vector< size_t >& targets );
841};
842
843inline void
845{
846 if ( param.is_array() )
847 {
848 parameters_requiring_skipping_.push_back( &param );
849 }
850}
851
852inline void
853BipartiteConnBuilder::skip_conn_parameter_( size_t target_thread, size_t n_skip )
854{
855 for ( std::vector< ConnParameter* >::iterator it = parameters_requiring_skipping_.begin();
857 ++it )
858 {
859 ( *it )->skip( target_thread, n_skip );
860 }
861}
862
863} // namespace nest
864
865#endif
Dictionary class for interface to Python and C++ API.
Definition dictionary.h:213
Create ThirdInBuilder.
Create new bipartite builder.
Definition conn_builder.h:613
void sp_connect_() override
Connect two nodes in a AllToAll fashion with structural plasticity.
Definition conn_builder.cpp:1260
bool is_symmetric() const override
Return true if rule automatically creates symmetric connectivity.
Definition conn_builder.h:625
void sp_disconnect_() override
Disconnect two nodes connected in a AllToAll fashion with structural plasticity.
Definition conn_builder.cpp:1354
void connect_() override
Implements the actual connection algorithm.
Definition conn_builder.cpp:1172
bool requires_proxies() const override
Return true if rule is applicable only to nodes with proxies.
Definition conn_builder.h:631
AllToAllBuilder(NodeCollectionPTR sources, NodeCollectionPTR targets, ThirdOutBuilder *third_out, const Dictionary &conn_spec, const std::vector< Dictionary > &syn_specs)
Definition conn_builder.h:615
void disconnect_() override
Disconnecti two nodes connected in a AllToAll fashion without structural plasticity.
Definition conn_builder.cpp:1305
void inner_connect_(const int, RngPtr, Node *, size_t, bool)
Definition conn_builder.cpp:1227
Base class for RNG engine wrappers.
Definition random_generators.h:67
Definition conn_builder.h:717
void connect_() override
Implements the actual connection algorithm.
Definition conn_builder.cpp:1883
void inner_connect_(const int, RngPtr, Node *, size_t)
Definition conn_builder.cpp:1939
ParameterPTR p_
connection probability
Definition conn_builder.h:730
Abstract base class for Bipartite ConnBuilders which form the components of ConnBuilder.
Definition conn_builder.h:69
void set_structural_plasticity_parameters(const std::vector< Dictionary > &syn_specs)
Set structural plasticity parameters (if provided)
Definition conn_builder.cpp:585
virtual void disconnect_()
Definition conn_builder.h:175
virtual void connect()
Connect with or without structural plasticity.
Definition conn_builder.cpp:269
bool use_structural_plasticity_
Definition conn_builder.h:236
void update_param_dict_(size_t snode_id, Node &target, size_t target_thread, RngPtr rng, size_t indx)
Definition conn_builder.cpp:357
void set_synapse_params(const Dictionary &syn_defaults, const Dictionary &syn_params, const size_t indx)
Definition conn_builder.cpp:545
std::string post_synaptic_element_name_
Definition conn_builder.h:234
void reset_delays_()
Definition conn_builder.cpp:637
void reset_weights_()
Reset weight and delay pointers.
Definition conn_builder.cpp:625
size_t get_synapse_model() const
Definition conn_builder.h:95
bool loop_over_targets_() const
Returns true if conventional looping over targets is indicated.
Definition conn_builder.cpp:487
NodeCollectionPTR sources_
Population to connect from.
Definition conn_builder.h:219
bool allows_autapses() const
Definition conn_builder.h:144
std::vector< bool > default_weight_and_delay_
indicate that weight and delay should not be set per synapse
Definition conn_builder.h:256
bool allow_autapses_
Definition conn_builder.h:224
std::vector< std::vector< Dictionary > > param_dicts_
Dictionaries to pass to connect function, one per thread for every syn_spec.
Definition conn_builder.h:250
virtual ~BipartiteConnBuilder()
Definition conn_builder.cpp:201
std::vector< bool > default_delay_
indicate that delay should not be set per synapse
Definition conn_builder.h:262
bool get_default_delay() const
Definition conn_builder.h:106
void set_synapse_model_(const Dictionary &syn_params, const size_t indx)
Set synapse specific parameters.
Definition conn_builder.cpp:494
void skip_conn_parameter_(size_t, size_t n_skip=1)
Moves pointer in parameter array.
Definition conn_builder.h:853
bool change_connected_synaptic_elements(size_t snode_id, size_t tnode_id, const size_t tid, int update)
Updates the number of connected synaptic elements in the target and the source.
Definition conn_builder.cpp:223
virtual void connect_()=0
Implements the actual connection algorithm.
virtual bool requires_proxies() const
Return true if rule is applicable only to nodes with proxies.
Definition conn_builder.h:157
void register_parameters_requiring_skipping_(ConnParameter &param)
Collects all array parameters in a vector.
Definition conn_builder.h:844
std::vector< ConnParameter * > delays_
Definition conn_builder.h:266
std::vector< ConnParameter * > parameters_requiring_skipping_
Pointers to connection parameters specified as arrays.
Definition conn_builder.h:239
NodeCollectionPTR targets_
Population to connect to.
Definition conn_builder.h:220
std::vector< ConnParameter * > weights_
Definition conn_builder.h:265
std::vector< bool > default_weight_
indicate that weight should not be set per synapse
Definition conn_builder.h:259
bool creates_symmetric_connections_
Definition conn_builder.h:227
bool all_parameters_scalar_() const
Definition conn_builder.cpp:455
void set_default_weight_or_delay_(const Dictionary &syn_params, const size_t indx)
Definition conn_builder.cpp:510
virtual void disconnect()
Delete synapses with or without structural plasticity.
Definition conn_builder.cpp:335
bool allow_multapses_
Definition conn_builder.h:225
std::vector< std::exception_ptr > exceptions_raised_
buffer for exceptions raised in threads
Definition conn_builder.h:230
bool allows_multapses() const
Definition conn_builder.h:150
ThirdOutBuilder * third_out_
To be triggered when primary connection is created.
Definition conn_builder.h:222
void set_synaptic_element_names(const std::string &pre_name, const std::string &post_name)
Definition conn_builder.cpp:441
virtual void sp_disconnect_()
Definition conn_builder.h:181
std::string pre_synaptic_element_name_
Definition conn_builder.h:233
virtual bool supports_symmetric() const
Return true if rule allows creation of symmetric connectivity.
Definition conn_builder.h:131
virtual bool is_symmetric() const
Return true if rule automatically creates symmetric connectivity.
Definition conn_builder.h:138
virtual void sp_connect_()
Definition conn_builder.h:169
void single_connect_(size_t, Node &, size_t, RngPtr)
Create connection between given nodes, fill parameter values.
Definition conn_builder.cpp:381
void single_disconnect_(size_t, Node &, size_t)
Definition conn_builder_impl.h:36
std::set< std::string > skip_syn_params_
synapse-specific parameters that should be skipped when we set default synapse parameters
Definition conn_builder.h:272
std::vector< ConnParameterMap > synapse_params_
all other parameters, mapping name to value representation
Definition conn_builder.h:269
bool make_symmetric_
Definition conn_builder.h:226
std::vector< size_t > synapse_model_id_
Definition conn_builder.h:241
std::map< std::string, ConnParameter * > ConnParameterMap
Definition conn_builder.h:253
Class representing a connection builder which may be bi- or tripartite.
Definition conn_builder.h:452
void disconnect()
Delete synapses with or without structural plasticity.
Definition conn_builder.cpp:106
void connect()
Connect with or without structural plasticity.
Definition conn_builder.cpp:96
BipartiteConnBuilder * primary_builder_
Definition conn_builder.h:503
ThirdOutBuilder * third_out_builder_
Definition conn_builder.h:502
~ConnBuilder()
Definition conn_builder.cpp:88
ThirdInBuilder * third_in_builder_
Definition conn_builder.h:501
Definition conn_parameter.h:50
virtual bool is_array() const =0
Definition conn_builder.h:668
void connect_() override
Implements the actual connection algorithm.
Definition conn_builder.cpp:1450
ParameterPTR indegree_
Definition conn_builder.h:681
void inner_connect_(const int, RngPtr, Node *, size_t, bool, long)
Definition conn_builder.cpp:1510
Definition conn_builder.h:685
ParameterPTR outdegree_
Definition conn_builder.h:697
void connect_() override
Implements the actual connection algorithm.
Definition conn_builder.cpp:1615
Definition conn_builder.h:701
long N_
Definition conn_builder.h:713
void connect_() override
Implements the actual connection algorithm.
Definition conn_builder.cpp:1723
Base class for all Kernel exceptions.
Definition exceptions.h:65
Base class for all NEST network objects.
Definition node.h:99
Exception to be thrown if a feature is unavailable.
Definition exceptions.h:108
Definition conn_builder.h:565
bool supports_symmetric() const override
Return true if rule allows creation of symmetric connectivity.
Definition conn_builder.h:574
void connect_() override
Implements the actual connection algorithm.
Definition conn_builder.cpp:962
void disconnect_() override
Disconnecti two nodes connected in a OneToOne fashion without structural plasticity.
Definition conn_builder.cpp:1040
void sp_connect_() override
Connect two nodes in a OneToOne fashion with structural plasticity.
Definition conn_builder.cpp:1087
bool requires_proxies() const override
Return true if rule is applicable only to nodes with proxies.
Definition conn_builder.h:580
void sp_disconnect_() override
Disconnect two nodes connected in a OneToOne fashion with structural plasticity.
Definition conn_builder.cpp:1133
Definition conn_builder.h:734
void inner_connect_(const int, RngPtr, Node *, size_t)
Definition conn_builder.cpp:2055
ParameterPTR pairwise_avg_num_conns_
Mean number of connections.
Definition conn_builder.h:747
void connect_() override
Implements the actual connection algorithm.
Definition conn_builder.cpp:2002
Definition conn_builder.h:773
void connect_() override
Implements the actual connection algorithm.
Definition conn_builder.cpp:2257
const std::string & get_post_synaptic_element_name() const
Definition conn_builder.h:797
void set_name(const std::string &name)
Definition conn_builder.h:803
const std::string & get_pre_synaptic_element_name() const
Definition conn_builder.h:791
std::string get_name() const
Definition conn_builder.h:809
std::string name_
The name of the SPBuilder; used to identify its properties in the structural_plasticity_synapses kern...
Definition conn_builder.h:828
void sp_connect(const std::vector< size_t > &sources, const std::vector< size_t > &targets)
Definition conn_builder.cpp:2242
void update_delay(long &d) const
Writes the default delay of the connection model, if the SPBuilder only uses the default delay.
Definition conn_builder.cpp:2231
Definition conn_builder.h:751
void connect_() override
Implements the actual connection algorithm.
Definition conn_builder.cpp:2123
bool supports_symmetric() const override
Return true if rule allows creation of symmetric connectivity.
Definition conn_builder.h:760
double p_
connection probability
Definition conn_builder.h:769
Build third-factor connectivity based on Bernoulli trials, selecting third factor nodes from a fixed ...
Definition conn_builder.h:511
~ThirdBernoulliWithPoolBuilder()
Definition conn_builder.cpp:868
bool random_pool_
random or block pool?
Definition conn_builder.h:537
double p_
probability of creating a third-factor connection
Definition conn_builder.h:536
size_t get_first_pool_index_(const size_t target_index) const
For block pool, return index of first pool element for given target node.
Definition conn_builder.cpp:936
void third_connect(size_t source_gid, Node &target) override
Create third-factor connection for given primary connection.
Definition conn_builder.cpp:892
void connect_() override
only call third_connect()
Definition conn_builder.h:524
std::vector< NodeIDTriple > PoolType_
Type for single pool of third-factor nodes.
Definition conn_builder.h:546
std::vector< TgtPoolMap_ * > pools_
Thread-specific pools of third-factor nodes.
Definition conn_builder.h:560
size_t pool_size_
number of nodes per pool
Definition conn_builder.h:538
std::map< size_t, PoolType_ > TgtPoolMap_
Type mapping target GID to pool for this target.
Definition conn_builder.h:549
size_t targets_per_third_
number of target nodes per third-factor node
Definition conn_builder.h:539
Builder creating "thírd in" connections based on data from "third out" builder.
Definition conn_builder.h:333
std::vector< std::vector< size_t > * > source_third_counts_
Number of source-third pairs to send. Outer dimension is writing thread, inner dimension MPI rank to ...
Definition conn_builder.h:394
std::vector< BlockVector< SourceThirdInfo_ > * > source_third_gids_
Container for register source-third connections, one per thread via pointer for collision free operat...
Definition conn_builder.h:391
void register_connection(size_t primary_source_id, size_t third_node_id)
Register required source node to third-factor node connection.
Definition conn_builder.cpp:675
void connect_() override
Exchange required connection info via MPI and create needed connections locally.
Definition conn_builder.cpp:685
~ThirdInBuilder()
Definition conn_builder.cpp:664
Builder for connections from third-factor nodes to primary target populations.
Definition conn_builder.h:408
virtual void third_connect(size_t source_gid, Node &target)=0
Create third-factor connection for given primary connection.
void connect() override final
Only call third_connect() on ThirdOutBuilder.
Definition conn_builder.h:427
ThirdInBuilder * third_in_
Definition conn_builder.h:441
Namespace for the NEST simulation kernel.
Definition beta_normalization_factor.h:33
std::shared_ptr< Parameter > ParameterPTR
Definition parameter.h:40
std::shared_ptr< NodeCollection > NodeCollectionPTR
Definition node_collection.h:50
Provide information on connections from primary source to third-factor population.
Definition conn_builder.h:370
SourceThirdInfo_()
Definition conn_builder.h:371
size_t third_gid
GID of third-factor node to connect to.
Definition conn_builder.h:385
size_t third_rank
Rank of third-factor node (stored locally as it is needed multiple times)
Definition conn_builder.h:386
SourceThirdInfo_(size_t src, size_t trd, size_t rank)
Definition conn_builder.h:377
size_t source_gid
GID of source node to connect from.
Definition conn_builder.h:384