Файл:Diffusion microscopic picture.gif
Diffusion_microscopic_picture.gif (480 × 480 пкс, размер файла: 4,58 Мб, MIME-тип: image/gif, закольцованный, 300 фреймов, 15 с)
Примечание: По техническим причинам миниатюры подобных GIF-изображений высокого разрешения не анимируются.
Этот файл из на Викискладе и может использоваться в других проектах. Информация с его страницы описания приведена ниже.
Краткое описание
ОписаниеDiffusion microscopic picture.gif |
English: At a microscopic level, diffusion is nothing else than a lot of small things bouncing against each other.
The process is completely deterministic, but at a macroscopic level pretending it is random makes the calculations much easier. |
Дата | |
Источник | https://twitter.com/j_bertolotti/status/1517437234609373184 |
Автор | Jacopo Bertolotti |
Права (Повторное использование этого файла) |
https://twitter.com/j_bertolotti/status/1030470604418428929 |
Mathematica 13.0 code
(**Velocity Verlet**)
Clear[evo, pos, posold, posoldold, accelerations, oldaccelerations, velocities, halfvelocities, tableForces];
L = 10.25; (*(Half) Size of the box*)
\[Sigma] = 0.55; (*particle radius*) \[Sigma]plot = 0.55 \[Sigma];(*particle radius for graphing*)
dt = 0.005;
LJforce[p1_, p2_] := 4*2 (12 \[Sigma]^12/Max[Norm[p1 - p2], \[Sigma]]^13 - 6 \[Sigma]^6/Max[Norm[p1 - p2], \[Sigma]]^7) Normalize[p1 - p2];
pos1 = Flatten[ Table[N[{i, j} + RandomReal[{-L/30, L/20}, {2}]], {i, -L + \[Sigma]plot, 0, L/6}, {j, -L + \[Sigma]plot, L, L/6}], 1];
pos2 = Flatten[ Table[N[{i, j} + RandomReal[{-L/20, L/20}, {2}]], {i, 0, L - \[Sigma]plot, L/6}, {j, -L + \[Sigma]plot, L, L/6}], 1];
pos = Join[pos1, pos2];
nparticles = Dimensions[pos][[1]]
m = Table[1, {nparticles}];
initialvelocities = RandomReal[{-10, 10}, {nparticles, 2}];
tableForces = Chop@Table[ LJforce[pos[[i]], pos[[j]]], {i, 1, nparticles}, {j, 1, nparticles}];
accelerations = Table[Sum[m[[i]]*tableForces[[i, j]], {j, 1, nparticles}], {i, 1, nparticles}];
posold = pos;
oldaccelerations = accelerations;
pos = posold + initialvelocities*dt + accelerations/2 dt^2;
velocities = initialvelocities + (accelerations + oldaccelerations)/2 dt;
nsteps = 300;
evo1 = Reap[Do[
tableForces = Chop@Table[ LJforce[pos[[i]], pos[[j]]], {i, 1, nparticles}, {j, 1, nparticles}];
oldaccelerations = accelerations;
posold = pos;
halfvelocities = velocities + accelerations/2 dt;
For[j = 1, j <= nparticles, j++,
If[pos[[j, 2]] >= L, halfvelocities[[j, 2]] = -Abs[halfvelocities[[j, 2]] ] ];
If[pos[[j, 2]] <= -L, halfvelocities[[j, 2]] = Abs[halfvelocities[[j, 2]] ] ];
If[pos[[j, 1]] >= L, halfvelocities[[j, 1]] = -Abs[halfvelocities[[j, 1]] ] ];
If[pos[[j, 1]] <= -L, halfvelocities[[j, 1]] = Abs[halfvelocities[[j, 1]] ] ];
];
pos = posold + halfvelocities dt;
accelerations = Chop@Table[ Sum[m[[i]]*tableForces[[i, j]], {j, 1, nparticles}], {i, 1, nparticles}];
velocities = halfvelocities + (accelerations + oldaccelerations)/2 dt;
Sow[pos];
, nsteps];][[2, 1]];
frames1 = Table[Graphics[{
Disk[#, \[Sigma]plot] & /@ evo1[[j, 1 ;; nparticles/2]]
,
Line[{{-L - \[Sigma]plot, -L - \[Sigma]plot}, {-L - \[Sigma]plot, L + \[Sigma]plot}, {L + \[Sigma]plot, L + \[Sigma]plot}, {L + \[Sigma]plot, -L - \[Sigma]plot}, {-L - \[Sigma]plot, -L - \[Sigma]plot}}]
,
Orange,
Disk[#, \[Sigma]plot] & /@ evo1[[j, nparticles/2 + 1 ;; -1]]
}, PlotRange -> {{-L - 1, L + 1}, {-L - 1, L + 1}}]
, {j, 1, nsteps}];
ListAnimate[frames1]
Лицензирование
![]() ![]() |
Этот файл доступен на условиях Creative Commons CC0 1.0 Универсальной передачи в общественное достояние (Universal Public Domain Dedication). |
Лица, связанные с работой над этим произведением, решили передать данное произведение в общественное достояние, отказавшись от всех прав на произведение по всему миру в рамках закона об авторских правах (а также связанных и смежных прав), в той степени, которую допускает закон. Вы можете копировать, изменять, распространять и исполнять данное произведение в любых целях, в том числе в коммерческих, без получения на это разрешения автора.
http://creativecommons.org/publicdomain/zero/1.0/deed.enCC0Creative Commons Zero, Public Domain Dedicationfalsefalse |
Краткие подписи
Элементы, изображённые на этом файле
изображённый объект
22 апреля 2022
image/gif
История файла
Нажмите на дату/время, чтобы увидеть версию файла от того времени.
Дата/время | Миниатюра | Размеры | Участник | Примечание | |
---|---|---|---|---|---|
текущий | 08:49, 25 апреля 2022 | ![]() | 480 × 480 (4,58 Мб) | wikimediacommons>Berto | Uploaded own work with UploadWizard |
Использование файла
Следующая страница использует этот файл:
Метаданные
Файл содержит дополнительные данные, обычно добавляемые цифровыми камерами или сканерами. Если файл после создания редактировался, то некоторые параметры могут не соответствовать текущему изображению.
Примечание GIF-файла | Created with the Wolfram Language : www.wolfram.com |
---|