Nove schema

Obsah

Protoze se stare schema ukazalo jako malo presne, presli jsme k vyjadreni krivosti pomoci parcialnich derivaci a jejich nasledne diskretizaci pomoci centralnich diferenci. Problem pro nulovy gradient byl vyresen specialnim osetrenim techto bodu a mirnym vylepsenim stareho schematu (pouzivaneho dosud). A mame tu prvni pozitivni vysledek - simulace na kruznici o polomeru 0.2, cas 'anihilace' 0.2. Provedeno jednoduchou verzi na jednom procesu, e^2 = 1e-10, dt = 1e-6, dx = 0.01. Na obrazku je vyznacen vyvoj v casovych hladinach 0.0000, 0.0045, 0.0090, 0.0135 a 0.0180 (cervene). Neni to moc videt, ale i na posledni hladine se velice hezky shoduje (zelena). No konecne... :-)

Prvni pozitivni vysledek

 
Anizotropni verze:
Zeta = 0.120, Fold = 3, F= 0.0, Alpha = 1.0


A paralelni verze na jednom procesu porovnana s predchozim a porovnani vypotu na 1 a 16 procesech:

 0 a 1 process
1 a 16 procesu



Obrazek:

1) Cervena je original predchozi obrazek, zelena je "paralelni" verze programu na jednom procesu napocitana na dvojnasobnem casovem kroku. Na pozdejsich casovych hladinach lze pozorovat odchylka... :-( Na pocatecnich hladinach se to vyborne kryje.
2) Prekryvy jsou uchazejici, viditelne odchylky (resp. usecky mezi nekterymi castmi) vznikly nedodelanou interpolaci vzdalencyh bodu.

Tak chyba u obrazku jedna (odchyleni u spodniho rohu) byla nastesti zpusobena prilis silnou anizotropii a na nizsich hodntach se to kryje bezvadne (aspon opticky).

Zmenene schema pouziva k vypoctu vice bodu, a tudiz se musela zmenit i synchronizace. Nyni potrebujeme body nejen od 'kolmych' sousedu, ale v rozich i data s procesu po uhlopricce. Proto jsem zakomponoval do synchronizaci mezi procesy tyto body jakoby solo - "rohy" mezi procesy jsem poslal vzdy pozdej samostatne (par bytu). Byla to opravdu velka brzda a podarilo se mi vymyslet zpusob prekryvu, ze se to nemusi delat! No neni to super? :-)