21 template<
class ParticleType,
class IType>
32 template<
class ParticleType,
class IType>
45 template <
class ParticleType,
class IType>
54 case 0: res=m_edge_int_set.find(make_pair(v[0],v[1]))!=m_edge_int_set.end();
break;
55 case 1: res=m_corner_int_set.find(make_pair(v[0],v[1]))!=m_corner_int_set.end();
break;
56 default:
console.
Error() <<
"wrong value in argument of Mesh2D_PIS::isIn !!\n";
break;
66 template<
class ParticleType,
class IType>
69 console.
XDebug() <<
"Mesh2D_PIS_NE calculating " << m_edge_interactions.size() <<
" line forces , "
70 << m_corner_interactions.size() <<
"corner forces\n";
73 for(
typename std::vector<typename IType::EdgeIntType>::iterator tri_iter=m_edge_interactions.begin();
74 tri_iter!=m_edge_interactions.end();
76 tri_iter->calcForces();
79 for(
typename std::vector<typename IType::CornerIntType>::iterator corner_iter=m_corner_interactions.begin();
80 corner_iter!=m_corner_interactions.end();
82 corner_iter->calcForces();
89 template<
class ParticleType,
class IType>
97 if(this->m_update_timestamp != this->m_ppa->getTimeStamp()){
100 m_edge_interactions.clear();
101 m_corner_interactions.clear();
102 m_edge_int_set.clear();
103 m_corner_int_set.clear();
108 ed_iter != this->m_mesh->edges_end();
118 bool iflag = this->m_ppa->isInInner((*p_iter)->getPos());
119 m_edge_interactions.push_back(
typename IType::EdgeIntType(*p_iter,&(*ed_iter),m_param,iflag));
126 co_iter != this->m_mesh->corners_end();
136 bool iflag = this->m_ppa->isInInner((*p_iter)->getPos());
137 m_corner_interactions.push_back(
typename IType::CornerIntType(*p_iter,&(*co_iter),m_param,iflag));
142 this->m_update_timestamp = this->m_ppa->getTimeStamp();