MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > Class Template Reference

#include <MPIInteraction.h>

Public Member Functions

 MPIInteraction ()
 
void copyFromInteraction (const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
 
void copyToInteraction (Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction, const bool resetPointers)
 
template<class DUMMY = FrictionForceInteraction>
std::enable_if< std::is_base_of< SlidingFrictionInteraction, DUMMY >::value, void >::type getSlidingSpring (const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
 
template<class DUMMY = FrictionForceInteraction>
std::enable_if< std::is_base_of< SlidingFrictionInteraction, DUMMY >::value, void >::type setSlidingSpring (Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
 
template<class DUMMY = FrictionForceInteraction>
std::enable_if<!(std::is_base_of< SlidingFrictionInteraction, DUMMY >::value), void >::type getSlidingSpring (const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
 
template<class DUMMY = FrictionForceInteraction>
std::enable_if<!(std::is_base_of< SlidingFrictionInteraction, DUMMY >::value), void >::type setSlidingSpring (Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
 
template<class DUMMY = FrictionForceInteraction>
std::enable_if< std::is_base_of< FrictionInteraction, DUMMY >::value, void >::type getFrictionSprings (const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
 
template<class DUMMY = FrictionForceInteraction>
std::enable_if< std::is_base_of< FrictionInteraction, DUMMY >::value, void >::type setFrictionSprings (Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
 
template<class DUMMY = FrictionForceInteraction>
std::enable_if<!(std::is_base_of< FrictionInteraction, DUMMY >::value), void >::type getFrictionSprings (const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
 
template<class DUMMY = FrictionForceInteraction>
std::enable_if<!(std::is_base_of< FrictionInteraction, DUMMY >::value), void >::type setFrictionSprings (Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
 
template<class DUMMY = AdhesiveForceInteraction>
std::enable_if<(std::is_base_of< LiquidMigrationWilletInteraction, DUMMY >::value||std::is_base_of< LiquidBridgeWilletInteraction, DUMMY >::value||std::is_base_of< IrreversibleAdhesiveInteraction, DUMMY >::value), void >::type getWasInContact (const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
 
template<class DUMMY = AdhesiveForceInteraction>
std::enable_if<(std::is_base_of< LiquidMigrationWilletInteraction, DUMMY >::value||std::is_base_of< LiquidBridgeWilletInteraction, DUMMY >::value||std::is_base_of< IrreversibleAdhesiveInteraction, DUMMY >::value), void >::type setWasInContact (Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
 
template<class DUMMY = AdhesiveForceInteraction>
std::enable_if<!(std::is_base_of< LiquidMigrationWilletInteraction, DUMMY >::value||std::is_base_of< LiquidBridgeWilletInteraction, DUMMY >::value||std::is_base_of< IrreversibleAdhesiveInteraction, DUMMY >::value), void >::type getWasInContact (const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
 
template<class DUMMY = AdhesiveForceInteraction>
std::enable_if<!(std::is_base_of< LiquidMigrationWilletInteraction, DUMMY >::value||std::is_base_of< LiquidBridgeWilletInteraction, DUMMY >::value||std::is_base_of< IrreversibleAdhesiveInteraction, DUMMY >::value), void >::type setWasInContact (Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
 
template<class DUMMY = AdhesiveForceInteraction>
std::enable_if<(std::is_base_of< BondedInteraction, DUMMY >::value), void >::type getBonded (const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
 
template<class DUMMY = AdhesiveForceInteraction>
std::enable_if<(std::is_base_of< BondedInteraction, DUMMY >::value), void >::type setBonded (Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
 
template<class DUMMY = AdhesiveForceInteraction>
std::enable_if<!(std::is_base_of< BondedInteraction, DUMMY >::value), void >::type getBonded (const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
 
template<class DUMMY = AdhesiveForceInteraction>
std::enable_if<!(std::is_base_of< BondedInteraction, DUMMY >::value), void >::type setBonded (Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
 
template<class DUMMY = AdhesiveForceInteraction>
std::enable_if<(std::is_base_of< LiquidMigrationWilletInteraction, DUMMY >::value), void >::type getLiquidBridge (const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
 
template<class DUMMY = AdhesiveForceInteraction>
std::enable_if<(std::is_base_of< LiquidMigrationWilletInteraction, DUMMY >::value), void >::type setLiquidBridge (Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
 
template<class DUMMY = AdhesiveForceInteraction>
std::enable_if<!(std::is_base_of< LiquidMigrationWilletInteraction, DUMMY >::value), void >::type getLiquidBridge (const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
 
template<class DUMMY = AdhesiveForceInteraction>
std::enable_if<!(std::is_base_of< LiquidMigrationWilletInteraction, DUMMY >::value), void >::type setLiquidBridge (Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
 
template<class DUMMY = NormalForceInteraction>
std::enable_if<(std::is_base_of< LinearPlasticViscoelasticInteraction, DUMMY >::value), void >::type getMaximumOverlap (const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
 
template<class DUMMY = NormalForceInteraction>
std::enable_if<(std::is_base_of< LinearPlasticViscoelasticInteraction, DUMMY >::value), void >::type setMaximumOverlap (Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
 
template<class DUMMY = NormalForceInteraction>
std::enable_if<!(std::is_base_of< LinearPlasticViscoelasticInteraction, DUMMY >::value), void >::type getMaximumOverlap (const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
 
template<class DUMMY = NormalForceInteraction>
std::enable_if<!(std::is_base_of< LinearPlasticViscoelasticInteraction, DUMMY >::value), void >::type setMaximumOverlap (Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
 

Public Attributes

unsigned int P
 
unsigned int I
 
unsigned int speciesId
 
bool isWallInteraction
 
unsigned timeStamp
 
Vec3D force
 
Vec3D torque
 
std::conditional< std::is_base_of< SlidingFrictionInteraction, FrictionForceInteraction >::value, Vec3D, Empty >::type slidingSpring
 
std::conditional< std::is_base_of< FrictionInteraction, FrictionForceInteraction >::value, Vec3D, Empty >::type rollingSpring
 
std::conditional< std::is_base_of< FrictionInteraction, FrictionForceInteraction >::value, Vec3D, Empty >::type torsionSpring
 
std::conditional<(std::is_base_of< LiquidMigrationWilletInteraction, AdhesiveForceInteraction >::value||std::is_base_of< LiquidBridgeWilletInteraction, AdhesiveForceInteraction >::value||std::is_base_of< IrreversibleAdhesiveInteraction, AdhesiveForceInteraction >::value), bool, Empty >::type wasInContact
 
std::conditional< std::is_base_of< BondedInteraction, AdhesiveForceInteraction >::value, bool, Empty >::type bonded
 
std::conditional< std::is_base_of< LiquidMigrationWilletInteraction, AdhesiveForceInteraction >::value, Mdouble, Empty >::type liquidbridgeVolume
 
std::conditional< std::is_base_of< LinearPlasticViscoelasticInteraction, NormalForceInteraction >::value, Mdouble, Empty >::type maxOverlap
 

Constructor & Destructor Documentation

◆ MPIInteraction()

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::MPIInteraction
326 {
327 }

Member Function Documentation

◆ copyFromInteraction()

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
void MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::copyFromInteraction ( const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *  interaction)
332 {
333  //logger.assert_debug(interaction->getP()->getId(),"Trying to copy an unreal interaction: P is not defined");
334  //logger.assert_debug(interaction->getP()->getId(),"Trying to copy an unreal interaction: I is not defined");
335 
336  if (interaction->getP() == nullptr) logger(WARN, "P is not defined!!");
337  if (interaction->getI() == nullptr) logger(WARN, "I is not defined!!");
338  P = interaction->getP()->getId();
339  I = interaction->getI()->getId();
340 
341  if (dynamic_cast<const BaseParticle*>(interaction->getI()) == nullptr)
342  {
343  isWallInteraction = true;
344  }
345  else
346  {
347  isWallInteraction = false;
348  }
349 
350  timeStamp = interaction->getTimeStamp();
351  force = interaction->getForce();
352  torque = interaction->getTorque();
353  getSlidingSpring(interaction);
354  getFrictionSprings(interaction);
355  getWasInContact(interaction);
356  getBonded(interaction);
357  getLiquidBridge(interaction);
358  getMaximumOverlap(interaction);
359 }
Logger< MERCURYDPM_LOGLEVEL > logger("MercuryKernel")
Definition of different loggers with certain modules. A user can define its own custom logger here.
@ WARN
const Vec3D & getForce() const
Gets the current force (vector) between the two interacting objects.
Definition: BaseInteraction.h:210
const Vec3D & getTorque() const
Gets the current torque (vector) between the two interacting objects.
Definition: BaseInteraction.h:218
Mdouble getTimeStamp() const
Returns an Mdouble which is the time stamp of the interaction.
Definition: BaseInteraction.h:319
BaseInteractable * getI()
Returns a pointer to the second object involved in the interaction (often a wall or a particle).
Definition: BaseInteraction.h:285
BaseInteractable * getP()
Returns a pointer to first object involved in the interaction (normally a particle).
Definition: BaseInteraction.h:274
unsigned int getId() const
Returns the unique identifier of any particular object.
Definition: BaseObject.h:125
Definition: BaseParticle.h:54
bool isWallInteraction
Definition: MPIInteraction.h:55
unsigned int P
Definition: MPIInteraction.h:52
std::enable_if<(std::is_base_of< BondedInteraction, DUMMY >::value), void >::type getBonded(const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
Definition: MPIInteraction.h:225
std::enable_if< std::is_base_of< FrictionInteraction, DUMMY >::value, void >::type getFrictionSprings(const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
Definition: MPIInteraction.h:143
unsigned timeStamp
Definition: MPIInteraction.h:56
Vec3D torque
Definition: MPIInteraction.h:58
Vec3D force
Definition: MPIInteraction.h:57
std::enable_if< std::is_base_of< SlidingFrictionInteraction, DUMMY >::value, void >::type getSlidingSpring(const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
Definition: MPIInteraction.h:108
std::enable_if<(std::is_base_of< LiquidMigrationWilletInteraction, DUMMY >::value||std::is_base_of< LiquidBridgeWilletInteraction, DUMMY >::value||std::is_base_of< IrreversibleAdhesiveInteraction, DUMMY >::value), void >::type getWasInContact(const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
Definition: MPIInteraction.h:182
std::enable_if<(std::is_base_of< LinearPlasticViscoelasticInteraction, DUMMY >::value), void >::type getMaximumOverlap(const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
Definition: MPIInteraction.h:291
unsigned int I
Definition: MPIInteraction.h:53
std::enable_if<(std::is_base_of< LiquidMigrationWilletInteraction, DUMMY >::value), void >::type getLiquidBridge(const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
Definition: MPIInteraction.h:257

References BaseInteraction::getForce(), BaseInteraction::getI(), BaseObject::getId(), BaseInteraction::getP(), BaseInteraction::getTimeStamp(), BaseInteraction::getTorque(), logger, Global_Physical_Variables::P, and WARN.

Referenced by Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::getMPIInteraction().

◆ copyToInteraction()

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
void MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::copyToInteraction ( Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *  interaction,
const bool  resetPointers 
)
366 {
367  //Basic interaction values
368  BaseInteraction* basicInteraction = static_cast<BaseInteraction*>(interaction);
369  basicInteraction->setBasicMPIInteractionValues(P, I, timeStamp, force, torque, isWallInteraction, resetPointers);
370 
371  //Specific history interaction values, interaction type denpendent
372  setSlidingSpring(interaction);
373  setFrictionSprings(interaction);
374  setWasInContact(interaction);
375  setBonded(interaction);
376  setLiquidBridge(interaction);
377  setMaximumOverlap(interaction);
378 }
Stores information about interactions between two interactable objects; often particles but could be ...
Definition: BaseInteraction.h:60
void setBasicMPIInteractionValues(int P, int I, unsigned timeStamp, Vec3D force, Vec3D torque, bool isWallInteraction, bool resetPointers)
Definition: BaseInteraction.cc:961
std::enable_if<(std::is_base_of< LinearPlasticViscoelasticInteraction, DUMMY >::value), void >::type setMaximumOverlap(Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
Definition: MPIInteraction.h:300
std::enable_if< std::is_base_of< SlidingFrictionInteraction, DUMMY >::value, void >::type setSlidingSpring(Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
Definition: MPIInteraction.h:117
std::enable_if<(std::is_base_of< BondedInteraction, DUMMY >::value), void >::type setBonded(Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
Definition: MPIInteraction.h:234
std::enable_if<(std::is_base_of< LiquidMigrationWilletInteraction, DUMMY >::value||std::is_base_of< LiquidBridgeWilletInteraction, DUMMY >::value||std::is_base_of< IrreversibleAdhesiveInteraction, DUMMY >::value), void >::type setWasInContact(Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
Definition: MPIInteraction.h:194
std::enable_if<(std::is_base_of< LiquidMigrationWilletInteraction, DUMMY >::value), void >::type setLiquidBridge(Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
Definition: MPIInteraction.h:266
std::enable_if< std::is_base_of< FrictionInteraction, DUMMY >::value, void >::type setFrictionSprings(Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
Definition: MPIInteraction.h:153

References Global_Physical_Variables::P, and BaseInteraction::setBasicMPIInteractionValues().

Referenced by Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::setMPIInteraction().

◆ getBonded() [1/2]

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
template<class DUMMY = AdhesiveForceInteraction>
std::enable_if<(std::is_base_of<BondedInteraction, DUMMY>::value), void>::type MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::getBonded ( const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *  interaction)
inline
227  {
228  bonded = interaction->AdhesiveForceInteraction::getBonded();
229  }
std::conditional< std::is_base_of< BondedInteraction, AdhesiveForceInteraction >::value, bool, Empty >::type bonded
Definition: MPIInteraction.h:86

References MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::bonded.

◆ getBonded() [2/2]

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
template<class DUMMY = AdhesiveForceInteraction>
std::enable_if<!(std::is_base_of<BondedInteraction, DUMMY>::value), void>::type MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::getBonded ( const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *  interaction)
inline
244  {
245  }

◆ getFrictionSprings() [1/2]

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
template<class DUMMY = FrictionForceInteraction>
std::enable_if<std::is_base_of<FrictionInteraction, DUMMY>::value, void>::type MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::getFrictionSprings ( const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *  interaction)
inline
145  {
146  rollingSpring = interaction->FrictionForceInteraction::getRollingSpring();
147  torsionSpring = interaction->FrictionForceInteraction::getTorsionSpring();
148  }
std::conditional< std::is_base_of< FrictionInteraction, FrictionForceInteraction >::value, Vec3D, Empty >::type rollingSpring
Definition: MPIInteraction.h:69
std::conditional< std::is_base_of< FrictionInteraction, FrictionForceInteraction >::value, Vec3D, Empty >::type torsionSpring
Definition: MPIInteraction.h:73

References MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::rollingSpring, and MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::torsionSpring.

◆ getFrictionSprings() [2/2]

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
template<class DUMMY = FrictionForceInteraction>
std::enable_if<!(std::is_base_of<FrictionInteraction, DUMMY>::value), void>::type MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::getFrictionSprings ( const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *  interaction)
inline
165  {
166  }

◆ getLiquidBridge() [1/2]

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
template<class DUMMY = AdhesiveForceInteraction>
std::enable_if<(std::is_base_of<LiquidMigrationWilletInteraction, DUMMY>::value), void>::type MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::getLiquidBridge ( const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *  interaction)
inline
259  {
260  liquidbridgeVolume = interaction->AdhesiveForceInteraction::getLiquidBridgeVolume();
261  }
std::conditional< std::is_base_of< LiquidMigrationWilletInteraction, AdhesiveForceInteraction >::value, Mdouble, Empty >::type liquidbridgeVolume
Definition: MPIInteraction.h:91

References MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::liquidbridgeVolume.

◆ getLiquidBridge() [2/2]

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
template<class DUMMY = AdhesiveForceInteraction>
std::enable_if<!(std::is_base_of<LiquidMigrationWilletInteraction, DUMMY>::value), void>::type MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::getLiquidBridge ( const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *  interaction)
inline
277  {
278  }

◆ getMaximumOverlap() [1/2]

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
template<class DUMMY = NormalForceInteraction>
std::enable_if<(std::is_base_of<LinearPlasticViscoelasticInteraction, DUMMY>::value), void>::type MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::getMaximumOverlap ( const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *  interaction)
inline
293  {
294  maxOverlap = interaction->NormalForceInteraction::getMaxOverlap();
295  }
std::conditional< std::is_base_of< LinearPlasticViscoelasticInteraction, NormalForceInteraction >::value, Mdouble, Empty >::type maxOverlap
Definition: MPIInteraction.h:96

References MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::maxOverlap.

◆ getMaximumOverlap() [2/2]

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
template<class DUMMY = NormalForceInteraction>
std::enable_if<!(std::is_base_of<LinearPlasticViscoelasticInteraction, DUMMY>::value), void>::type MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::getMaximumOverlap ( const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *  interaction)
inline
311  {
312  }

◆ getSlidingSpring() [1/2]

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
template<class DUMMY = FrictionForceInteraction>
std::enable_if<std::is_base_of<SlidingFrictionInteraction, DUMMY>::value, void>::type MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::getSlidingSpring ( const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *  interaction)
inline
110  {
111  slidingSpring = interaction->FrictionForceInteraction::getSlidingSpring();
112  }
std::conditional< std::is_base_of< SlidingFrictionInteraction, FrictionForceInteraction >::value, Vec3D, Empty >::type slidingSpring
Definition: MPIInteraction.h:64

References MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::slidingSpring.

◆ getSlidingSpring() [2/2]

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
template<class DUMMY = FrictionForceInteraction>
std::enable_if<!(std::is_base_of<SlidingFrictionInteraction, DUMMY>::value), void>::type MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::getSlidingSpring ( const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *  interaction)
inline
128  {
129  }

◆ getWasInContact() [1/2]

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
template<class DUMMY = AdhesiveForceInteraction>
std::enable_if<( std::is_base_of<LiquidMigrationWilletInteraction, DUMMY>::value || std::is_base_of<LiquidBridgeWilletInteraction, DUMMY>::value || std::is_base_of<IrreversibleAdhesiveInteraction, DUMMY>::value), void>::type MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::getWasInContact ( const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *  interaction)
inline
184  {
185  wasInContact = interaction->AdhesiveForceInteraction::getWasInContact();
186  }
std::conditional<(std::is_base_of< LiquidMigrationWilletInteraction, AdhesiveForceInteraction >::value||std::is_base_of< LiquidBridgeWilletInteraction, AdhesiveForceInteraction >::value||std::is_base_of< IrreversibleAdhesiveInteraction, AdhesiveForceInteraction >::value), bool, Empty >::type wasInContact
Definition: MPIInteraction.h:81

References MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::wasInContact.

◆ getWasInContact() [2/2]

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
template<class DUMMY = AdhesiveForceInteraction>
std::enable_if<!( std::is_base_of<LiquidMigrationWilletInteraction, DUMMY>::value || std::is_base_of<LiquidBridgeWilletInteraction, DUMMY>::value || std::is_base_of<IrreversibleAdhesiveInteraction, DUMMY>::value), void>::type MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::getWasInContact ( const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *  interaction)
inline
208  {
209  }

◆ setBonded() [1/2]

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
template<class DUMMY = AdhesiveForceInteraction>
std::enable_if<(std::is_base_of<BondedInteraction, DUMMY>::value), void>::type MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::setBonded ( Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *  interaction)
inline
235  {
236  interaction->AdhesiveForceInteraction::setBonded(bonded);
237  }

References MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::bonded.

◆ setBonded() [2/2]

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
template<class DUMMY = AdhesiveForceInteraction>
std::enable_if<!(std::is_base_of<BondedInteraction, DUMMY>::value), void>::type MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::setBonded ( Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *  interaction)
inline
251  {
252  }

◆ setFrictionSprings() [1/2]

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
template<class DUMMY = FrictionForceInteraction>
std::enable_if<std::is_base_of<FrictionInteraction, DUMMY>::value, void>::type MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::setFrictionSprings ( Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *  interaction)
inline
155  {
156  interaction->FrictionForceInteraction::setRollingSpring(rollingSpring);
157  interaction->FrictionForceInteraction::setTorsionSpring(torsionSpring);
158  }

References MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::rollingSpring, and MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::torsionSpring.

◆ setFrictionSprings() [2/2]

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
template<class DUMMY = FrictionForceInteraction>
std::enable_if<!(std::is_base_of<FrictionInteraction, DUMMY>::value), void>::type MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::setFrictionSprings ( Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *  interaction)
inline
173  {
174  }

◆ setLiquidBridge() [1/2]

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
template<class DUMMY = AdhesiveForceInteraction>
std::enable_if<(std::is_base_of<LiquidMigrationWilletInteraction, DUMMY>::value), void>::type MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::setLiquidBridge ( Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *  interaction)
inline
268  {
269  interaction->AdhesiveForceInteraction::setLiquidBridgeVolume(liquidbridgeVolume);
270  }

References MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::liquidbridgeVolume.

◆ setLiquidBridge() [2/2]

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
template<class DUMMY = AdhesiveForceInteraction>
std::enable_if<!(std::is_base_of<LiquidMigrationWilletInteraction, DUMMY>::value), void>::type MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::setLiquidBridge ( Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *  interaction)
inline
285  {
286  }

◆ setMaximumOverlap() [1/2]

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
template<class DUMMY = NormalForceInteraction>
std::enable_if<(std::is_base_of<LinearPlasticViscoelasticInteraction, DUMMY>::value), void>::type MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::setMaximumOverlap ( Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *  interaction)
inline
302  {
303  interaction->NormalForceInteraction::setMaxOverlap(maxOverlap);
304  }

References MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::maxOverlap.

◆ setMaximumOverlap() [2/2]

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
template<class DUMMY = NormalForceInteraction>
std::enable_if<!(std::is_base_of<LinearPlasticViscoelasticInteraction, DUMMY>::value), void>::type MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::setMaximumOverlap ( Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *  interaction)
inline
319  {
320  }

◆ setSlidingSpring() [1/2]

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
template<class DUMMY = FrictionForceInteraction>
std::enable_if<std::is_base_of<SlidingFrictionInteraction, DUMMY>::value, void>::type MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::setSlidingSpring ( Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *  interaction)
inline
119  {
120  interaction->FrictionForceInteraction::setSlidingSpring(slidingSpring);
121  }

References MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::slidingSpring.

◆ setSlidingSpring() [2/2]

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
template<class DUMMY = FrictionForceInteraction>
std::enable_if<!(std::is_base_of<SlidingFrictionInteraction, DUMMY>::value), void>::type MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::setSlidingSpring ( Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *  interaction)
inline
136  {
137  }

◆ setWasInContact() [1/2]

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
template<class DUMMY = AdhesiveForceInteraction>
std::enable_if<( std::is_base_of<LiquidMigrationWilletInteraction, DUMMY>::value || std::is_base_of<LiquidBridgeWilletInteraction, DUMMY>::value || std::is_base_of<IrreversibleAdhesiveInteraction, DUMMY>::value), void>::type MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::setWasInContact ( Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *  interaction)
inline
196  {
197  interaction->AdhesiveForceInteraction::setWasInContact(wasInContact);
198  }

References MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::wasInContact.

◆ setWasInContact() [2/2]

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
template<class DUMMY = AdhesiveForceInteraction>
std::enable_if<!( std::is_base_of<LiquidMigrationWilletInteraction, DUMMY>::value || std::is_base_of<LiquidBridgeWilletInteraction, DUMMY>::value || std::is_base_of<IrreversibleAdhesiveInteraction, DUMMY>::value), void>::type MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::setWasInContact ( Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *  interaction)
inline
219  {
220  }

Member Data Documentation

◆ bonded

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
std::conditional< std::is_base_of<BondedInteraction, AdhesiveForceInteraction>::value, bool, Empty>::type MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::bonded

◆ force

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
Vec3D MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::force

◆ I

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
unsigned int MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::I

◆ isWallInteraction

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
bool MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::isWallInteraction

◆ liquidbridgeVolume

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
std::conditional< std::is_base_of<LiquidMigrationWilletInteraction, AdhesiveForceInteraction>::value, Mdouble, Empty>::type MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::liquidbridgeVolume

◆ maxOverlap

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
std::conditional< std::is_base_of<LinearPlasticViscoelasticInteraction, NormalForceInteraction>::value, Mdouble, Empty>::type MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::maxOverlap

◆ P

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
unsigned int MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::P

◆ rollingSpring

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
std::conditional< std::is_base_of<FrictionInteraction, FrictionForceInteraction>::value, Vec3D, Empty>::type MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::rollingSpring

◆ slidingSpring

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
std::conditional< std::is_base_of<SlidingFrictionInteraction, FrictionForceInteraction>::value, Vec3D, Empty>::type MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::slidingSpring

◆ speciesId

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
unsigned int MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::speciesId

◆ timeStamp

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
unsigned MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::timeStamp

◆ torque

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
Vec3D MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::torque

◆ torsionSpring

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
std::conditional< std::is_base_of<FrictionInteraction, FrictionForceInteraction>::value, Vec3D, Empty>::type MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::torsionSpring

◆ wasInContact

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
std::conditional< (std::is_base_of<LiquidMigrationWilletInteraction, AdhesiveForceInteraction>::value || std::is_base_of<LiquidBridgeWilletInteraction, AdhesiveForceInteraction>::value || std::is_base_of<IrreversibleAdhesiveInteraction, AdhesiveForceInteraction>::value), bool, Empty>::type MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::wasInContact

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