Go to the documentation of this file.
49 console.
XDebug() <<
"calculating " << m_interactions.size() <<
" soft bonded wall forces\n" ;
53 it != m_interactions.end();
69 console.
XDebug() <<
"CSoftBWallInteractionGroup<T>::applyForce: F = " << F <<
"\n";
75 it!=m_interactions.end();
78 K+=it->getStiffness();
79 console.
XDebug() <<
"CSoftBWallInteractionGroup<T>::applyForce: K = " << K <<
"\n";
83 double K_global=this->m_comm->sum_all(K);
84 console.
XDebug() <<
"CSoftBWallInteractionGroup<T>::applyForce: K_global = " << K_global <<
"\n";
89 console.
XDebug() <<
"CSoftBWallInteractionGroup<T>::applyForce: unitF = " << O_f <<
"\n";
96 iter!=m_interactions.end();
101 F_local+=(f_i*O_f)*O_f;
107 double fgx=this->m_comm->sum_all(F_local.
X());
108 double fgy=this->m_comm->sum_all(F_local.
Y());
109 double fgz=this->m_comm->sum_all(F_local.
Z());
113 d=((F+F_global)*O_f)/K_global;
115 <<
"CBWallInteractionGroup<T>::applyForce: iteration " << it <<
", d = " << fabs(d) <<
"\n";
119 <<
"CBWallInteractionGroup<T>::applyForce: moving wall by " << d*O_f <<
"\n";
120 this->m_wall->moveBy(d*O_f);
122 }
while((it<10)&&(fabs(d)>10e-6));
124 <<
"CBWallInteractionGroup<T>::applyForce: d = " << fabs(d)
125 <<
", num iterations = " << it <<
"\n";
133 console.
XDebug() <<
"CSoftBWallInteractionGroup::Update()\n" ;
136 m_interactions.erase(m_interactions.begin(),m_interactions.end());
143 if(((*iter)->getTag() & m_mask) ==(m_tag & m_mask)){
144 bool iflag=PPA->
isInInner((*iter)->getPos());
148 console.
XDebug() <<
"end CSoftBWallInteractionGroup::Update()\n";
154 ost <<
"CBWallInteractionGroup" << endl << flush;
155 ost << *(IG.m_wall) << endl << flush;
base class for all walls
Definition: Wall.h:40
virtual void applyForce(const Vec3 &)
Definition: SoftBWallInteractionGroup.hpp:67
virtual void calcForces()
Definition: SoftBWallInteractionGroup.hpp:46
bool getScaling() const
Definition: SoftBWallInteractionGroup.h:41
int m_tag
Definition: SoftBWallInteractionGroup.h:63
bool m_scaling
Definition: SoftBWallInteractionGroup.h:65
VEC3_INLINE Vec3 unit() const
Definition: vec3.hpp:225
bonded elastic interaction between a particle and a wall with different spring constants in the norma...
Definition: SoftBWallInteraction.h:30
int getMask() const
Definition: BWallInteractionGroup.h:48
virtual void Update(ParallelParticleArray< T > *)
Definition: SoftBWallInteractionGroup.hpp:130
Abstract Base class for a group of interactions between particles and a wall.
Definition: WallIG.h:31
int getTag() const
Definition: BWallInteractionGroup.h:47
double getShearK() const
Definition: SoftBWallInteractionGroup.h:40
Interaction group parameters for CSoftBWallInteractionGroups.
Definition: SoftBWallInteractionGroup.h:32
VEC3_INLINE double & X()
Definition: vec3.h:119
NeighborTable< T >::particlelist::iterator ParticleListIterator
Definition: pp_array.h:80
parrallel particle storage array with neighborsearch and variable exchange
Definition: pp_array.h:75
double m_normalK
Definition: SoftBWallInteractionGroup.h:62
Console & XDebug()
set verbose level of next message to "xdg"
VEC3_INLINE double & Z()
Definition: vec3.h:121
double m_shearK
spring constants for each direction
Definition: SoftBWallInteractionGroup.h:62
ParticleListHandle getParticlesAtPlane(Vec3 o, Vec3 n)
Get list of particles along a plane. Forwards to NTable::getParticlesAtPlane.
Definition: pp_array.h:191
VEC3_INLINE double & Y()
Definition: vec3.h:120
Template class for a handle/ref. counted pointer.
Definition: handle.h:27
double getNormalK() const
Definition: SoftBWallInteractionGroup.h:39
virtual bool isInInner(const Vec3 &)
Definition: pp_array.hpp:208
boost::python::object iter(const boost::python::object &pyOb)
Definition: Util.h:25
abstract base class for communicator
Definition: comm.h:47
int m_mask
Definition: SoftBWallInteractionGroup.h:64
CSoftBWallInteractionGroup(TML_Comm *)
Definition: SoftBWallInteractionGroup.hpp:20
Console console
Definition: console.cpp:25
ostream & operator<<(ostream &ost, const CSoftBWallInteractionGroup< T > &IG)
Definition: SoftBWallInteractionGroup.hpp:152
Class for a group of bonded, elastic interactions with per-direction spring constants between particl...
Definition: SoftBWallInteractionGroup.h:59