ThermalInteraction< NormalForceInteraction > Class Template Reference

#include <ThermalInteraction.h>

+ Inheritance diagram for ThermalInteraction< NormalForceInteraction >:

Public Types

typedef ThermalSpecies< typename NormalForceInteraction::SpeciesType > SpeciesType
 

Public Member Functions

 ThermalInteraction (BaseInteractable *P, BaseInteractable *I, unsigned timeStamp)
 Constructor. More...
 
 ThermalInteraction ()
 Default Constructor. More...
 
 ThermalInteraction (const ThermalInteraction &p)
 Copy constructor. More...
 
virtual ~ThermalInteraction ()
 Destructor. More...
 
void computeNormalForce ()
 Computes the normal forces due to linear plastic visco elastic interaction. More...
 

Member Typedef Documentation

◆ SpeciesType

template<class NormalForceInteraction >
typedef ThermalSpecies<typename NormalForceInteraction::SpeciesType> ThermalInteraction< NormalForceInteraction >::SpeciesType

Constructor & Destructor Documentation

◆ ThermalInteraction() [1/3]

template<class NormalForceInteraction >
ThermalInteraction< NormalForceInteraction >::ThermalInteraction ( BaseInteractable P,
BaseInteractable I,
unsigned  timeStamp 
)

Constructor.

71  : BaseInteraction(P, I, timeStamp), NormalForceInteraction(P, I, timeStamp)
72 {}
Stores information about interactions between two interactable objects; often particles but could be ...
Definition: BaseInteraction.h:60
double P
Uniform pressure.
Definition: TwenteMeshGluing.cpp:73

◆ ThermalInteraction() [2/3]

template<class NormalForceInteraction >
ThermalInteraction< NormalForceInteraction >::ThermalInteraction

Default Constructor.

◆ ThermalInteraction() [3/3]

template<class NormalForceInteraction >
ThermalInteraction< NormalForceInteraction >::ThermalInteraction ( const ThermalInteraction< NormalForceInteraction > &  p)

Copy constructor.

◆ ~ThermalInteraction()

template<class NormalForceInteraction >
ThermalInteraction< NormalForceInteraction >::~ThermalInteraction
virtual

Destructor.

86 {}

Member Function Documentation

◆ computeNormalForce()

template<class NormalForceInteraction >
void ThermalInteraction< NormalForceInteraction >::computeNormalForce

Computes the normal forces due to linear plastic visco elastic interaction.

90 {
91  NormalForceInteraction::computeNormalForce();
92  Mdouble radius = 2.0 * NormalForceInteraction::getEffectiveRadius();
93  Mdouble contactArea = constants::pi * radius * std::max(0.0,NormalForceInteraction::getOverlap());
94  const SpeciesType* species = static_cast<const SpeciesType*>(NormalForceInteraction::getBaseSpecies()->getNormalForce());
95  ThermalParticle* pParticle = dynamic_cast<ThermalParticle*>(NormalForceInteraction::getP());
96  ThermalParticle* iParticle = dynamic_cast<ThermalParticle*>(NormalForceInteraction::getI());
97  // if both p and i are particles
98  if (pParticle && iParticle)
99  {
100  /* heat transfer rate Q=m*c*dT/dt */
101  Mdouble heatTransfer = species->getThermalConductivity()
102  * (pParticle->getTemperature() - iParticle->getTemperature())
103  * contactArea / NormalForceInteraction::getDistance();
104  /* m*dT = Q/c*dt */
105  Mdouble mdT = heatTransfer / species->getHeatCapacity()
106  * NormalForceInteraction::getHandler()->getDPMBase()->getTimeStep();
107  pParticle->addTemperature(-mdT * pParticle->getInvMass());
108  iParticle->addTemperature(mdT * iParticle->getInvMass());
109  }
110 }
double Mdouble
Definition: GeneralDefine.h:34
ThermalSpecies< typename NormalForceInteraction::SpeciesType > SpeciesType
Definition: ThermalInteraction.h:39
Definition: ThermalParticle.h:36
void addTemperature(Mdouble temperature)
Definition: ThermalParticle.h:112
Mdouble getTemperature() const
Definition: ThermalParticle.h:101
const Mdouble pi
Definition: ExtendedMath.h:45

References Thermal< Particle >::addTemperature(), ThermalSpecies< NormalForceSpecies >::getHeatCapacity(), Thermal< Particle >::getTemperature(), ThermalSpecies< NormalForceSpecies >::getThermalConductivity(), and constants::pi.


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