PieterTack / polycap

Polycapillary X-ray raytracing
GNU General Public License v3.0
3 stars 3 forks source link

Prepare for release #48

Closed tschoonj closed 4 years ago

tschoonj commented 4 years ago

Travis-CI is down for maintenance.

tschoonj commented 4 years ago

Hey @PieterTack

Ik heb Github Actions support toegevoegd voor de macOS en Linux builds (Ubuntu Bionic), evenals de leak_calc opties toegevoegd aan de Python bindings. Als de leak_calc in Python wordt weggelaten, zal deze verondersteld worden true te zijn. In de Python unit tests heb ik ze op false gezet omdat ze anders te lang duren...

Ik zal later vandaag uw examples eens testen. Ik moet ook nog een SPEC file schrijven voor RPMs te genereren voor de RedHat/CentOS/Fedora distros.

PieterTack commented 4 years ago

Looks good, ook de manier van implementatie van de leak_calc in python.

Zou idd standaard voorlopig af zetten. We kunnen dan nog zien mits linked lists en al dan niet opslaan coordinaten enzo of we veel tijd besparen, en het dus ook vlotter zou draaien in python. Ben momenteel mijn python skills aan het bijschaven, dus ook onrechtstreeks nuttig voor dit project ;)

tschoonj commented 4 years ago

Looks good, ook de manier van implementatie van de leak_calc in python.

Zou idd standaard voorlopig af zetten.

Ok zal dat veranderen dan.

We kunnen dan nog zien mits linked lists en al dan niet opslaan coordinaten enzo of we veel tijd besparen, en het dus ook vlotter zou draaien in python.

Ik zal eens wat zien te profilen, en zien waar de bottlenecks echt liggen.

Ben momenteel mijn python skills aan het bijschaven, dus ook onrechtstreeks nuttig voor dit project ;)

Altijd een goed idee!

PieterTack commented 4 years ago

Sounds great :) Laat maar weten als ik bepaalde PRs moet goedkeuren ofzo :)

tschoonj commented 4 years ago

Heb wat zitten profilen. Met leak_check=True spendeert de code ongeveer 72 % van de tijd in polycap_capil_trace_wall, wat waarschijnlijk wel logisch is.

De call stack is wel vreselijk ingewikkeld door de recursie met polycap_capil_reflect en polycap_capil_trace die elkaar zitten te callen 😄

Reallocs valt eigenlijk heel goed mee, en heeft geen vertragend effect dat ik kan zien.

tschoonj commented 4 years ago

Ik heb gisteren dit hier trouwens eens gekregen terwijl ik een test liet lopen:

10% Complete    35 reflections  Last reflection at z=8.992009, d_travel=8.993950
20% Complete    26 reflections  Last reflection at z=8.986226, d_travel=8.986454
30% Complete    35 reflections  Last reflection at z=8.993330, d_travel=8.993725
40% Complete    30 reflections  Last reflection at z=8.965253, d_travel=8.965375
50% Complete    41 reflections  Last reflection at z=8.973306, d_travel=8.974294
60% Complete    38 reflections  Last reflection at z=8.983007, d_travel=8.983887
70% Complete    49 reflections  Last reflection at z=8.988837, d_travel=8.989742
80% Complete    43 reflections  Last reflection at z=8.992217, d_travel=8.994215
Segment end: photon not in polycap!!; i: 30, i+1: 31, nmax: 999
90% Complete    38 reflections  Last reflection at z=8.966630, d_travel=8.967098
Average number of reflections: 38.687400, Simulated photons: 14363
Open area Calculated: 0.574548, Simulated: 0.696233
iexit: 10000, no enter: 4363, no trans: 0

Die segment end warning: is dat normaal?

tschoonj commented 4 years ago

@PieterTack Ik heb de SI examples gecorrigeerd waar nodig en ze toegevoegd in een commit hier.

tschoonj commented 4 years ago

Ik heb gisteren dit hier trouwens eens gekregen terwijl ik een test liet lopen:

10% Complete  35 reflections  Last reflection at z=8.992009, d_travel=8.993950
20% Complete  26 reflections  Last reflection at z=8.986226, d_travel=8.986454
30% Complete  35 reflections  Last reflection at z=8.993330, d_travel=8.993725
40% Complete  30 reflections  Last reflection at z=8.965253, d_travel=8.965375
50% Complete  41 reflections  Last reflection at z=8.973306, d_travel=8.974294
60% Complete  38 reflections  Last reflection at z=8.983007, d_travel=8.983887
70% Complete  49 reflections  Last reflection at z=8.988837, d_travel=8.989742
80% Complete  43 reflections  Last reflection at z=8.992217, d_travel=8.994215
Segment end: photon not in polycap!!; i: 30, i+1: 31, nmax: 999
90% Complete  38 reflections  Last reflection at z=8.966630, d_travel=8.967098
Average number of reflections: 38.687400, Simulated photons: 14363
Open area Calculated: 0.574548, Simulated: 0.696233
iexit: 10000, no enter: 4363, no trans: 0

Die segment end warning: is dat normaal?

Hey Pieter, enige commentaar hierover?

PieterTack commented 4 years ago

oeps, sorry, had je vorige bericht gezien maar vergeten erop te reageren.

Die waarschuwing zou inderdaad niet mogen voorkomen. Die geeft een foton aan dat volgens zijn coordinaten aan het einde van het optiek is geraakt (dus succesvol transmitted zogezegd), maar dat niet in het optiek vervat zit. Houdt dus geen steek. Er zijn nog een paar gevalletjes waar die foutboodschap voorkwam (heb er al veel van gefixed van vroegere versies ;) ) De fout lijkt voornamelijk op te treden wanneer een foton heel veel begint te botsen in 1 segment, maar heb nog geen logische oplossing gevonden. Tot dusver smeet ik die fotonen gewoon weg. Hier heb je bijvoorbeeld 1 foton die toch nog stiekem doet op de 30k die je simuleerde...

In het kort: de waarschuwing is dus niet normaal, maar heb er nog geen oplossing voor gevonden. Zal ooit wel eens komen, maar het is dergelijk probleem dat me vorige keer ook een half jaar had gekost om min of meer uit te pluizen en dan te corrigeren :P

PieterTack commented 4 years ago

Hoi Tom, alles nog goed? Zijn er nog zaken die hiervoor moeten gedaan worden, en die ik eventueel kan doen?

tschoonj commented 4 years ago

Nope, alles gedaan hier denk ik.

Ben wel beetje ongerust over die foutmelding...

PieterTack commented 4 years ago

Ja, die foutmelding is zeker niet ideaal. Maar komt slechts heel sporadisch voor, op 1 vd vele duizenden fotonen -> zal de statistiek niet echt beinvloeden. Kheb ergens ook het bruingeel vermoeden dat dit misschien vanzelf opgelost wordt mochten we het polycap_profile beschrijven met veel meer segmenten (momenteel 999). De fout komt immers enkel voor als er ergens een foute interactie is geregistreerd, typisch met een onmogelijke interactiehoek (alfa groter dan 90 graden). Is iets dat ik nog eens moest testen.

PieterTack commented 4 years ago

Hoi Tom, wat is de volgende stap in het grote polycap master plan? ;)

tschoonj commented 4 years ago

Hey Pieter,

Als alles goed is voor u, kunnen we een eerste release maken: 1.0

Wat is de status van het artikel? Hebt ge iedereen zijn commentaren gekregen? Klaar voor submission?

PieterTack commented 4 years ago

Ik ontbreek nog Laszlo's revisie. Donderdag skype ik eens met hem, ging er dan naar vragen. Wacht je liever daarop voor de release? (is voor mij goed hoor)

tschoonj commented 4 years ago

Ok cool, wil jij de versie in configure.ac bumpen naar 1.0 of zal ik het doen?

tschoonj commented 4 years ago

Btw, er zouden ook nog versie macros moeten toegevoegd worden aan polycap.h.

Voorbeeld:

https://github.com/tschoonj/xmimsim/blob/03e2788781026dd40f9afda7dd4f29d4bf7a7fa3/include/xmi_msim.h#L29-L30

Er zou dan ook een kleine test moeten toegevoegd worden om zeker te zijn dat de versie in configure.ac en deze macros in sync zijn zoals bijvoorbeeld in: https://github.com/tschoonj/xmimsim/blob/master/tests/test-version.c (maar gebruik vasprintf ipv glib's g_strdup_printf!)