OpenMPCD
AnalyticQuantities.hpp
Go to the documentation of this file.
1 /**
2  * @file
3  * Defines the OpenMPCD::AnalyticQuantities class.
4  */
5 
6 #ifndef OPENMPCD_ANALYTICQUANTITIES_HPP
7 #define OPENMPCD_ANALYTICQUANTITIES_HPP
8 
9 #include <OpenMPCD/Types.hpp>
10 
11 namespace OpenMPCD
12 {
13  /**
14  * Computes analytic quantities.
15  */
17  {
18  private:
19  AnalyticQuantities(); ///< The constructor.
20 
21  public:
22  /**
23  * Returns the analytical value for the mean free path for a point particle.
24  * @param[in] kT The product of the fluid temperature with Boltzmann's constant.
25  * @param[in] m The fluid particle mass.
26  * @param[in] timestep The timestep used in the simulation.
27  */
28  static FP meanFreePath(const FP kT, const FP m, const FP timestep);
29 
30  /**
31  * Returns the kinetic contributions to the kinematic shear viscosity in SRD.
32  * This quantity is often denoted \f$ \nu^k \f$.
33  * The formula used is given in "Multi-Particle Collision Dynamics: A Particle-Based Mesoscale Simulation
34  * Approach to the Hydrodynamics of Complex Fluids" by G. Gompper, T. Ihle, D.M. Kroll, and R.G. Winkler,
35  * DOI:10.1007/978-3-540-87706-6_1, chapter 4.1.1, formula 32.
36  * @param[in] kT The product of the fluid temperature with Boltzmann's constant.
37  * @param[in] m The fluid particle mass.
38  * @param[in] meanParticleCountPerCell The mean number of particles per collision cell.
39  * @param[in] srdAngle The angle used in SRD rotations.
40  * @param[in] timestep The timestep used in the simulation.
41  */
43  const FP kT, const FP m, const FP meanParticleCountPerCell, const FP srdAngle, const FP timestep);
44 
45  /**
46  * Returns the kinetic contributions to the dynamic shear viscosity in SRD.
47  * This quantity is often denoted \f$ \eta^k \f$.
48  * The computed value is based on kineticContributionsToSRDKinematicShearViscosity.
49  * @param[in] kT The product of the fluid temperature with Boltzmann's constant.
50  * @param[in] m The fluid particle mass.
51  * @param[in] linearCellSize The size of each of the cubic collision cell's edges.
52  * @param[in] meanParticleCountPerCell The mean number of particles per collision cell.
53  * @param[in] srdAngle The angle used in SRD rotations.
54  * @param[in] timestep The timestep used in the simulation.
55  */
57  const FP kT, const FP m, const FP linearCellSize, const FP meanParticleCountPerCell,
58  const FP srdAngle, const FP timestep);
59 
60  /**
61  * Returns the collisional contributions to the kinematic shear viscosity in SRD.
62  * This quantity is often denoted \f$ \nu^c \f$.
63  * The formula used is given in "Multi-Particle Collision Dynamics: A Particle-Based Mesoscale Simulation
64  * Approach to the Hydrodynamics of Complex Fluids" by G. Gompper, T. Ihle, D.M. Kroll, and R.G. Winkler,
65  * DOI:10.1007/978-3-540-87706-6_1, chapter 4.1.1, formula 39.
66  * @param[in] linearCellSize The size of each of the cubic collision cell's edges.
67  * @param[in] meanParticleCountPerCell The mean number of particles per collision cell.
68  * @param[in] srdAngle The angle used in SRD rotations.
69  * @param[in] timestep The timestep used in the simulation.
70  */
72  const FP linearCellSize, const FP meanParticleCountPerCell, const FP srdAngle,
73  const FP timestep);
74 
75  /**
76  * Returns the collisional contributions to the dynamic shear viscosity in SRD.
77  * This quantity is often denoted \f$ \eta^c \f$.
78  * The computed value is based on collisionalContributionsToSRDKinematicShearViscosity.
79  * @param[in] m The fluid particle mass.
80  * @param[in] linearCellSize The size of each of the cubic collision cell's edges.
81  * @param[in] meanParticleCountPerCell The mean number of particles per collision cell.
82  * @param[in] srdAngle The angle used in SRD rotations.
83  * @param[in] timestep The timestep used in the simulation.
84  */
86  const FP m, const FP linearCellSize, const FP meanParticleCountPerCell, const FP srdAngle,
87  const FP timestep);
88 
89  /**
90  * Returns the kinematic shear viscosity in SRD.
91  * This quantity is often denoted \f$ \nu \f$.
92  * The computed value is the sum of kineticContributionsToSRDKinematicShearViscosity
93  * and collisionalContributionsToSRDKinematicShearViscosity
94  * @param[in] kT The product of the fluid temperature with Boltzmann's constant.
95  * @param[in] m The fluid particle mass.
96  * @param[in] linearCellSize The size of each of the cubic collision cell's edges.
97  * @param[in] meanParticleCountPerCell The mean number of particles per collision cell.
98  * @param[in] srdAngle The angle used in SRD rotations.
99  * @param[in] timestep The timestep used in the simulation.
100  */
102  const FP kT, const FP m, const FP linearCellSize, const FP meanParticleCountPerCell,
103  const FP srdAngle, const FP timestep);
104 
105  /**
106  * Returns the dynamic shear viscosity in SRD.
107  * This quantity is often denoted \f$ \eta \f$.
108  * The computed value is the sum of kineticContributionsToSRDDynamicShearViscosity
109  * and collisionalContributionsToSRDDynamicShearViscosity.
110  * @param[in] kT The product of the fluid temperature with Boltzmann's constant.
111  * @param[in] m The fluid particle mass.
112  * @param[in] linearCellSize The size of each of the cubic collision cell's edges.
113  * @param[in] meanParticleCountPerCell The mean number of particles per collision cell.
114  * @param[in] srdAngle The angle used in SRD rotations.
115  * @param[in] timestep The timestep used in the simulation.
116  */
118  const FP kT, const FP m, const FP linearCellSize, const FP meanParticleCountPerCell,
119  const FP srdAngle, const FP timestep);
120 
121  /**
122  * Returns an approximation for the self-diffusion coefficient $D$.
123  * As given in Table 1 of "Multi-Particle Collision Dynamics: A Particle-Based Mesoscale Simulation
124  * Approach to the Hydrodynamics of Complex Fluids" by G. Gompper, T. Ihle, D.M. Kroll, and R.G. Winkler,
125  * DOI:10.1007/978-3-540-87706-6_1
126  * @param[in] dimensions The spatial dimensions of the system.
127  * @param[in] kT The product of the fluid temperature with Boltzmann's constant.
128  * @param[in] m The fluid particle mass.
129  * @param[in] meanParticleCountPerCell The average number of particles in a simulation cell.
130  * @param[in] srdAngle The angle used in SRD rotations, in radians.
131  * @param[in] timestep The timestep used in the simulation.
132  */
133  static FP approximateSelfDiffusionCoefficient(const unsigned int dimensions, const FP kT, const FP m,
134  const FP meanParticleCountPerCell, const FP srdAngle,
135  const FP timestep);
136 
137  /**
138  * Returns the hydrodynamic radius \f$ R_H \f$ (Stokes-Einstein radius) of a spherical particle.
139  * @param[in] kT The product of the fluid temperature with Boltzmann's constant.
140  * @param[in] dynamicStressViscosity The dynamic stress viscosity (\f$ \eta \f$ or \f$ \mu \f$) of the fluid.
141  * @param[in] selfDiffusionCoefficient The self-diffusion coefficient $D$ of the particle.
142  */
143  static FP hydrodynamicRadius(const FP kT, const FP dynamicStressViscosity,
144  const FP selfDiffusionCoefficient);
145  };
146 }
147 
148 #endif
OpenMPCD::AnalyticQuantities::collisionalContributionsToSRDKinematicShearViscosity
static FP collisionalContributionsToSRDKinematicShearViscosity(const FP linearCellSize, const FP meanParticleCountPerCell, const FP srdAngle, const FP timestep)
Returns the collisional contributions to the kinematic shear viscosity in SRD.
Definition: AnalyticQuantities.cpp:40
OpenMPCD::AnalyticQuantities
Computes analytic quantities.
Definition: AnalyticQuantities.hpp:16
OpenMPCD::AnalyticQuantities::collisionalContributionsToSRDDynamicShearViscosity
static FP collisionalContributionsToSRDDynamicShearViscosity(const FP m, const FP linearCellSize, const FP meanParticleCountPerCell, const FP srdAngle, const FP timestep)
Returns the collisional contributions to the dynamic shear viscosity in SRD.
Definition: AnalyticQuantities.cpp:52
OpenMPCD::AnalyticQuantities::SRDKinematicShearViscosity
static FP SRDKinematicShearViscosity(const FP kT, const FP m, const FP linearCellSize, const FP meanParticleCountPerCell, const FP srdAngle, const FP timestep)
Returns the kinematic shear viscosity in SRD.
Definition: AnalyticQuantities.cpp:64
OpenMPCD::AnalyticQuantities::hydrodynamicRadius
static FP hydrodynamicRadius(const FP kT, const FP dynamicStressViscosity, const FP selfDiffusionCoefficient)
Returns the hydrodynamic radius (Stokes-Einstein radius) of a spherical particle.
Definition: AnalyticQuantities.cpp:99
OpenMPCD::AnalyticQuantities::kineticContributionsToSRDKinematicShearViscosity
static FP kineticContributionsToSRDKinematicShearViscosity(const FP kT, const FP m, const FP meanParticleCountPerCell, const FP srdAngle, const FP timestep)
Returns the kinetic contributions to the kinematic shear viscosity in SRD.
Definition: AnalyticQuantities.cpp:15
OpenMPCD::FP
double FP
Default floating point type.
Definition: Types.hpp:13
OpenMPCD::AnalyticQuantities::approximateSelfDiffusionCoefficient
static FP approximateSelfDiffusionCoefficient(const unsigned int dimensions, const FP kT, const FP m, const FP meanParticleCountPerCell, const FP srdAngle, const FP timestep)
Returns an approximation for the self-diffusion coefficient $D$.
Definition: AnalyticQuantities.cpp:88
Types.hpp
OpenMPCD::AnalyticQuantities::SRDDynamicShearViscosity
static FP SRDDynamicShearViscosity(const FP kT, const FP m, const FP linearCellSize, const FP meanParticleCountPerCell, const FP srdAngle, const FP timestep)
Returns the dynamic shear viscosity in SRD.
Definition: AnalyticQuantities.cpp:76
OpenMPCD::AnalyticQuantities::meanFreePath
static FP meanFreePath(const FP kT, const FP m, const FP timestep)
Returns the analytical value for the mean free path for a point particle.
Definition: AnalyticQuantities.cpp:10
OpenMPCD::AnalyticQuantities::kineticContributionsToSRDDynamicShearViscosity
static FP kineticContributionsToSRDDynamicShearViscosity(const FP kT, const FP m, const FP linearCellSize, const FP meanParticleCountPerCell, const FP srdAngle, const FP timestep)
Returns the kinetic contributions to the dynamic shear viscosity in SRD.
Definition: AnalyticQuantities.cpp:28