14 #include "pis/pi_storage.h"
23 this->m_update_timestamp=0;
30 this->m_kr=Param->getNormalSpringConst();
31 this->m_update_timestamp=0;
37 this->m_kr=Param->getNormalSpringConst();
44 console.
Debug() <<
"calculating " << m_interactions.size() <<
" elastic forces\n" ;
46 for(vector<CRotElasticInteraction>::iterator it=m_interactions.begin();it!=m_interactions.end();it++){
59 console.
XDebug() <<
"CElasticInteractionGroup::Update\n";
64 m_interactions.erase(m_interactions.begin(),m_interactions.end());
65 this->m_set.erase(this->m_set.begin(),this->m_set.end());
67 typename ParallelParticleArray<T>::PairListHandle plh=PPA->
getFullPairList();
69 for(
typename ParallelParticleArray<T>::PairListIterator iter=plh->begin();iter!=plh->end();iter++){
72 tv.push_back(iter->first->getID());
73 tv.push_back(iter->second->getID());
75 if(!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() <<
" - " << iter->second->getID() <<
"\n";
81 console.
XDebug() <<
"not adding pair: " << iter->first->getID() <<
" - " << iter->second->getID() <<
"\n";
85 this->m_set.insert(pair<int,int>(iter->first->getID(),iter->second->getID()));
86 console.
XDebug() <<
"adding pair: " << iter->first->getID() <<
" - " << iter->second->getID() <<
"\n";
91 typename ParallelParticleArray<T>::PairListHandle plh=PPA->
getNewPairList();
92 for(
typename ParallelParticleArray<T>::PairListIterator iter=plh->begin();iter!=plh->end();iter++){
95 tv.push_back(iter->first->getID());
96 tv.push_back(iter->second->getID());
98 if(!m_exIG->isIn(tv)){
100 this->m_set.insert(pair<int,int>(iter->first->getID(),iter->second->getID()));
101 console.
XDebug() <<
"adding pair: " << iter->first->getID() <<
" - " << iter->second->getID() <<
"\n";
104 console.
XDebug() <<
"not adding pair: " << iter->first->getID() <<
" - " << iter->second->getID() <<
"\n";
108 this->m_set.insert(pair<int,int>(iter->first->getID(),iter->second->getID()));
109 console.
XDebug() <<
"adding pair: " << iter->first->getID() <<
" - " << iter->second->getID() <<
"\n";
115 console.
XDebug() <<
"added " << count_l <<
" pairs to EIG\n";
116 console.
XDebug() <<
"end CElasticInteractionGroup::Update\n";
120 ostream& operator<<(ostream& ost,const CRotElasticInteractionGroup<T>& E)
122 ost <<
"CElasticInteractionGroup : \n";
123 for(vector<CRotElasticInteraction>::const_iterator it=E.m_interactions.begin();it!=E.m_interactions.end();it++){
124 ost << *it <<
" , " ;
126 ost <<
"exchange list: \n";
127 for(
set<pair<int,int> >::const_iterator vit=E.m_exchg_list.begin();vit!=E.m_exchg_list.end();vit++){
128 ost <<
"[ " << vit->first <<
" from " << vit->second <<
" ] , ";