“Exploring Physics with C++”, verzija 0.5 – i konačno FIZIKA! 😎❤️

“Exploring Physics with C++”, verzija 0.5 – i konačno FIZIKA! 😎❤️

Bio je to pravi “Death March” zadnja četiri tjedna 🙄, ali dva mjeseca nakon verzije 0.4, evo konačno i nove verzije moje knjige “Exploring Physics with C++” (link na Github repo s PDF-ovima i kôdom).

U prve tri verzije su razrađene osnove, u verziji 0.4 su (koliko-toliko) dovršeni vizualizatori da se rezultati mogu prikazati, a u novih šezdesetak stranica u ovoj verziji (čime se ukupni broj stranica popeo na 240) u fokus je konačno došla fizika ❤️❤️❤️.

No, da bi sve bilo po “pravilima službe”, trebalo je najprije doraditi i reorganizirati MML (Minimal Math Library) … i sad mi se čini (po N-ti put 🙂 da bi to moglo biti blizu završnoj verziji.

A kako je u fokus došla fizika, počeli su se množiti fajlovi s implementacijama različitih sistema i njihovih simulacija, počelo je sve ličiti na kaos, i jedino logično rješenje je bilo organizirati sve to u … you guessed it right … MPL – Minimal Physics Library 😎😂.

Koji već sada dosta lipo izgleda (iako su neki fajlovi još uvijek samo “empty shells”).

CollisionSimulator (u 2D i 3D) verziji i GravitySimulatory su bili fokus … i uz potporu dodatno dorađenih vizualizatora, bilo je tu zanimljivih rezultata.

Prvo, miješanje dva molekula dva “plina”, inicijalno separiranih unutar kontejnera, za različite odnose brzina.

Druga wow simulacija je prikaz evolucije shockwavea kad se u kontejneru s 10.000 relativno mirnih molekula/kuglica u središtu oslobodi 100 energetičnih molekula (s brzinama 100 puta većima od ovih statičnih).

Proveo sam i verifikaciju plinskih zakona (za idealni plin), i iako je na razini 10.000 kuglica u kontejneru, na prikazu tlaka (izračunatog na osnovu sudara kuglica sa stijenkama) jasno vidljivo koliko je to stohastički proces, kad se izračuna average kroz veliki broj koraka simulacije … slaganje s jednadnžnbom p V = n R T je perfektno.

P je proporcionalan s N

A obrnuto proporcionalan s V (pri čemu je V u stvari površina u 2D simulaciji).

3D simulacija iste stvari.

A definiran je i konfigurator za kreiranje 3D simulacije zraka (uključene su molekule dušika, kisika, argona i CO2) u kocki stranice 100 nanometara, s otprilike 29.000 molekula unutar tog volumena.

Tek trebam vidjeti kakve ću sve simulacije s time odvrtjeti.

Pored CollisionSimulatora u 4. poglavlju knjige, dosta veliki napredak je napravljen u 8. i 9. poglavlju, vezanima uz simulaciju gravitacije.

U osmom poglavlju fokus je na dva tijela, i iako je to sve poznato i analitički izračunljivo … “trust, but verify” 😂.

Eliptične putanje.

A evo i malo hiperboličnih … i granično eliptičnih.

N-body gravity simulator je ona “prava stvar”, no nažalost još nisam stigao dovršiti simulaciju putanje Voyagera kroz Sunčev sistem, a ni koliziju star clustera.

No, zato ima lipih slika simulacije (samo) pet tijela, od kojih je ovo crno centralno puno masivnije od ostalih četiri (i miče se puno sporije pa se treba malo potruditi za uočiti njegovu putanju), ali kad se malo podesi POV … order appears.

I za kraj, knjiga – draft verzija 0.5.

(kako mi se čini, WordPress ima problema s činjenicom da je PDF koji treba prikazati velik 39 Mb, pa evo i direktni link gdje možete downloadati knjigu).

Puno je još posla do dovršetka knjige, i nisam nažalost još ni blizu napola, ali jesam negdje napola s onime što će biti moj “originalni doprinos” … a što je i razlog zašto je bar 50% knjige trenutno prezentacija C++ kôda onoga što sam odsimulirao.

Jer, iako se i u fizikalnim uvodima nadam dati malo svog “osobnog štiha”, jasno je da će to biti sumarizacija materijala koji već postoji u N knjiga, a isto vrijedi i za “numerical math” dio … i u idućim verzijama se moram i tome malo (puno) više posvetiti.

Jedini je problem što će me odvući puno zanimljivije stvari u simulacijskoj todo listi – simuliranje distribucije električnog naboja, kako izgleda sfera dok prolazi pokraj observera relativističkom brzinom (i dalje je sfera!!!), vizualizacija Lienard-Wiechertovih potencijala, numerička simulacija twin paradoxa … aaaaaaaaa 😎.

2 misli o ““Exploring Physics with C++”, verzija 0.5 – i konačno FIZIKA! 😎❤️

Komentiraj