3 #include <boost/math/constants/constants.hpp>
6 using namespace OpenMPCD;
8 static const FP pi = boost::math::constants::pi<FP>();
12 return timestep*
sqrt(kT/m);
16 const FP kT,
const FP m,
const FP meanParticleCountPerCell,
const FP srdAngle,
const FP timestep)
18 const FP M = meanParticleCountPerCell;
20 const FP factor1 = kT*timestep/(2*m);
21 const FP denominator1 = M - 1 + exp(-M);
22 const FP denominator2 = 2 -
cos(srdAngle) -
cos(2*srdAngle);
23 const FP factor2 = 5*M / (denominator1 * denominator2) - 1;
25 return factor1 * factor2;
29 const FP kT,
const FP m,
const FP linearCellSize,
const FP meanParticleCountPerCell,
30 const FP srdAngle,
const FP timestep)
32 const FP cellVolume =
pow(linearCellSize, 3);
33 const FP particleDensity = meanParticleCountPerCell / cellVolume;
34 const FP massDensity = particleDensity * m;
37 kT, m, meanParticleCountPerCell, srdAngle, timestep);
41 const FP linearCellSize,
const FP meanParticleCountPerCell,
const FP srdAngle,
const FP timestep)
43 const FP M = meanParticleCountPerCell;
45 const FP factor1 = linearCellSize * linearCellSize / (6*3*timestep);
46 const FP factor2 = (M - 1 + exp(-M)) / M;
47 const FP factor3 = 1 -
cos(srdAngle);
49 return factor1 * factor2 * factor3;
53 const FP m,
const FP linearCellSize,
const FP meanParticleCountPerCell,
const FP srdAngle,
56 const FP cellVolume =
pow(linearCellSize, 3);
57 const FP particleDensity = meanParticleCountPerCell / cellVolume;
58 const FP massDensity = particleDensity * m;
61 linearCellSize, meanParticleCountPerCell, srdAngle, timestep);
65 const FP kT,
const FP m,
const FP linearCellSize,
const FP meanParticleCountPerCell,
66 const FP srdAngle,
const FP timestep)
69 kT, m, meanParticleCountPerCell, srdAngle, timestep);
71 linearCellSize, meanParticleCountPerCell, srdAngle, timestep);
73 return nu_kin + nu_col;
77 const FP kT,
const FP m,
const FP linearCellSize,
const FP meanParticleCountPerCell,
78 const FP srdAngle,
const FP timestep)
81 kT, m, linearCellSize, meanParticleCountPerCell, srdAngle, timestep);
83 m, linearCellSize, meanParticleCountPerCell, srdAngle, timestep);
85 return mu_kin + mu_col;
89 const FP meanParticleCountPerCell,
const FP srdAngle,
const FP timestep)
91 const FP M = meanParticleCountPerCell;
93 const FP factor1 = kT * timestep / (2.0 * m);
94 const FP term2 = dimensions * M / ( (1 -
cos(srdAngle)) * (M - 1 + exp(-M)));
96 return factor1 * (term2 - 1);
100 const FP selfDiffusionCoefficient)
102 return kT/(6 *
pi * dynamicStressViscosity * selfDiffusionCoefficient);