13 #include "ppa/src/pp_array.h"
21 this->m_update_timestamp=0;
28 this->m_kr=Param->getSpringConst();
29 m_diffusivity = Param->getDiffusivity() ;
30 this->m_update_timestamp=0;
36 this->m_kr=Param->getSpringConst();
37 m_diffusivity = Param->getDiffusivity() ;
44 console.
Debug() <<
"calculating " << m_interactions.size() <<
" elastic forces\n" ;
46 for(vector<CRotThermElasticInteraction>::iterator it=m_interactions.begin();it!=m_interactions.end();it++){
57 console.
XDebug() <<
"CElasticInteractionGroup::Update\n";
62 m_interactions.erase(m_interactions.begin(),m_interactions.end());
63 this->m_set.erase(this->m_set.begin(),this->m_set.end());
65 typename ParallelParticleArray<T>::PairListHandle plh=PPA->
getFullPairList();
67 for(
typename ParallelParticleArray<T>::PairListIterator iter=plh->begin();
72 tv.push_back(iter->first->getID());
73 tv.push_back(iter->second->getID());
75 if(!this->m_exIG->isIn(tv)){
77 this->m_set.insert(pair<int,int>(iter->first->getID(),iter->second->getID()));
78 console.
XDebug()<<
"adding pair: " << iter->first->getID() <<
" - "
79 << iter->second->getID() <<
"\n";
82 console.
XDebug()<<
"not adding pair: " << iter->first->getID() <<
" - "
83 << iter->second->getID() <<
"\n";
87 this->m_set.insert(pair<int,int>(iter->first->getID(),iter->second->getID()));
88 console.
XDebug()<<
"adding pair: " << iter->first->getID() <<
" - "
89 << iter->second->getID() <<
"\n";
94 typename ParallelParticleArray<T>::PairListHandle plh=PPA->
getNewPairList();
95 for(
typename ParallelParticleArray<T>::PairListIterator iter=plh->begin();
100 tv.push_back(iter->first->getID());
101 tv.push_back(iter->second->getID());
102 if(this->m_exIG!=NULL){
103 if(!this->m_exIG->isIn(tv)){
105 this->m_set.insert(pair<int,int>(iter->first->getID(),iter->second->getID()));
106 console.
XDebug()<<
"adding pair: " << iter->first->getID() <<
" - "
107 << iter->second->getID() <<
"\n";
110 console.
XDebug()<<
"not adding pair: " << iter->first->getID() <<
" - "
111 << iter->second->getID() <<
"\n";
115 this->m_set.insert(pair<int,int>(iter->first->getID(),iter->second->getID()));
116 console.
XDebug()<<
"adding pair: " << iter->first->getID() <<
" - "
117 << iter->second->getID() <<
"\n";
122 console.
XDebug() <<
"added " << count_l <<
" pairs to EIG\n";
124 console.
XDebug() <<
"end CElasticInteractionGroup::Update\n";
128 ostream& operator<<(ostream& ost,const CRotThermElasticInteractionGroup<T>& E)
130 ost <<
"CElasticInteractionGroup : \n";
131 for(vector<CRotThermElasticInteraction>::const_iterator it=E.m_interactions.begin();it!=E.m_interactions.end();it++){
132 ost << *it <<
" , " ;
134 ost <<
"exchange list: \n";
135 for(
set<pair<int,int> >::const_iterator vit=E.m_exchg_list.begin();vit!=E.m_exchg_list.end();vit++){
136 ost <<
"[ " << vit->first <<
" from " << vit->second <<
" ] , ";