Gemdat simulation metrics
This module contains classes for calculating metrics and other properties from trajectories.
ArrheniusFit(*, temperatures, diffusivities, diffusivities_std=None, particle_density=None, diffusivity_unit='m^2 s^-1')
Arrhenius fit result for diffusion coefficients.
The model is: D(T) = D0 * exp(-Ea / (k_B * T))
where the fit is performed in log-space: ln D = ln D0 + m * (1/T)
with: m = -Ea / k_B
Notes
If diffusivities_std is provided, the fit is weighted using an
approximate log-uncertainty:
sigma_lnD ≈ sigma_D / D
Source code in src/gemdat/metrics.py
358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 | |
activation_energy()
Return activation energy (eV) as ufloat(mean, std).
Source code in src/gemdat/metrics.py
491 492 493 494 495 | |
extrapolate_conductivity(temperature, *, z_ion)
Extrapolate tracer conductivity at given temperature (K), with uncertainty.
Source code in src/gemdat/metrics.py
524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 | |
extrapolate_diffusivity(temperature)
Extrapolate diffusivity at given temperature (K), with uncertainty.
Source code in src/gemdat/metrics.py
506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 | |
from_trajectories(trajectories, *, diffusing_specie, dimensions=3, n_parts=10, equal_parts=True, diffusivity_unit='m^2 s^-1')
classmethod
Fit Arrhenius parameters from trajectories at different temperatures.
Parameters:
-
trajectories–List of trajectories, one per temperature. Each trajectory must have
trajectory.metadata['temperature']in K. -
diffusing_specie(str) –Element symbol of diffusing species (e.g. "Li").
-
dimensions(int, default:3) –Number of diffusion dimensions used for tracer diffusivity.
-
n_parts(int, default:10) –Number of parts to split each diffusing trajectory into for estimating mean and standard deviation.
-
equal_parts(bool, default:True) –If True, split into equal-length parts.
-
diffusivity_unit(str, default:'m^2 s^-1') –Unit label stored on the fit output.
Returns:
-
fit–ArrheniusFit instance.
Source code in src/gemdat/metrics.py
394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 | |
plot_arrhenius(*, module, **kwargs)
See gemdat.plots.arrhenius for more info.
Source code in src/gemdat/metrics.py
543 544 545 546 | |
prefactor()
Return prefactor D0 as ufloat(mean, std) in diffusivity_unit.
Source code in src/gemdat/metrics.py
497 498 499 500 501 502 503 504 | |
TrajectoryMetrics(trajectory)
Class for calculating different metrics and properties from a molecular dynamics simulation.
Parameters:
-
trajectory(Trajectory) –Input trajectory
Source code in src/gemdat/metrics.py
25 26 27 28 29 30 31 32 33 | |
amplitudes()
Calculate vibration amplitudes.
Returns:
-
amplitudes(ndarray) –Output array of vibration amplitudes
Source code in src/gemdat/metrics.py
209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 | |
attempt_frequency()
Return attempt frequency and standard deviation in Hz.
Returns:
-
attempt_freq(FloatWithUnit) –Attempt frequency
-
attempt_freq_std(FloatWithUnit) –Attempt frequency standard deviation
Source code in src/gemdat/metrics.py
167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 | |
haven_ratio(*, dimensions=3)
Calculate Haven's ratio.
Parameters:
-
dimensions(int, default:3) –Number of diffusion dimensions
Returns:
-
haven_ratio(float) –
Source code in src/gemdat/metrics.py
123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 | |
mol_per_liter()
Calculate density.
Returns:
-
particle_density(FloatWithUnit) –Particle density as \(mol/l\).
Source code in src/gemdat/metrics.py
64 65 66 67 68 69 70 71 72 73 74 | |
particle_density()
Calculate number of particles per unit of volume from trajectory.
Returns:
-
particle_density(FloatWithUnit) –Number of particles in \(m^{-3}\)
Source code in src/gemdat/metrics.py
49 50 51 52 53 54 55 56 57 58 59 60 61 62 | |
speed()
Calculate speed.
Corresponds to change in distance from the base position.
Returns:
-
speed(ndarray) –Output array with speeds
Source code in src/gemdat/metrics.py
35 36 37 38 39 40 41 42 43 44 45 46 47 | |
tracer_conductivity(*, z_ion, dimensions=3)
Return tracer conductivity as S/m.
Defined as: elementary_charge^2 * charge_ion^2 * diffusivity * particle_density / (k_B * T)
Parameters:
Returns:
-
tracer_conductivity(FloatWithUnit) –Tracer conductivity in \(S/m\)
Source code in src/gemdat/metrics.py
140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 | |
tracer_diffusivity(*, dimensions=3)
Calculate tracer diffusivity.
Defined as: MSD / (2dimensionstime)
Parameters:
-
dimensions(int, default:3) –Number of diffusion dimensions
Returns:
-
tracer_diffusivity(FloatWithUnit) –Tracer diffusivity in \(m^2/s\)
Source code in src/gemdat/metrics.py
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | |
tracer_diffusivity_center_of_mass(*, dimensions=3)
Calculate the tracer diffusivity of the center of mass.
Parameters:
-
dimensions(int, default:3) –Number of diffusion dimensions
Returns:
-
tracer_diffusivity(FloatWithUnit) –Tracer diffusivity in \(m^2/s\)
Source code in src/gemdat/metrics.py
99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 | |
vibration_amplitude()
Calculate vibration amplitude.
Returns:
-
vibration_amp(FloatWithUnit) –Vibration amplitude in \(Å\)
Source code in src/gemdat/metrics.py
190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 | |
TrajectoryMetricsStd(trajectories)
Class for calculating different metrics and properties from a molecular dynamics simulation.
Calculates the mean and standard deviation for a given list of trajectories
Parameters:
-
trajectories(list[Trajectory]) –Input trajectories
Source code in src/gemdat/metrics.py
242 243 244 245 246 247 248 249 250 | |
amplitudes()
Calculate vibration amplitudes.
Returns:
-
amplitudes_mean, amplitudes_std : tuple[np.ndarray, np.ndarray]–Output array of vibration amplitudes, mean and standard deviation
Source code in src/gemdat/metrics.py
326 327 328 329 330 331 332 333 334 335 | |
speed()
Calculate mean speed and standard deviations.
Corresponds to change in distance from the base position.
Returns:
-
speed_mean, speed_std : tuple[np.ndarray, np.ndarray]–Output arrays with speeds
Source code in src/gemdat/metrics.py
252 253 254 255 256 257 258 259 260 261 262 263 | |
tracer_conductivity(*, z_ion, dimensions)
Return tracer conductivity as S/m.
Defined as: elementary_charge^2 * charge_ion^2 * diffusivity * particle_density / (k_B * T)
Parameters:
Returns:
-
tracer_conductivities(ufloat) –Tracer conductivities in \(S/m\), mean and standard deviation
Source code in src/gemdat/metrics.py
287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 | |
tracer_diffusivity(*, dimensions)
Calculate tracer diffusivity.
Defined as: MSD / (2dimensionstime)
Parameters:
-
dimensions(int) –Number of diffusion dimensions
Returns:
-
tracer_diffusivity(ufloat) –Tracer diffusivity in \(m^2/s\), mean and standard deviation
Source code in src/gemdat/metrics.py
265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 | |
vibration_amplitude()
Calculate vibration amplitude.
Returns:
-
vibration_amp_mean, vibration_amp_std : tuple[FloatWithUnit, FloatWithUnit]–Vibration amplitude in \(Å\), mean and standard deviation
Source code in src/gemdat/metrics.py
313 314 315 316 317 318 319 320 321 322 323 324 | |