#include <multisplitcontrol.h>
MultiSplitControl::MultiSplitControl | ( | ) |
References area2buf_, area2rt_, area_node_indices_, buf_area_indices_, classical_root_to_multisplit_, iarea_short_long_, ihost_reduced_long_, ihost_short_long_, msti_, mth_, multisplit_list_, narea2buf_, narea2rt_, narea_, ndbsize, nodeindex_buffer_, nodeindex_buffer_th_, nodeindex_rthost_, nrtree_, nth_, nthost_, rtree_, tbsize, trecvbuf_, and tsendbuf_.
MultiSplitControl::~MultiSplitControl | ( | ) | [virtual] |
void MultiSplitControl::del_msti | ( | ) |
References area2buf_, area2rt_, area_node_indices_, buf_area_indices_, i, MultiSplitTransferInfo::ioffdiag_, msti_, narea2buf_, narea2rt_, narea_, MultiSplitTransferInfo::nd_rt_index_, MultiSplitTransferInfo::nd_rt_index_th_, nodeindex_buffer_, nodeindex_buffer_th_, nodeindex_rthost_, nrtree_, nthost_, MultiSplitTransferInfo::offdiag_, rtree_, trecvbuf_, and tsendbuf_.
Referenced by exchange_setup(), and multisplit_clear().
void MultiSplitControl::exchange_setup | ( | ) |
References Node::_classical_parent, NrnThread::_v_node, area2buf_, area2rt_, area_node_indices_, assert, b, MultiSplit::back_index, MultiSplitThread::backAindex_, MultiSplitThread::backBindex_, MultiSplit::backbone_style, MultiSplitThread::backsid_, buf_area_indices_, classical_root_to_multisplit_, D, del_msti(), diam_changed, displ, MultiSplitTransferInfo::displ_, ReducedTree::fillrmap(), ReducedTree::fillsmap(), hoc_execerror(), MultiSplitTransferInfo::host_, i, iarea_short_long_, ib, Area2Buf::ibuf, NrnThread::id, ihost_reduced_long_, ihost_short_long_, Area2Buf::inode, Area2RT::inode, inode, MultiSplitTransferInfo::ioffdiag_, ReducedTree::irfill, MultiSplit::ithread, m, Area2Buf::ms, Area2RT::ms, msti_, mth_, multisplit_list_, Area2Buf::n, Area2RT::n, n, narea2buf_, narea2rt_, narea_, nd, MultiSplit::nd, MultiSplitTransferInfo::nd_rt_index_, MultiSplitTransferInfo::nd_rt_index_th_, ndbsize, Section::nnode, MultiSplitTransferInfo::nnode_, MultiSplitTransferInfo::nnode_rt_, MultiSplitTransferInfo::nodeindex_, nodeindex_buffer_, nodeindex_buffer_th_, nodeindex_rthost_, MultiSplitTransferInfo::nodeindex_th_, nrn_threads, nrnmpi_int_allgatherv(), nrnmpi_myid, nrnmpi_numprocs, nrtree_, ReducedTree::nsmap, nthost_, MultiSplitTransferInfo::offdiag_, Area2RT::pd, recalc_diam(), reduced_mark(), ReducedTree::reorder(), RHS, MultiSplit::rmap_index_, MultiSplit::rt_, MultiSplit::rthost, MultiSplitTransferInfo::rthost_, rtree_, ReducedTree::s2rt, sec, Node::sec, Node::sec_node_index_, secname(), MultiSplit::sid, MultiSplitThread::sid1A, MultiSplitThread::sid1B, MultiSplitTransferInfo::size_, MultiSplit::smap_index_, t, MultiSplitTransferInfo::tag_, tbsize, trecvbuf_, tsendbuf_, and type.
Referenced by multisplit().
void MultiSplitControl::matrix_exchange | ( | ) |
References area2buf_, area2rt_, D, MultiSplitTransferInfo::displ_, MultiSplitTransferInfo::host_, i, Area2Buf::ibuf, ihost_reduced_long_, Area2RT::inode, Area2Buf::inode, MultiSplit::ithread, Area2RT::ms, Area2Buf::ms, msti_, Area2RT::n, Area2Buf::n, narea2buf_, narea2rt_, MultiSplitTransferInfo::nnode_, MultiSplitTransferInfo::nnode_rt_, MultiSplitTransferInfo::nodeindex_, MultiSplitTransferInfo::nodeindex_th_, nrn_threads, nrnmpi_myid, nrnmpi_rtcomp_time_, nrnmpi_wtime(), nrtree_, nthost_, MultiSplitTransferInfo::offdiag_, Area2RT::pd, MultiSplitTransferInfo::request_, RHS, MultiSplitTransferInfo::rthost_, rtree_, MultiSplitTransferInfo::size_, ReducedTree::solve(), MultiSplitTransferInfo::tag_, trecvbuf_, and tsendbuf_.
Referenced by reduce_solve(), and solve().
void MultiSplitControl::matrix_exchange_nocap | ( | ) |
References D, MultiSplitTransferInfo::displ_, MultiSplitTransferInfo::host_, i, ihost_reduced_long_, ihost_short_long_, msti_, MultiSplitTransferInfo::nnode_, MultiSplitTransferInfo::nnode_rt_, ReducedTree::nocap(), MultiSplitTransferInfo::nodeindex_, MultiSplitTransferInfo::nodeindex_th_, nrn_threads, nrnmpi_myid, nrnmpi_rtcomp_time_, nrnmpi_wtime(), nrtree_, nthost_, MultiSplitTransferInfo::offdiag_, MultiSplitTransferInfo::request_, RHS, MultiSplitTransferInfo::rthost_, rtree_, MultiSplitTransferInfo::size_, MultiSplitTransferInfo::tag_, trecvbuf_, and tsendbuf_.
Referenced by multisplit_nocap_v_part2().
References assert, MultiSplit::back_index, MultiSplit::backbone_style, chk_access(), classical_root_to_multisplit_, exchange_setup(), hoc_execerror(), MultiSplit::ithread, multisplit_list_, MultiSplit::nd, nd, node_exact(), nrn_cachevec(), nrn_matrix_node_free(), nrn_multisplit_active_, nrn_multisplit_setup_, nrn_multisplit_solve_, Section::parentnode, Section::parentsec, pexch(), pmat(), MultiSplit::rmap_index_, MultiSplit::rt_, MultiSplit::rthost, s, Node::sec, sec, secname(), MultiSplit::sid, and MultiSplit::smap_index_.
References Area2RT::adjust_rhs_, Area2Buf::adjust_rhs_, area2buf_, area2rt_, i, NrnThread::id, Area2RT::inode, Area2Buf::inode, MultiSplit::ithread, Area2RT::ms, narea2buf_, and narea2rt_.
void MultiSplitControl::multisplit_clear | ( | ) |
References classical_root_to_multisplit_, del_msti(), MultiSplitThread::del_sidA(), i, mth_, nrn_multisplit_setup_, nrn_multisplit_solve_, NrnHashIterate, and nth_.
void MultiSplitControl::multisplit_nocap_v | ( | ) |
References area2buf_, area2rt_, i, NrnThread::id, Area2RT::inode, Area2Buf::inode, MultiSplit::ithread, Area2RT::ms, narea2buf_, and narea2rt_.
References Area2RT::adjust_rhs_, Area2Buf::adjust_rhs_, area2buf_, area2rt_, i, NrnThread::id, Area2RT::inode, Area2Buf::inode, MultiSplit::ithread, Area2RT::ms, narea2buf_, and narea2rt_.
void MultiSplitControl::pexch | ( | ) |
References NrnThread::_v_node, MultiSplitTransferInfo::displ_, MultiSplitTransferInfo::host_, i, id, msti_, MultiSplitTransferInfo::nnode_, MultiSplitTransferInfo::nodeindex_, nrn_threads, nrnmpi_myid, nthost_, Node::sec, Node::sec_node_index_, and secname().
Referenced by multisplit().
References Node::_classical_parent, NrnThread::_v_node, NrnThread::_v_parent, MultiSplitThread::backbone_begin, MultiSplitThread::backbone_end, NrnThread::end, i, mth_, NODEA, NODEB, NODED, NODERHS, nrn_nthread, nrn_threads, Node::sec, Node::sec_node_index_, secname(), MultiSplitThread::sid0i, and t.
Referenced by multisplit().
void MultiSplitControl::pmat1 | ( | const char * | s | ) |
References a, b, MultiSplitThread::backbone_begin, MultiSplitThread::backbone_sid1_begin, D, d, NrnThread::end, i, i1, mth_, multisplit_list_, MultiSplit::nd, nrn_nthread, nrn_threads, nrnmpi_myid, RHS, MultiSplit::sid, and t.
References Node::_classical_parent, NrnThread::_v_node, NrnThread::_v_parent, MultiSplitThread::backbone_begin, MultiSplitThread::backbone_end, NrnThread::end, fprintf(), i, mth_, NODEA, NODEB, NODED, NODERHS, nrn_nthread, nrn_threads, nrnmpi_myid, Node::sec, Node::sec_node_index_, secname(), MultiSplitThread::sid0i, and t.
void MultiSplitControl::prstruct | ( | ) |
References NrnThread::_v_node, MultiSplit::back_index, MultiSplitThread::backAindex_, MultiSplitThread::backBindex_, MultiSplitThread::backbone_begin, MultiSplitThread::backbone_end, MultiSplitThread::backbone_interior_begin, MultiSplitThread::backbone_long_begin, MultiSplitThread::backbone_long_sid1_begin, MultiSplitThread::backbone_sid1_begin, MultiSplit::backbone_style, MultiSplitThread::backsid_, MultiSplitTransferInfo::host_, i, id, m, msti_, mth_, multisplit_list_, ReducedTree::n, MultiSplitThread::nbackrt_, MultiSplit::nd, nd, ndbsize, ReducedTree::nmap, MultiSplitTransferInfo::nnode_, MultiSplitTransferInfo::nnode_rt_, MultiSplitTransferInfo::nodeindex_, nodeindex_buffer_, nodeindex_rthost_, nrn_nthread, nrn_threads, nrnmpi_barrier(), nrnmpi_myid, nrnmpi_numprocs, nrtree_, nthost_, ReducedTree::pr_map(), MultiSplit::rthost, MultiSplitTransferInfo::rthost_, rtree_, Node::sec, Node::sec_node_index_, secname(), MultiSplit::sid, MultiSplitTransferInfo::size_, t, MultiSplitTransferInfo::tag_, tbsize, trecvbuf_, and tsendbuf_.
void MultiSplitControl::reduce_solve | ( | ) |
void MultiSplitControl::reduced_mark | ( | int | m, | |
int | sid, | |||
int | nt, | |||
int * | mark, | |||
int * | allsid, | |||
int * | all_bb_relation | |||
) |
References i.
Referenced by exchange_setup().
void MultiSplitControl::rt_map_update | ( | ) |
References area2rt_, assert, MultiSplit::back_index, MultiSplitThread::backAindex_, MultiSplitThread::backBindex_, D, i, Area2RT::inode, MultiSplit::ithread, Area2RT::ms, mth_, multisplit_list_, Area2RT::n, narea2rt_, MultiSplit::nd, NODED, NODERHS, nrn_threads, nrnmpi_myid, Area2RT::pd, RHS, ReducedTree::rmap, MultiSplit::rmap_index_, MultiSplit::rt_, MultiSplit::rthost, s, MultiSplitThread::sid1A, MultiSplitThread::sid1B, ReducedTree::smap, MultiSplit::smap_index_, and t.
void MultiSplitControl::solve | ( | ) |
References MultiSplitThread::bksub_backbone(), MultiSplitThread::bksub_subtrees(), matrix_exchange(), mth_, nrn_threads, t, MultiSplitThread::triang_backbone(), and MultiSplitThread::triang_subtree2backbone().
void MultiSplitControl::v_setup | ( | ) |
References assert, classical_root_to_multisplit_, hoc_execerror(), i, mth_, nrn_nthread, nrn_threads, nth_, use_cachevec, use_sparse13, and MultiSplitThread::v_setup().
Referenced by del_msti(), exchange_setup(), and MultiSplitControl().
Referenced by del_msti(), exchange_setup(), and MultiSplitControl().
MultiSplitTable* MultiSplitControl::classical_root_to_multisplit_ |
Referenced by exchange_setup(), multisplit(), multisplit_clear(), MultiSplitControl(), and v_setup().
Referenced by exchange_setup(), and MultiSplitControl().
Referenced by exchange_setup(), matrix_exchange(), matrix_exchange_nocap(), and MultiSplitControl().
Referenced by exchange_setup(), matrix_exchange_nocap(), and MultiSplitControl().
Referenced by del_msti(), exchange_setup(), matrix_exchange(), matrix_exchange_nocap(), MultiSplitControl(), pexch(), and prstruct().
Referenced by exchange_setup(), multisplit_clear(), MultiSplitControl(), pmat(), pmat1(), pmatf(), prstruct(), rt_map_update(), solve(), and v_setup().
MultiSplitList* MultiSplitControl::multisplit_list_ |
Referenced by exchange_setup(), multisplit(), MultiSplitControl(), pmat1(), prstruct(), and rt_map_update().
Referenced by del_msti(), exchange_setup(), and MultiSplitControl().
Referenced by exchange_setup(), MultiSplitControl(), and prstruct().
Referenced by del_msti(), exchange_setup(), MultiSplitControl(), and prstruct().
Referenced by del_msti(), exchange_setup(), and MultiSplitControl().
Referenced by del_msti(), exchange_setup(), MultiSplitControl(), and prstruct().
Referenced by del_msti(), exchange_setup(), matrix_exchange(), matrix_exchange_nocap(), MultiSplitControl(), and prstruct().
Referenced by multisplit_clear(), MultiSplitControl(), and v_setup().
Referenced by del_msti(), exchange_setup(), matrix_exchange(), matrix_exchange_nocap(), MultiSplitControl(), pexch(), and prstruct().
Referenced by del_msti(), exchange_setup(), matrix_exchange(), matrix_exchange_nocap(), MultiSplitControl(), and prstruct().
Referenced by exchange_setup(), MultiSplitControl(), and prstruct().
double* MultiSplitControl::trecvbuf_ |
Referenced by del_msti(), exchange_setup(), matrix_exchange(), matrix_exchange_nocap(), MultiSplitControl(), and prstruct().
double* MultiSplitControl::tsendbuf_ |
Referenced by del_msti(), exchange_setup(), matrix_exchange(), matrix_exchange_nocap(), MultiSplitControl(), and prstruct().