48 console.
XDebug() <<
"calculating " << m_interactions.size() <<
" soft bonded wall forces\n" ;
52 it != m_interactions.end();
68 console.
XDebug() <<
"CSoftBWallInteractionGroup<T>::applyForce: F = " << F <<
"\n";
74 it!=m_interactions.end();
77 K+=it->getStiffness();
78 console.
XDebug() <<
"CSoftBWallInteractionGroup<T>::applyForce: K = " << K <<
"\n";
82 double K_global=this->m_comm->sum_all(K);
83 console.
XDebug() <<
"CSoftBWallInteractionGroup<T>::applyForce: K_global = " << K_global <<
"\n";
88 console.
XDebug() <<
"CSoftBWallInteractionGroup<T>::applyForce: unitF = " << O_f <<
"\n";
95 iter!=m_interactions.end();
100 F_local+=(f_i*O_f)*O_f;
106 double fgx=this->m_comm->sum_all(F_local.
X());
107 double fgy=this->m_comm->sum_all(F_local.
Y());
108 double fgz=this->m_comm->sum_all(F_local.
Z());
112 d=((F+F_global)*O_f)/K_global;
114 <<
"CBWallInteractionGroup<T>::applyForce: iteration " << it <<
", d = " << fabs(d) <<
"\n";
118 <<
"CBWallInteractionGroup<T>::applyForce: moving wall by " << d*O_f <<
"\n";
119 this->m_wall->moveBy(d*O_f);
121 }
while((it<10)&&(fabs(d)>10e-6));
123 <<
"CBWallInteractionGroup<T>::applyForce: d = " << fabs(d)
124 <<
", num iterations = " << it <<
"\n";
132 console.
XDebug() <<
"CSoftBWallInteractionGroup::Update()\n" ;
135 m_interactions.erase(m_interactions.begin(),m_interactions.end());
142 if((*iter)->getTag()==m_tag){
143 bool iflag=PPA->
isInInner((*iter)->getPos());
147 console.
XDebug() <<
"end CSoftBWallInteractionGroup::Update()\n";
151 ostream& operator<<(ostream& ost,const CSoftBWallInteractionGroup<T>& IG)
153 ost <<
"CBWallInteractionGroup" << endl << flush;
154 ost << *(IG.m_wall) << endl << flush;