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
305 {
306 }

Member Function Documentation

◆ copyFromInteraction()

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
void MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::copyFromInteraction ( const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *  interaction)
311 {
312  //logger.assert_debug(interaction->getP()->getId(),"Trying to copy an unreal interaction: P is not defined");
313  //logger.assert_debug(interaction->getP()->getId(),"Trying to copy an unreal interaction: I is not defined");
314 
315  if (interaction->getP() == nullptr) logger(WARN, "P is not defined!!");
316  if (interaction->getI() == nullptr) logger(WARN, "I is not defined!!");
317  P = interaction->getP()->getId();
318  I = interaction->getI()->getId();
319 
320  if (dynamic_cast<const BaseParticle*>(interaction->getI()) == nullptr)
321  {
322  isWallInteraction = true;
323  }
324  else
325  {
326  isWallInteraction = false;
327  }
328 
329  timeStamp = interaction->getTimeStamp();
330  force = interaction->getForce();
331  torque = interaction->getTorque();
332  getSlidingSpring(interaction);
333  getFrictionSprings(interaction);
334  getWasInContact(interaction);
335  getBonded(interaction);
336  getLiquidBridge(interaction);
337  getMaximumOverlap(interaction);
338 }
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:189
const Vec3D & getTorque() const
Gets the current torque (vector) between the two interacting objects.
Definition: BaseInteraction.h:197
Mdouble getTimeStamp() const
Returns an Mdouble which is the time stamp of the interaction.
Definition: BaseInteraction.h:298
BaseInteractable * getI()
Returns a pointer to the second object involved in the interaction (often a wall or a particle).
Definition: BaseInteraction.h:264
BaseInteractable * getP()
Returns a pointer to first object involved in the interaction (normally a particle).
Definition: BaseInteraction.h:253
unsigned int getId() const
Returns the unique identifier of any particular object.
Definition: BaseObject.h:104
Definition: BaseParticle.h:33
bool isWallInteraction
Definition: MPIInteraction.h:34
unsigned int P
Definition: MPIInteraction.h:31
std::enable_if<(std::is_base_of< BondedInteraction, DUMMY >::value), void >::type getBonded(const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
Definition: MPIInteraction.h:204
std::enable_if< std::is_base_of< FrictionInteraction, DUMMY >::value, void >::type getFrictionSprings(const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
Definition: MPIInteraction.h:122
unsigned timeStamp
Definition: MPIInteraction.h:35
Vec3D torque
Definition: MPIInteraction.h:37
Vec3D force
Definition: MPIInteraction.h:36
std::enable_if< std::is_base_of< SlidingFrictionInteraction, DUMMY >::value, void >::type getSlidingSpring(const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
Definition: MPIInteraction.h:87
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:161
std::enable_if<(std::is_base_of< LinearPlasticViscoelasticInteraction, DUMMY >::value), void >::type getMaximumOverlap(const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
Definition: MPIInteraction.h:270
unsigned int I
Definition: MPIInteraction.h:32
std::enable_if<(std::is_base_of< LiquidMigrationWilletInteraction, DUMMY >::value), void >::type getLiquidBridge(const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
Definition: MPIInteraction.h:236

References BaseInteraction::getForce(), BaseInteraction::getI(), BaseObject::getId(), BaseInteraction::getP(), BaseInteraction::getTimeStamp(), BaseInteraction::getTorque(), I, 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 
)
345 {
346  //Basic interaction values
347  BaseInteraction* basicInteraction = static_cast<BaseInteraction*>(interaction);
348  basicInteraction->setBasicMPIInteractionValues(P, I, timeStamp, force, torque, isWallInteraction, resetPointers);
349 
350  //Specific history interaction values, interaction type denpendent
351  setSlidingSpring(interaction);
352  setFrictionSprings(interaction);
353  setWasInContact(interaction);
354  setBonded(interaction);
355  setLiquidBridge(interaction);
356  setMaximumOverlap(interaction);
357 }
Stores information about interactions between two interactable objects; often particles but could be ...
Definition: BaseInteraction.h:39
void setBasicMPIInteractionValues(int P, int I, unsigned timeStamp, Vec3D force, Vec3D torque, bool isWallInteraction, bool resetPointers)
Definition: BaseInteraction.cc:944
std::enable_if<(std::is_base_of< LinearPlasticViscoelasticInteraction, DUMMY >::value), void >::type setMaximumOverlap(Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
Definition: MPIInteraction.h:279
std::enable_if< std::is_base_of< SlidingFrictionInteraction, DUMMY >::value, void >::type setSlidingSpring(Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
Definition: MPIInteraction.h:96
std::enable_if<(std::is_base_of< BondedInteraction, DUMMY >::value), void >::type setBonded(Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
Definition: MPIInteraction.h:213
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:173
std::enable_if<(std::is_base_of< LiquidMigrationWilletInteraction, DUMMY >::value), void >::type setLiquidBridge(Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
Definition: MPIInteraction.h:245
std::enable_if< std::is_base_of< FrictionInteraction, DUMMY >::value, void >::type setFrictionSprings(Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
Definition: MPIInteraction.h:132

References I, 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
206  {
207  bonded = interaction->AdhesiveForceInteraction::getBonded();
208  }
std::conditional< std::is_base_of< BondedInteraction, AdhesiveForceInteraction >::value, bool, Empty >::type bonded
Definition: MPIInteraction.h:65

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
223  {
224  }

◆ 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
124  {
125  rollingSpring = interaction->FrictionForceInteraction::getRollingSpring();
126  torsionSpring = interaction->FrictionForceInteraction::getTorsionSpring();
127  }
std::conditional< std::is_base_of< FrictionInteraction, FrictionForceInteraction >::value, Vec3D, Empty >::type rollingSpring
Definition: MPIInteraction.h:48
std::conditional< std::is_base_of< FrictionInteraction, FrictionForceInteraction >::value, Vec3D, Empty >::type torsionSpring
Definition: MPIInteraction.h:52

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
144  {
145  }

◆ 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
238  {
239  liquidbridgeVolume = interaction->AdhesiveForceInteraction::getLiquidBridgeVolume();
240  }
std::conditional< std::is_base_of< LiquidMigrationWilletInteraction, AdhesiveForceInteraction >::value, Mdouble, Empty >::type liquidbridgeVolume
Definition: MPIInteraction.h:70

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
256  {
257  }

◆ 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
272  {
273  maxOverlap = interaction->NormalForceInteraction::getMaxOverlap();
274  }
std::conditional< std::is_base_of< LinearPlasticViscoelasticInteraction, NormalForceInteraction >::value, Mdouble, Empty >::type maxOverlap
Definition: MPIInteraction.h:75

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
290  {
291  }

◆ 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
89  {
90  slidingSpring = interaction->FrictionForceInteraction::getSlidingSpring();
91  }
std::conditional< std::is_base_of< SlidingFrictionInteraction, FrictionForceInteraction >::value, Vec3D, Empty >::type slidingSpring
Definition: MPIInteraction.h:43

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
107  {
108  }

◆ 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
163  {
164  wasInContact = interaction->AdhesiveForceInteraction::getWasInContact();
165  }
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:60

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
187  {
188  }

◆ 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
214  {
215  interaction->AdhesiveForceInteraction::setBonded(bonded);
216  }

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
230  {
231  }

◆ 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
134  {
135  interaction->FrictionForceInteraction::setRollingSpring(rollingSpring);
136  interaction->FrictionForceInteraction::setTorsionSpring(torsionSpring);
137  }

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
152  {
153  }

◆ 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
247  {
248  interaction->AdhesiveForceInteraction::setLiquidBridgeVolume(liquidbridgeVolume);
249  }

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
264  {
265  }

◆ 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
281  {
282  interaction->NormalForceInteraction::setMaxOverlap(maxOverlap);
283  }

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
298  {
299  }

◆ 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
98  {
99  interaction->FrictionForceInteraction::setSlidingSpring(slidingSpring);
100  }

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
115  {
116  }

◆ 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
175  {
176  interaction->AdhesiveForceInteraction::setWasInContact(wasInContact);
177  }

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
198  {
199  }

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: