MercuryDPM  Trunk
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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
 

Detailed Description

template<class NormalForceInteraction, class FrictionForceInteraction, class AdhesiveForceInteraction>
class MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >

Definition at line 47 of file MPIInteraction.h.

Constructor & Destructor Documentation

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::MPIInteraction ( )

Definition at line 325 of file MPIInteraction.h.

326 {
327 }

Member Function Documentation

template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
void MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::copyFromInteraction ( const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *  interaction)

Definition at line 330 of file MPIInteraction.h.

References logger, and WARN.

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

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< MERCURY_LOGLEVEL > logger("MercuryKernel")
Definition of different loggers with certain modules. A user can define its own custom logger here...
unsigned int I
std::enable_if<(std::is_base_of< BondedInteraction, DUMMY >::value), void >::type getBonded(const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
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)
std::enable_if<(std::is_base_of< LinearPlasticViscoelasticInteraction, DUMMY >::value), void >::type getMaximumOverlap(const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
unsigned int P
unsigned timeStamp
std::enable_if<(std::is_base_of< LiquidMigrationWilletInteraction, DUMMY >::value), void >::type getLiquidBridge(const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
std::enable_if< std::is_base_of< SlidingFrictionInteraction, DUMMY >::value, void >::type getSlidingSpring(const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
std::enable_if< std::is_base_of< FrictionInteraction, DUMMY >::value, void >::type getFrictionSprings(const Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
template<class NormalForceInteraction , class FrictionForceInteraction , class AdhesiveForceInteraction >
void MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::copyToInteraction ( Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *  interaction,
const bool  resetPointers 
)

Definition at line 363 of file MPIInteraction.h.

References BaseInteraction::setBasicMPIInteractionValues().

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

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 }
std::enable_if<(std::is_base_of< LiquidMigrationWilletInteraction, DUMMY >::value), void >::type setLiquidBridge(Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
unsigned int I
std::enable_if< std::is_base_of< FrictionInteraction, DUMMY >::value, void >::type setFrictionSprings(Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
Stores information about interactions between two interactable objects; often particles but could be ...
unsigned int P
unsigned timeStamp
std::enable_if< std::is_base_of< SlidingFrictionInteraction, DUMMY >::value, void >::type setSlidingSpring(Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
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)
std::enable_if<(std::is_base_of< BondedInteraction, DUMMY >::value), void >::type setBonded(Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
std::enable_if<(std::is_base_of< LinearPlasticViscoelasticInteraction, DUMMY >::value), void >::type setMaximumOverlap(Interaction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction > *interaction)
void setBasicMPIInteractionValues(int P, int I, unsigned timeStamp, Vec3D force, Vec3D torque, bool isWallInteraction, bool resetPointers)
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

Definition at line 225 of file MPIInteraction.h.

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

227  {
228  bonded = interaction->AdhesiveForceInteraction::getBonded();
229  }
std::conditional< std::is_base_of< BondedInteraction, AdhesiveForceInteraction >::value, bool, Empty >::type bonded
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

Definition at line 242 of file MPIInteraction.h.

244  {
245  }
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

Definition at line 143 of file MPIInteraction.h.

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

145  {
146  rollingSpring = interaction->FrictionForceInteraction::getRollingSpring();
147  torsionSpring = interaction->FrictionForceInteraction::getTorsionSpring();
148  }
std::conditional< std::is_base_of< FrictionInteraction, FrictionForceInteraction >::value, Vec3D, Empty >::type torsionSpring
std::conditional< std::is_base_of< FrictionInteraction, FrictionForceInteraction >::value, Vec3D, Empty >::type rollingSpring
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

Definition at line 163 of file MPIInteraction.h.

165  {
166  }
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

Definition at line 257 of file MPIInteraction.h.

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

259  {
260  liquidbridgeVolume = interaction->AdhesiveForceInteraction::getLiquidBridgeVolume();
261  }
std::conditional< std::is_base_of< LiquidMigrationWilletInteraction, AdhesiveForceInteraction >::value, Mdouble, Empty >::type liquidbridgeVolume
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

Definition at line 275 of file MPIInteraction.h.

277  {
278  }
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

Definition at line 291 of file MPIInteraction.h.

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

293  {
294  maxOverlap = interaction->NormalForceInteraction::getMaxOverlap();
295  }
std::conditional< std::is_base_of< LinearPlasticViscoelasticInteraction, NormalForceInteraction >::value, Mdouble, Empty >::type maxOverlap
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

Definition at line 309 of file MPIInteraction.h.

311  {
312  }
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

Definition at line 108 of file MPIInteraction.h.

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

110  {
111  slidingSpring = interaction->FrictionForceInteraction::getSlidingSpring();
112  }
std::conditional< std::is_base_of< SlidingFrictionInteraction, FrictionForceInteraction >::value, Vec3D, Empty >::type slidingSpring
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

Definition at line 126 of file MPIInteraction.h.

128  {
129  }
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

Definition at line 182 of file MPIInteraction.h.

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

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
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

Definition at line 206 of file MPIInteraction.h.

208  {
209  }
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

Definition at line 234 of file MPIInteraction.h.

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

235  {
236  interaction->AdhesiveForceInteraction::setBonded(bonded);
237  }
std::conditional< std::is_base_of< BondedInteraction, AdhesiveForceInteraction >::value, bool, Empty >::type bonded
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

Definition at line 250 of file MPIInteraction.h.

251  {
252  }
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

Definition at line 153 of file MPIInteraction.h.

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

155  {
156  interaction->FrictionForceInteraction::setRollingSpring(rollingSpring);
157  interaction->FrictionForceInteraction::setTorsionSpring(torsionSpring);
158  }
std::conditional< std::is_base_of< FrictionInteraction, FrictionForceInteraction >::value, Vec3D, Empty >::type torsionSpring
std::conditional< std::is_base_of< FrictionInteraction, FrictionForceInteraction >::value, Vec3D, Empty >::type rollingSpring
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

Definition at line 171 of file MPIInteraction.h.

173  {
174  }
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

Definition at line 266 of file MPIInteraction.h.

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

268  {
269  interaction->AdhesiveForceInteraction::setLiquidBridgeVolume(liquidbridgeVolume);
270  }
std::conditional< std::is_base_of< LiquidMigrationWilletInteraction, AdhesiveForceInteraction >::value, Mdouble, Empty >::type liquidbridgeVolume
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

Definition at line 283 of file MPIInteraction.h.

285  {
286  }
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

Definition at line 300 of file MPIInteraction.h.

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

302  {
303  interaction->NormalForceInteraction::setMaxOverlap(maxOverlap);
304  }
std::conditional< std::is_base_of< LinearPlasticViscoelasticInteraction, NormalForceInteraction >::value, Mdouble, Empty >::type maxOverlap
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

Definition at line 317 of file MPIInteraction.h.

319  {
320  }
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

Definition at line 117 of file MPIInteraction.h.

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

119  {
120  interaction->FrictionForceInteraction::setSlidingSpring(slidingSpring);
121  }
std::conditional< std::is_base_of< SlidingFrictionInteraction, FrictionForceInteraction >::value, Vec3D, Empty >::type slidingSpring
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

Definition at line 134 of file MPIInteraction.h.

136  {
137  }
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

Definition at line 194 of file MPIInteraction.h.

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

196  {
197  interaction->AdhesiveForceInteraction::setWasInContact(wasInContact);
198  }
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
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

Definition at line 217 of file MPIInteraction.h.

219  {
220  }

Member Data Documentation

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

Definition at line 57 of file MPIInteraction.h.

template<class NormalForceInteraction, class FrictionForceInteraction, class AdhesiveForceInteraction>
unsigned int MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::I
template<class NormalForceInteraction, class FrictionForceInteraction, class AdhesiveForceInteraction>
bool MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::isWallInteraction
template<class NormalForceInteraction, class FrictionForceInteraction, class AdhesiveForceInteraction>
unsigned int MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::P
template<class NormalForceInteraction, class FrictionForceInteraction, class AdhesiveForceInteraction>
unsigned int MPIInteraction< NormalForceInteraction, FrictionForceInteraction, AdhesiveForceInteraction >::speciesId

Definition at line 54 of file MPIInteraction.h.

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

Definition at line 58 of file MPIInteraction.h.


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