PhyStar  v0.0.0 thu24
dmdyn::PPContact< N_dim > Struct Template Reference

#include <PPContact.hpp>

Collaboration diagram for dmdyn::PPContact< N_dim >:

Classes

struct  Pair_Hash
 hash of std::pair to establish a hash map More...
 

Public Types

using CM_ptr = std::shared_ptr< PPContactModelBase >
 

Public Member Functions

void Init (ParticleModel **ptr_p, const ContactComponent contactcomp=ContactComponent::Single)
 
void InitCollisionCount ()
 
void ClearContactPairs ()
 
void AddContactPair (uIntl i, uIntl j)
 add a contact pair to the list of ppcontact_pairs note that AddContactPair(i,j) and AddContactPair(j,i) are the same. More...
 
void CollisionCount (uIntl i, uIntl j, uIntl type, const ContactStatus cont_status, const uIntl maxlength)
 
ContactStatus Force (auto &pf_i, auto &pf_j, const Real alpha=1., const Real beta=0., const uIntl index=0, const bool whether_only_detect_contact=false)
 
ContactShapeType WhichContactShapeType (auto &pf_i, auto &pf_j)
 
ContactStatus WhetherContacted (auto &pf_i, auto &pf_j)
 
void UpdateNbrsContactStage (auto &pf_i, auto &pf_j, const uIntl index)
 
void ContactModelListGenerate (const std::vector< std::string > &strlist, auto &ppdict)
 
std::vector< std::string > PresetContactModelList (const std::string &str)
 

Public Attributes

algo::KDTreeFlann< N_dim > tree
 
std::vector< CM_ptrcontact_models
 
algo::fcl::CollisionRequest ppcoll_request
 
algo::fcl::CollisionResult ppcoll_result
 
std::unordered_map< std::pair< uIntl, uIntl >, ContactStatus, Pair_Hashppcontact_pairs
 
ParticleModel ** ptr_particle_base = nullptr
 
ContactComponent contact_comp = ContactComponent::Single
 
std::vector< uIntcoll_count
 
std::vector< uIntcoll_count1
 
std::vector< uIntcoll_count2
 

Member Typedef Documentation

◆ CM_ptr

template<int N_dim>
using dmdyn::PPContact< N_dim >::CM_ptr = std::shared_ptr<PPContactModelBase>

Member Function Documentation

◆ AddContactPair()

template<int N_dim>
void dmdyn::PPContact< N_dim >::AddContactPair ( uIntl  i,
uIntl  j 
)
inline

add a contact pair to the list of ppcontact_pairs note that AddContactPair(i,j) and AddContactPair(j,i) are the same.

Parameters
i
j

References dmdyn::Contact.

◆ ClearContactPairs()

template<int N_dim>
void dmdyn::PPContact< N_dim >::ClearContactPairs ( )
inline

◆ CollisionCount()

template<int N_dim>
void dmdyn::PPContact< N_dim >::CollisionCount ( uIntl  i,
uIntl  j,
uIntl  type,
const ContactStatus  cont_status,
const uIntl  maxlength 
)
inline

◆ ContactModelListGenerate()

template<int N_dim>
void dmdyn::PPContact< N_dim >::ContactModelListGenerate ( const std::vector< std::string > &  strlist,
auto &  ppdict 
)
inline

References dmdyn::strlist.

◆ Force()

template<int N_dim>
ContactStatus dmdyn::PPContact< N_dim >::Force ( auto &  pf_i,
auto &  pf_j,
const Real  alpha = 1.,
const Real  beta = 0.,
const uIntl  index = 0,
const bool  whether_only_detect_contact = false 
)
inline

◆ Init()

template<int N_dim>
void dmdyn::PPContact< N_dim >::Init ( ParticleModel **  ptr_p,
const ContactComponent  contactcomp = ContactComponent::Single 
)
inline

◆ InitCollisionCount()

template<int N_dim>
void dmdyn::PPContact< N_dim >::InitCollisionCount ( )
inline

◆ PresetContactModelList()

template<int N_dim>
std::vector<std::string> dmdyn::PPContact< N_dim >::PresetContactModelList ( const std::string &  str)
inline

◆ UpdateNbrsContactStage()

template<int N_dim>
void dmdyn::PPContact< N_dim >::UpdateNbrsContactStage ( auto &  pf_i,
auto &  pf_j,
const uIntl  index 
)
inline

◆ WhetherContacted()

template<int N_dim>
ContactStatus dmdyn::PPContact< N_dim >::WhetherContacted ( auto &  pf_i,
auto &  pf_j 
)
inline

References dmdyn::Contact, dmdyn::Distance(), dmdyn::Do_Not_Contact, dmdyn::EllipsoidToEllipsoid, and dmdyn::SphereToSphere.

Here is the call graph for this function:

◆ WhichContactShapeType()

template<int N_dim>
ContactShapeType dmdyn::PPContact< N_dim >::WhichContactShapeType ( auto &  pf_i,
auto &  pf_j 
)
inline

Member Data Documentation

◆ coll_count

template<int N_dim>
std::vector<uInt> dmdyn::PPContact< N_dim >::coll_count

◆ coll_count1

template<int N_dim>
std::vector<uInt> dmdyn::PPContact< N_dim >::coll_count1

◆ coll_count2

template<int N_dim>
std::vector<uInt> dmdyn::PPContact< N_dim >::coll_count2

◆ contact_comp

template<int N_dim>
ContactComponent dmdyn::PPContact< N_dim >::contact_comp = ContactComponent::Single

◆ contact_models

template<int N_dim>
std::vector<CM_ptr> dmdyn::PPContact< N_dim >::contact_models

◆ ppcoll_request

template<int N_dim>
algo::fcl::CollisionRequest dmdyn::PPContact< N_dim >::ppcoll_request

◆ ppcoll_result

template<int N_dim>
algo::fcl::CollisionResult dmdyn::PPContact< N_dim >::ppcoll_result

◆ ppcontact_pairs

template<int N_dim>
std::unordered_map<std::pair<uIntl, uIntl>, ContactStatus, Pair_Hash> dmdyn::PPContact< N_dim >::ppcontact_pairs

◆ ptr_particle_base

template<int N_dim>
ParticleModel** dmdyn::PPContact< N_dim >::ptr_particle_base = nullptr

◆ tree

template<int N_dim>
algo::KDTreeFlann<N_dim> dmdyn::PPContact< N_dim >::tree

The documentation for this struct was generated from the following file: