Go to the documentation of this file.
41 this->m_inner_count=0;
48 console.
XDebug() <<
"calculating " << m_visc_interactions.size() <<
" viscous wall forces\n" ;
49 console.
XDebug() <<
"calculating " << m_elastic_interactions.size() <<
" elastic wall forces\n" ;
53 it!=m_visc_interactions.end();
60 it!=m_elastic_interactions.end();
75 this->m_wall->setVel(V);
88 double K=this->m_inner_count*m_k;
90 double K_global=this->m_comm->sum_all(K);
101 iter != m_visc_interactions.end();
106 F_local+=(f_i*O_f)*O_f;
112 iter != m_elastic_interactions.end();
117 F_local+=(f_i*O_f)*O_f;
122 double fgx=this->m_comm->sum_all(F_local.
X());
123 double fgy=this->m_comm->sum_all(F_local.
Y());
124 double fgz=this->m_comm->sum_all(F_local.
Z());
128 d=((F+F_global)*O_f)/K_global;
130 this->m_wall->moveBy(d*O_f);
132 }
while((it<10)&&(fabs(d)>10e-6));
148 m_visc_interactions.erase(m_visc_interactions.begin(),m_visc_interactions.end());
149 this->m_inner_count=0;
156 if((*iter)->getTag()==m_tag){
157 bool iflag=PPA->
isInInner((*iter)->getPos());
159 this->m_inner_count+=(iflag ? 1 : 0);
164 m_elastic_interactions.erase(m_elastic_interactions.begin(),m_elastic_interactions.end());
169 bool iflag=PPA->
isInInner((*iter)->getPos());
171 this->m_inner_count+=(iflag ? 1 : 0);
179 ost <<
"CViscWallIG" << endl << flush;
180 ost << *(IG.m_wall) << endl << flush;
base class for all walls
Definition: Wall.h:40
virtual void applyForce(const Vec3 &)
Definition: ViscWallIG.hpp:85
Class for a group of viscous and elastic interactions between particles and a wall.
Definition: ViscWallIG.h:60
unbonded elastic interaction between a particle and a wall
Definition: EWallInteraction.h:31
double getSpringConst() const
Definition: ElasticInteraction.h:36
double m_k
spring constant
Definition: ViscWallIG.h:64
VEC3_INLINE Vec3 unit() const
Definition: vec3.hpp:225
ostream & operator<<(ostream &ost, const CViscWallIG< T > &IG)
Definition: ViscWallIG.hpp:177
Abstract Base class for a group of interactions between particles and a wall.
Definition: WallIG.h:31
virtual void calcForces()
Definition: ViscWallIG.hpp:45
double getNu() const
Definition: ViscWallIG.h:44
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
Console & XDebug()
set verbose level of next message to "xdg"
VEC3_INLINE double & Z()
Definition: vec3.h:121
virtual void Update(ParallelParticleArray< T > *)
Definition: ViscWallIG.hpp:141
ParticleListHandle getParticlesAtPlane(Vec3 o, Vec3 n)
Get list of particles along a plane. Forwards to NTable::getParticlesAtPlane.
Definition: pp_array.h:191
double m_nu
Definition: ViscWallIG.h:65
VEC3_INLINE double & Y()
Definition: vec3.h:120
Template class for a handle/ref. counted pointer.
Definition: handle.h:27
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_tag
Definition: ViscWallIG.h:66
CViscWallIG(TML_Comm *)
Definition: ViscWallIG.hpp:20
bonded elastic interaction between a particle and a wall
Definition: ViscWallInteraction.h:29
int getTag() const
Definition: ViscWallIG.h:42
Interaction group parameters for CBWallInteractionGroups.
Definition: ViscWallIG.h:33
Console console
Definition: console.cpp:25
virtual void setVelocity(const Vec3 &)
Definition: ViscWallIG.hpp:73