GranOO  3.0
A robust and versatile workbench to build 3D dynamic simulations based on the Discrete Element Method
Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
GranOO3::DEM::ContactDetection< T > Class Template Referenceabstract

A class for managing contact with discrete elements (obsolete and not documented) More...

#include <ContactDetection.hpp>

Inheritance diagram for GranOO3::DEM::ContactDetection< T >:
Inheritance graph
[legend]

Public Member Functions

virtual void parse_xml ()
 
virtual void init ()
 
void detect_contact (std::function< void(DEM::DiscreteElement &, T &)> &)
 
ContactLaw< T > & get_ContactLaw ()
 
const ContactLaw< T > & get_ContactLaw () const
 
void set_ContactLaw (ContactLaw< T > &law)
 
unsigned int get_Contactnumber () const
 
const std::vector< double > & get_InterpenetrationValues () const
 
void get_Contactinfo (unsigned int &number, double &ave, double &std, double &min, double &max) const
 
Core::SetOf< DiscreteElement > & get_RecordContactSet ()
 
double get_interactionCoeff () const
 
void set_InteractionCoeff (double c)
 
bool is_bonded (DiscreteElement &de1, T &de2)
 
void RecordContact (DiscreteElement &de1, T &de2)
 
bool is_bonded (DiscreteElement &de1, DiscreteElement &de2)
 
void RecordContact (DiscreteElement &de1, DiscreteElement &de2)
 
- Public Member Functions inherited from GranOO3::Collision::BroadPhase< DEM::DiscreteElement, T >
virtual void detect_contact (std::function< void(DEM::DiscreteElement &, T &)> &)=0
 
- Public Member Functions inherited from GranOO3::Core::NeedSetOf< DiscreteElement >
 NeedSetOf (bool required=true)
 
virtual ~NeedSetOf ()
 
bool get_required_flag (unsigned int rank=0) const
 
void set_required_flag (bool flag, unsigned int rank=0)
 
const std::string & get_xml_flag_name (unsigned int rank=0) const
 
void set_xml_flag_name (const std::string &str, unsigned int rank=0)
 
const std::string & get_xml_flag_nameByRank (unsigned int rank) const
 
void set_xml_flag_name_by_rank (const std::string &str, unsigned int rank)
 
bool is_setof_defined (unsigned int rank=0) const
 
Core::SetOf< DiscreteElement > & get_setof (unsigned int rank=0)
 
const Core::SetOf< DiscreteElement > & get_setof (unsigned int rank=0) const
 
void set_setof (Core::SetOf< DiscreteElement > &set, unsigned int rank=0)
 

Static Public Member Functions

static ContactDetectionget_ByUniqueId (const std::string &id)
 
static std::string class_ID ()
 
- Static Public Member Functions inherited from GranOO3::Collision::BroadPhase< DEM::DiscreteElement, T >
static std::string class_ID ()
 

Protected Member Functions

 ContactDetection ()
 
virtual ~ContactDetection ()
 
virtual void detect_contact ()=0
 
void Process (DiscreteElement &de1, T &de2, const Geom::Vector &normal, const double &penetration)
 
- Protected Member Functions inherited from GranOO3::Collision::BroadPhase< DEM::DiscreteElement, T >
 BroadPhase ()
 
virtual ~BroadPhase ()
 

Private Member Functions

void RegisterWithUniqueId (const std::string &id)
 
 ContactDetection (const ContactDetection &)=delete
 
ContactDetectionoperator= (const ContactDetection &)=delete
 

Private Attributes

ContactLaw< T > * law_
 
unsigned int contactNumber_
 
std::vector< double > interpenetrationValues_
 
bool recordInterpenetrationValues_
 
bool excludedBondedDiscreteElement_
 
std::string recordContactIn_
 
double interactionCoeff_
 

Static Private Attributes

static std::map< std::string, ContactDetection * > UniqueIdMap_ = std::map<std::string, ContactDetection *>()
 

Additional Inherited Members

- Public Types inherited from GranOO3::Collision::BroadPhase< DEM::DiscreteElement, T >
typedef Manager< DEM::DiscreteElement, T > Man
 

Detailed Description

template<class T>
class GranOO3::DEM::ContactDetection< T >

A class for managing contact with discrete elements (obsolete and not documented)

This way for managing contact is obsolete, please use GranOO::Collision library instead. ContactDetection is just provided for convenience and retro-compatibility (in particular, for the granoo-cooker).

Constructor & Destructor Documentation

◆ ContactDetection() [1/2]

template<class T >
GranOO3::DEM::ContactDetection< T >::ContactDetection
protected

◆ ~ContactDetection()

template<class T >
GranOO3::DEM::ContactDetection< T >::~ContactDetection
protectedvirtual

◆ ContactDetection() [2/2]

template<class T >
GranOO3::DEM::ContactDetection< T >::ContactDetection ( const ContactDetection< T > &  )
privatedelete

Member Function Documentation

◆ class_ID()

template<class T >
static std::string GranOO3::DEM::ContactDetection< T >::class_ID ( )
inlinestatic

◆ detect_contact() [1/2]

template<class T >
virtual void GranOO3::DEM::ContactDetection< T >::detect_contact ( )
protectedpure virtual

◆ detect_contact() [2/2]

template<class T >
void GranOO3::DEM::ContactDetection< T >::detect_contact ( std::function< void(DEM::DiscreteElement &, T &)> &  f)

◆ get_ByUniqueId()

template<class T >
ContactDetection< T > & GranOO3::DEM::ContactDetection< T >::get_ByUniqueId ( const std::string &  id)
static

◆ get_Contactinfo()

template<class T >
void GranOO3::DEM::ContactDetection< T >::get_Contactinfo ( unsigned int &  number,
double &  ave,
double &  std,
double &  min,
double &  max 
) const

◆ get_ContactLaw() [1/2]

template<class T >
ContactLaw< T > & GranOO3::DEM::ContactDetection< T >::get_ContactLaw

◆ get_ContactLaw() [2/2]

template<class T >
const ContactLaw< T > & GranOO3::DEM::ContactDetection< T >::get_ContactLaw

◆ get_Contactnumber()

template<class T >
unsigned int GranOO3::DEM::ContactDetection< T >::get_Contactnumber

◆ get_interactionCoeff()

template<class T >
double GranOO3::DEM::ContactDetection< T >::get_interactionCoeff

◆ get_InterpenetrationValues()

template<class T >
const std::vector< double > & GranOO3::DEM::ContactDetection< T >::get_InterpenetrationValues

◆ get_RecordContactSet()

template<class T >
Core::SetOf< DiscreteElement > & GranOO3::DEM::ContactDetection< T >::get_RecordContactSet

◆ init()

template<class T >
virtual void GranOO3::DEM::ContactDetection< T >::init ( )
inlinevirtual

◆ is_bonded() [1/2]

bool GranOO3::DEM::ContactDetection< DiscreteElement >::is_bonded ( DiscreteElement de1,
DiscreteElement de2 
)
inline

◆ is_bonded() [2/2]

template<class T >
bool GranOO3::DEM::ContactDetection< T >::is_bonded ( DiscreteElement de1,
T &  de2 
)

◆ operator=()

template<class T >
ContactDetection& GranOO3::DEM::ContactDetection< T >::operator= ( const ContactDetection< T > &  )
privatedelete

◆ parse_xml()

template<class T >
void GranOO3::DEM::ContactDetection< T >::parse_xml
virtual

◆ Process()

template<class T >
void GranOO3::DEM::ContactDetection< T >::Process ( DiscreteElement de1,
T &  de2,
const Geom::Vector normal,
const double &  penetration 
)
protected

◆ RecordContact() [1/2]

void GranOO3::DEM::ContactDetection< DiscreteElement >::RecordContact ( DiscreteElement de1,
DiscreteElement de2 
)
inline

◆ RecordContact() [2/2]

template<class T >
void GranOO3::DEM::ContactDetection< T >::RecordContact ( DiscreteElement de1,
T &  de2 
)

◆ RegisterWithUniqueId()

template<class T >
void GranOO3::DEM::ContactDetection< T >::RegisterWithUniqueId ( const std::string &  id)
private

◆ set_ContactLaw()

template<class T >
void GranOO3::DEM::ContactDetection< T >::set_ContactLaw ( ContactLaw< T > &  law)

◆ set_InteractionCoeff()

template<class T >
void GranOO3::DEM::ContactDetection< T >::set_InteractionCoeff ( double  c)
inline

Member Data Documentation

◆ contactNumber_

template<class T >
unsigned int GranOO3::DEM::ContactDetection< T >::contactNumber_
private

◆ excludedBondedDiscreteElement_

template<class T >
bool GranOO3::DEM::ContactDetection< T >::excludedBondedDiscreteElement_
private

◆ interactionCoeff_

template<class T >
double GranOO3::DEM::ContactDetection< T >::interactionCoeff_
private

◆ interpenetrationValues_

template<class T >
std::vector<double> GranOO3::DEM::ContactDetection< T >::interpenetrationValues_
private

◆ law_

template<class T >
ContactLaw<T>* GranOO3::DEM::ContactDetection< T >::law_
private

◆ recordContactIn_

template<class T >
std::string GranOO3::DEM::ContactDetection< T >::recordContactIn_
private

◆ recordInterpenetrationValues_

template<class T >
bool GranOO3::DEM::ContactDetection< T >::recordInterpenetrationValues_
private

◆ UniqueIdMap_

template<class T >
std::map< std::string, ContactDetection< T > * > GranOO3::DEM::ContactDetection< T >::UniqueIdMap_ = std::map<std::string, ContactDetection *>()
staticprivate

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