13 template<
typename P,
typename I>
33 template<
typename T,
typename InteractionType>
36 console.
XDebug() <<
"ParallelInteractionStorage_ED_T::update at node " << this->m_comm.rank() <<
"\n";
41 if (this->m_update_timestamp != this->m_ppa->getTimeStamp()){
42 console.
XDebug() <<
"node " << this->m_comm.rank() <<
" ppa has been rebuilt\n";
44 typename list<InteractionType>::iterator
iter = this->m_interactions.begin();
45 while(iter != this->m_interactions.end()){
46 if(iter->isPersistent()){
50 typename list<InteractionType>::iterator er_iter=
iter;
52 vector<int> rm_pids=iter->getAllID();
53 this->m_set.erase(make_pair(rm_pids[0],rm_pids[1]));
55 this->m_interactions.erase(er_iter);
67 int t1=iter->first->getTag();
68 int t2=iter->second->getTag();
76 if(((t1 & m_mask1)==(m_tag1 & m_mask1)) && ((t2 & m_mask2)==(m_tag2 & m_mask2))){
80 int id1=iter->first->getID();
81 int id2=iter->second->getID();
85 if((!(this->isExcluded(tv)))&&(!this->isIn(tv))){
86 this->m_interactions.push_back(InteractionType(iter->first,iter->second,this->m_param));
87 this->m_set.insert(make_pair(id1,id2));
93 console.
XDebug() <<
"node " << this->m_comm.rank() <<
" ppa not rebuilt\n";
104 int t1=
iter->first->getTag();
105 int t2=
iter->second->getTag();
113 if(((t1 & m_mask1)==(m_tag1 & m_mask1)) && ((t2 & m_mask2)==(m_tag2 & m_mask2))){
117 int id1=
iter->first->getID();
118 int id2=
iter->second->getID();
121 if((!(this->isExcluded(tv)))&&(!(this->isIn(tv)))) {
122 this->m_interactions.push_back(InteractionType(
iter->first,
iter->second, this->m_param));
123 this->m_set.insert(make_pair(id1,id2));
129 this->m_update_timestamp = this->m_ppa->getTimeStamp();
131 console.
Debug() <<
"added " << count_l <<
" pairs to ParallelInteractionStorage_ED_T\n";
boost::python::object iter(const boost::python::object &pyOb)
Definition: Util.h:25
parrallel particle storage array with neighborsearch and variable exchange
Definition: SubLattice.h:61
parallel storage array with exchange for dynamically created interactions (friction etc...
Definition: pi_storage_ed.h:30
int m_mask1
Definition: pi_storage_ed_t.h:34
int m_tag2
Definition: pi_storage_ed_t.h:33
int m_mask2
Definition: pi_storage_ed_t.h:34
BasicCon & XDebug(bool h=true)
set verbose level of next message to "xdg"
Definition: console.cpp:316
BasicCon & Debug(bool h=true)
set verbose level of next message to "dbg"
Definition: console.cpp:305
virtual bool update()
Definition: pi_storage_ed_t.hpp:34
abstract base class for parallel particle storage array
Definition: pp_array.h:41
int m_tag1
Definition: pi_storage_ed_t.h:33
Template class for a handle/ref. counted pointer.
Definition: handle.h:26
ParallelInteractionStorage_ED_T(AParallelParticleArray *, const typename I::ParameterType &, int, int, int, int)
Definition: pi_storage_ed_t.hpp:14
NeighborTable< T >::pairlist::iterator PairListIterator
Definition: pp_array.h:78