MercuryDPM  Trunk
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ParhamiMcMeekingSinterSpecies Class Reference

ParhamiMcMeekingSinterSpecies contains the parameters used to describe a linear reversible short-range force. More...

#include <ParhamiMcMeekingSinterSpecies.h>

+ Inheritance diagram for ParhamiMcMeekingSinterSpecies:

Public Types

typedef
ParhamiMcMeekingSinterInteraction 
InteractionType
 The correct Interaction type for this AdhesiveForceSpecies. More...
 

Public Member Functions

 ParhamiMcMeekingSinterSpecies ()
 The default constructor. More...
 
 ParhamiMcMeekingSinterSpecies (const ParhamiMcMeekingSinterSpecies &s)
 The default constructor. More...
 
 ~ParhamiMcMeekingSinterSpecies ()
 The default constructor. More...
 
void read (std::istream &is)
 Reads the species properties from an input stream. More...
 
void write (std::ostream &os) const
 Writes the species properties to an output stream. More...
 
std::string getBaseName () const
 Used in Species::getName to obtain a unique name for each Species. More...
 
void mix (ParhamiMcMeekingSinterSpecies *S, ParhamiMcMeekingSinterSpecies *T)
 creates default values for mixed species More...
 
void set (Mdouble alpha, Mdouble beta, Mdouble atomicVolume, Mdouble surfaceEnergy, Mdouble thicknessDiffusion, Mdouble activationEnergy, Mdouble temperature, Mdouble pseudoSlidingFrictionCoefficient)
 
Mdouble getViscosityCoefficient () const
 
Mdouble getAdhesionCoefficient () const
 
Mdouble getSlidingFrictionCoefficient () const
 
- Public Member Functions inherited from BaseForce
BaseSpeciesgetBaseSpecies () const
 
void setBaseSpecies (BaseSpecies *baseSpecies)
 

Private Attributes

Mdouble alpha_
 viscous force is adhesionCoefficient_*temperature*contactRadius^4*normalRelativeVelocity More...
 
Mdouble beta_
 
Mdouble atomicVolume_
 
Mdouble surfaceEnergy_
 
Mdouble thicknessDiffusion_
 
Mdouble activationEnergy_
 
Mdouble temperature_
 
Mdouble pseudoSlidingFrictionCoefficient_
 
Mdouble viscosityCoefficient_
 viscous force is viscosityCoefficient_*contactRadius^4*normalRelativeVelocity More...
 
Mdouble adhesionCoefficient_
 adhesion force is adhesionCoefficient_*radius More...
 
Mdouble slidingFrictionCoefficient_
 tangential force is slidingFrictionCoefficient_*contactRadius^2*radius*tangentialRelativeVelocity More...
 

Detailed Description

ParhamiMcMeekingSinterSpecies contains the parameters used to describe a linear reversible short-range force.

See ParhamiMcMeekingSinterInteraction::computeForce for a description of the force law.

Definition at line 37 of file ParhamiMcMeekingSinterSpecies.h.

Member Typedef Documentation

Constructor & Destructor Documentation

ParhamiMcMeekingSinterSpecies::ParhamiMcMeekingSinterSpecies ( )

The default constructor.

Todo:
: implement initial/read/write values

Definition at line 30 of file ParhamiMcMeekingSinterSpecies.cc.

31 {
32 // adhesionForceMax_ = 0;
33 // adhesionStiffness_ = 0;
34 #ifdef DEBUG_CONSTRUCTOR
35  std::cout<<"ParhamiMcMeekingSinterSpecies::ParhamiMcMeekingSinterSpecies() finished"<<std::endl;
36 #endif
37 }
ParhamiMcMeekingSinterSpecies::ParhamiMcMeekingSinterSpecies ( const ParhamiMcMeekingSinterSpecies s)

The default constructor.

Parameters
[in]sthe species that is copied

Definition at line 42 of file ParhamiMcMeekingSinterSpecies.cc.

References activationEnergy_, adhesionCoefficient_, alpha_, atomicVolume_, beta_, pseudoSlidingFrictionCoefficient_, slidingFrictionCoefficient_, surfaceEnergy_, temperature_, thicknessDiffusion_, and viscosityCoefficient_.

43 {
44  alpha_ = s.alpha_;
45  beta_ = s.beta_;
46  atomicVolume_ = s.atomicVolume_; /*Omega*/
47  surfaceEnergy_ = s.surfaceEnergy_; /*gamma_s*/
48  thicknessDiffusion_ = s.thicknessDiffusion_; /*deltaB*D0B*/
50  temperature_ = s.temperature_; /*T*/
55 #ifdef DEBUG_CONSTRUCTOR
56  std::cout<<"ParhamiMcMeekingSinterSpecies::ParhamiMcMeekingSinterSpecies(const ParhamiMcMeekingSinterSpecies &p) finished"<<std::endl;
57 #endif
58 }
Mdouble viscosityCoefficient_
viscous force is viscosityCoefficient_*contactRadius^4*normalRelativeVelocity
Mdouble adhesionCoefficient_
adhesion force is adhesionCoefficient_*radius
Mdouble slidingFrictionCoefficient_
tangential force is slidingFrictionCoefficient_*contactRadius^2*radius*tangentialRelativeVelocity ...
Mdouble alpha_
viscous force is adhesionCoefficient_*temperature*contactRadius^4*normalRelativeVelocity ...
ParhamiMcMeekingSinterSpecies::~ParhamiMcMeekingSinterSpecies ( )

The default constructor.

Definition at line 60 of file ParhamiMcMeekingSinterSpecies.cc.

61 {
62 #ifdef DEBUG_DESTRUCTOR
63  std::cout<<"ParhamiMcMeekingSinterSpecies::~ParhamiMcMeekingSinterSpecies() finished"<<std::endl;
64 #endif
65 }

Member Function Documentation

Mdouble ParhamiMcMeekingSinterSpecies::getAdhesionCoefficient ( ) const
inline

Definition at line 96 of file ParhamiMcMeekingSinterSpecies.h.

References adhesionCoefficient_.

Referenced by ParhamiMcMeekingSinterInteraction::computeAdhesionForce().

97  { return adhesionCoefficient_; }
Mdouble adhesionCoefficient_
adhesion force is adhesionCoefficient_*radius
std::string ParhamiMcMeekingSinterSpecies::getBaseName ( ) const

Used in Species::getName to obtain a unique name for each Species.

Returns
a string containing the name of the species (minus the word "Species")

Definition at line 89 of file ParhamiMcMeekingSinterSpecies.cc.

90 {
91  return "ParhamiMcMeekingSinter";
92 }
Mdouble ParhamiMcMeekingSinterSpecies::getSlidingFrictionCoefficient ( ) const
inline

Definition at line 99 of file ParhamiMcMeekingSinterSpecies.h.

References slidingFrictionCoefficient_.

Referenced by ParhamiMcMeekingSinterInteraction::computeAdhesionForce().

100  { return slidingFrictionCoefficient_; }
Mdouble slidingFrictionCoefficient_
tangential force is slidingFrictionCoefficient_*contactRadius^2*radius*tangentialRelativeVelocity ...
Mdouble ParhamiMcMeekingSinterSpecies::getViscosityCoefficient ( ) const
inline

Definition at line 93 of file ParhamiMcMeekingSinterSpecies.h.

References viscosityCoefficient_.

Referenced by ParhamiMcMeekingSinterInteraction::computeAdhesionForce().

94  { return viscosityCoefficient_; }
Mdouble viscosityCoefficient_
viscous force is viscosityCoefficient_*contactRadius^4*normalRelativeVelocity
void ParhamiMcMeekingSinterSpecies::mix ( ParhamiMcMeekingSinterSpecies S,
ParhamiMcMeekingSinterSpecies T 
)

creates default values for mixed species

For all parameters we assume that the harmonic mean of the parameters of the original two species is a sensible default.

Parameters
[in]S,Tthe two species whose properties are mixed to create the new species

Definition at line 99 of file ParhamiMcMeekingSinterSpecies.cc.

100 {
101 // adhesionForceMax_ = BaseSpecies::average(S->getAdhesionForceMax(), T->getAdhesionForceMax());
102 // adhesionStiffness_ = BaseSpecies::average(S->getAdhesionStiffness(), T->getAdhesionStiffness());
103 }
void ParhamiMcMeekingSinterSpecies::read ( std::istream &  is)

Reads the species properties from an input stream.

Parameters
[in]isinput stream (typically the restart file)

Definition at line 79 of file ParhamiMcMeekingSinterSpecies.cc.

80 {
81 // std::string dummy;
82 // is >> dummy >> adhesionForceMax_;
83 // is >> dummy >> adhesionStiffness_;
84 }
void ParhamiMcMeekingSinterSpecies::set ( Mdouble  alpha,
Mdouble  beta,
Mdouble  atomicVolume,
Mdouble  surfaceEnergy,
Mdouble  thicknessDiffusion,
Mdouble  activationEnergy,
Mdouble  temperature,
Mdouble  pseudoSlidingFrictionCoefficient 
)
inline

Definition at line 67 of file ParhamiMcMeekingSinterSpecies.h.

References activationEnergy_, adhesionCoefficient_, alpha_, atomicVolume_, mathsFunc::beta(), beta_, mathsFunc::exp(), constants::pi, pseudoSlidingFrictionCoefficient_, slidingFrictionCoefficient_, surfaceEnergy_, temperature_, thicknessDiffusion_, and viscosityCoefficient_.

70  {
71  alpha_ = alpha;
72  beta_ = beta;
73  atomicVolume_ = atomicVolume;
74  surfaceEnergy_ = surfaceEnergy;
75  thicknessDiffusion_ = thicknessDiffusion;
76  activationEnergy_ = activationEnergy;
77  temperature_ = temperature;
78  pseudoSlidingFrictionCoefficient_ = pseudoSlidingFrictionCoefficient;
79 
80  Mdouble boltzmannConstant /*k_B*/ = 1.38064852e-23;
81  Mdouble gasConstant /*R_g*/ = 8.314459848;
82  Mdouble thicknessDiffusionVacancy /*DB*/ =
84  std::cout << thicknessDiffusionVacancy << "|" << thicknessDiffusion_ << std::endl;
85  Mdouble diffusionParameter /*DeltaB*/ =
86  atomicVolume_ / boltzmannConstant / temperature_ * thicknessDiffusionVacancy;
87  viscosityCoefficient_ = constants::pi / (2.0 * beta * diffusionParameter);
90  pseudoSlidingFrictionCoefficient_ * constants::pi / (2.0 * beta * diffusionParameter);
91  }
double Mdouble
Definition: GeneralDefine.h:34
Mdouble exp(Mdouble Exponent)
Definition: ExtendedMath.cc:84
Mdouble beta(Mdouble z, Mdouble w)
This is the beta function, returns the approximation based on cmath's implementation of ln(gamma) ...
Mdouble viscosityCoefficient_
viscous force is viscosityCoefficient_*contactRadius^4*normalRelativeVelocity
Mdouble adhesionCoefficient_
adhesion force is adhesionCoefficient_*radius
const Mdouble pi
Definition: ExtendedMath.h:45
Mdouble slidingFrictionCoefficient_
tangential force is slidingFrictionCoefficient_*contactRadius^2*radius*tangentialRelativeVelocity ...
Mdouble alpha_
viscous force is adhesionCoefficient_*temperature*contactRadius^4*normalRelativeVelocity ...
void ParhamiMcMeekingSinterSpecies::write ( std::ostream &  os) const

Writes the species properties to an output stream.

Parameters
[out]osoutput stream (typically the restart file)

Definition at line 70 of file ParhamiMcMeekingSinterSpecies.cc.

71 {
72 // os << " adhesionForceMax " << adhesionForceMax_;
73 // os << " adhesionStiffness " << adhesionStiffness_;
74 }

Member Data Documentation

Mdouble ParhamiMcMeekingSinterSpecies::activationEnergy_
private

Definition at line 110 of file ParhamiMcMeekingSinterSpecies.h.

Referenced by ParhamiMcMeekingSinterSpecies(), and set().

Mdouble ParhamiMcMeekingSinterSpecies::adhesionCoefficient_
private

adhesion force is adhesionCoefficient_*radius

Definition at line 118 of file ParhamiMcMeekingSinterSpecies.h.

Referenced by getAdhesionCoefficient(), ParhamiMcMeekingSinterSpecies(), and set().

Mdouble ParhamiMcMeekingSinterSpecies::alpha_
private

viscous force is adhesionCoefficient_*temperature*contactRadius^4*normalRelativeVelocity

Definition at line 105 of file ParhamiMcMeekingSinterSpecies.h.

Referenced by ParhamiMcMeekingSinterSpecies(), and set().

Mdouble ParhamiMcMeekingSinterSpecies::atomicVolume_
private

Definition at line 107 of file ParhamiMcMeekingSinterSpecies.h.

Referenced by ParhamiMcMeekingSinterSpecies(), and set().

Mdouble ParhamiMcMeekingSinterSpecies::beta_
private

Definition at line 106 of file ParhamiMcMeekingSinterSpecies.h.

Referenced by ParhamiMcMeekingSinterSpecies(), and set().

Mdouble ParhamiMcMeekingSinterSpecies::pseudoSlidingFrictionCoefficient_
private

Definition at line 112 of file ParhamiMcMeekingSinterSpecies.h.

Referenced by ParhamiMcMeekingSinterSpecies(), and set().

Mdouble ParhamiMcMeekingSinterSpecies::slidingFrictionCoefficient_
private

tangential force is slidingFrictionCoefficient_*contactRadius^2*radius*tangentialRelativeVelocity

Definition at line 121 of file ParhamiMcMeekingSinterSpecies.h.

Referenced by getSlidingFrictionCoefficient(), ParhamiMcMeekingSinterSpecies(), and set().

Mdouble ParhamiMcMeekingSinterSpecies::surfaceEnergy_
private

Definition at line 108 of file ParhamiMcMeekingSinterSpecies.h.

Referenced by ParhamiMcMeekingSinterSpecies(), and set().

Mdouble ParhamiMcMeekingSinterSpecies::temperature_
private

Definition at line 111 of file ParhamiMcMeekingSinterSpecies.h.

Referenced by ParhamiMcMeekingSinterSpecies(), and set().

Mdouble ParhamiMcMeekingSinterSpecies::thicknessDiffusion_
private

Definition at line 109 of file ParhamiMcMeekingSinterSpecies.h.

Referenced by ParhamiMcMeekingSinterSpecies(), and set().

Mdouble ParhamiMcMeekingSinterSpecies::viscosityCoefficient_
private

viscous force is viscosityCoefficient_*contactRadius^4*normalRelativeVelocity

Definition at line 115 of file ParhamiMcMeekingSinterSpecies.h.

Referenced by getViscosityCoefficient(), ParhamiMcMeekingSinterSpecies(), and set().


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