• Aucun résultat trouvé

avec ζ un nombre al´eatoire entre z´ero et un et E l’´energie du photon. Une fois cette longueur calcul´ee, le photon est transport´e sur la distance l et interagit avec le milieu selon les sections efficaces du mat´eriau dans lequel il se trouve. Advenant une interaction fictive introduite par l’utilisation de l’algorithme de Woodcock, un nouveau parcours est calcul´e dans la mˆeme direction `a l’aide de4.3 et le processus est r´ep´et´e. Si le photon interagit par effet Compton, photo´electrique ou diffusion Rayleigh, la direction et l’´energie du photon sont modifi´ees. La nouvelle ´energie E0 est inf´erieure `a l’´energie initiale s’il y a effet Compton ou photo´electrique alors que pour la diffusion Rayleigh, elle demeure la mˆeme. Apr`es interaction, comme les ´

electrons ne sont pas simul´es, la diff´erence d’´energie E − E0 est emmagasin´ee dans le voxel o`u le photon se trouve et l’´equation 4.3est `a nouveau utilis´ee.

Grille de voxels, surfaces param´etriques et m´ethode analogue

Ici aussi, la longueur de parcours du photon est calcul´ee avec l’´equation 4.3et est d´efinie par l. Cependant, l’aspect `a consid´erer est la valeur du coefficient d’att´enuation lin´eaire pr´esent

dans les surfaces quadratiques. En effet, s’il est largement sup´erieur au coefficient d’att´enuation lin´eaire moyen trouv´e dans la grille de voxels, il doit ˆetre laiss´e de cˆot´e en raison des limitations de l’algorithme de Woodcock tel que mentionn´ees dans la sous-section 2.2.3. C’est pourquoi en g´en´eral deux m´ethodes sont utilis´ees pour transporter le photon lors d’un m´elange de g´eom´etries. Dans la grille vox´elis´ee, l’algorithme de Woodcock est toujours employ´e et le photon est transport´e jusqu’`a une surface param´etrique. Au moment o`u le photon rencontre la surface, la distance `a parcourir restante, l0, est pond´er´ee selon l’att´enuation des surfaces param´etriques. Cette technique se base sur la conservation de la probabilit´e d’absence d’interaction pour un nombre de parcours moyens donn´es [55]. Cette probabilit´e s’´ecrit math´ematiquement comme : e−l0µ= e−yµ0 (4.4)

avec µ le coefficient d’att´enuation lin´eaire dans la g´eom´etrie vox´elis´ee et µ0 le coefficient d’att´enuation lin´eaire du quadrique. La quantit´e y repr´esente la longueur qui serait parcourue par le photon si l0 ´etait calcul´ee `a partir du coefficient d’att´enuation lin´eaire de la surface param´etrique et se trouve `a partir de la relation4.4:

y = l0µ

µ0. (4.5)

Dans le cas o`u y < s, avec s la distance physique `a parcourir pour traverser la surface qua- dratique, le photon ne traversera pas compl`etement la surface et interagira `a l’int´erieur de celle-ci. Dans l’autre cas, le photon passe au-travers et c’est l’algorithme de Woodcock qui reprend le contrˆole du transport avec une longueur de parcours restante ´egale `a l0 − s. Si plusieurs surfaces quadratiques se trouvent sur le chemin du photon, l’´equation4.5est utilis´ee de fa¸con successive jusqu’`a ce que le photon s’arrˆete dans une des surfaces ou qu’il les traverse compl`etement. En ce qui concerne le d´epˆot d’´energie, une technique identique `a celle de la sous-section pr´ec´edente est utilis´ee car la m´ethode analogue est employ´ee.

Utilisation de l’estimateur de parcours lin´eaire

Tel que pr´esent´e `a la section 2.2.2, l’estimateur de parcours lin´eaire permet de diminuer le nombre de photons `a simuler pour obtenir des r´esultats comparables `a la m´ethode analogue. L’utilisation de cet estimateur n´ecessite cependant de connaˆıtre la distance parcourue dans chaque voxel. Pour y arriver, la distance totale `a parcourir selon l’algorithme de Woodcock est tout d’abord calcul´ee `a l’aide de l’´equation 4.3. Ensuite, si des surfaces param´etriques se trouvent sur le chemin du photon, l’´equation 4.5 est utilis´ee afin de tenir compte de l’att´enuation plus ou moins grande des surfaces quadratiques le long du parcours du pho- ton. Une fois que la distance `a parcourir pour le photon est bien d´efinie, la m´ethode d´ecrite par Amanatides et al. [56] permet de calculer la distance dans chaque voxel. Le point de d´epart consiste `a consid´erer la nature vectorielle du d´eplacement d’un photon. Si l’impulsion normalis´ee du photon est d´efinie par ~p et que ce dernier parcourt une longueur l, la position

finale du photon dans les trois directions x, y et z s’´ecrit

xf = xi+ px· l

yf = yi+ py· l (4.6)

zf = zi+ pz· l

avec (xi, yi, zi) et (xf, yf, zf) les positions initiales et finales. La distance pour atteindre le

prochain voxel, dans la direction x par exemple, est alors d´etermin´ee de la fa¸con suivante. La composante x de l’´equation4.7peut s’´ecrire comme

xf − xi = px· l. (4.7)

La quantit´e xf− xi est connue et correspond `a la longueur entre le photon et le prochain voxel

dans une direction parall`ele `a l’axe x. La valeur de xiest la position initiale et comme la grille de voxels est initialis´ee par l’utilisateur, la valeur de xf est d´etermin´ee selon le voxel dans lequel le

photon se trouve et la direction de son impulsion. `A partir de la valeur de xf− xi, une distance dxest calcul´ee `a l’aide de l’impulsion px du photon. Ce processus est r´ep´et´e pour les directions

y, z et il en r´esulte trois diff´erentes distances dx, dy et dz. La distance au prochain voxel est

alors la valeur minimale des trois distances trouv´ees, soit dvoxel= min (dx, dy, dz). Une fois la

distance au prochain voxel ´evalu´ee, la valeur du coefficient d’att´enuation massique en ´energie pour le mat´eriau du voxel et l’´energie du photon est lu dans la m´emoire du programme pour calculer la quantit´e d´efinie par l’´equation2.3, soit

LT E = Eγ·µen/ρ· dvoxel

V .

Le photon est ensuite avanc´e d’une longueur dvoxel et les mˆemes ´etapes sont r´ep´et´ees jusqu’`a

ce que le photon ait parcouru toute la distance d´etermin´ee au d´epart.

4.1.3 G´en´erateur de nombres al´eatoires et interactions physiques

L’adaptation `a la curieth´erapie bGPUMCD utilise le mˆeme g´en´erateur de nombres al´eatoires que GPUMCD [50]. Bien qu’un g´en´erateur soit d´ej`a disponible sur la plate-forme CUDA, il utilise beaucoup de ressources de la carte. Un aspect important de ce nouveau g´en´erateur de nombres al´eatoires est qu’il s’initialise ind´ependemment pour chaque processus l´eger lanc´e sur la carte. Comme chaque processsu l´eger correspond `a un photon simul´e, ceci signifie que le nombre de donn´ees n´ecessaires au g´en´erateur de nombres al´eatoires et emmagasin´e dans la m´emoire de la carte graphique est directement proportionnel au nombre de processus l´eger lanc´es. Il est donc important de ne pas trop simuler de photons simultan´ement sinon la m´emoire disponible sur la carte graphique risque d’ˆetre satur´ee rapidement. Le g´en´erateur d´evelopp´e est bas´e sur le travail de Marsaglia et al. [57] et r´eussit avec succ`es tous les tests sauf un de la classe TESTU01 [50, 25]. Sans entrer dans les d´etails, le test qui ´echoue concerne l’uniformit´e du g´en´erateur de nombre al´eatoire [58]. De plus, toujours selon [58], il est impensable de concevoir

un g´en´erateur de nombres al´eatoires qui satisfait tous les tests ´etant donn´e le nombre presque infini pouvant ˆetre con¸cu. `A l’oppos´e, rien ne garantit avec certitude qu’un g´en´erateur passant avec succ`es une batterie de tests sera totalement fiable pour toutes les situations rencontr´ees. Un mauvais g´en´erateur de nombres al´eatoires sera alors identifi´e lorsque ce dernier ´echoue des tests simples. Il est important que ce g´en´erateur soit ad´equat car il est l’´el´ement de base des simulations Monte Carlo.

Dans la version originale de l’algorithme bGPUMCD, deux interactions physiques ´etaient impl´ement´ees, soit l’effet Compton et l’effet photo´electrique. En ce qui concerne l’effet Comp- ton, l’´electron avec lequel interagit le photon est consid´er´e comme libre. La cin´ematique r´esultante du photon est bas´ee sur le travail de Everett et al. [59]. Pour l’effet photo´electrique, l’´energie du photon est compl`etement absorb´ee sauf lorsque l’interaction survient dans le ti- tane composant la capsule d’une source radioactive. Dans ce cas, il y a ´emission d’un photon de fluorescence avec une ´energie de 4.5 keV. Pour ce qui est des ´electrons lib´er´es lors des deux interactions, l’approximation de la dose par le Kerma collisionnel est utilis´ee telle que d´ecrite dans la section2.2.1, ce qui fait en sorte qu’ils ne sont pas simul´es.

4.1.4 Sections efficaces et coefficients d’absorption massique en ´energie

Les sections efficaces pour les diff´erentes interactions et les coefficients d’absorption massique en ´energie proviennent des donn´ees du NIST [28, 31]. Dans l’algorithme, ces donn´ees sont mises en m´emoire dans des textures en une dimension. Comme les photons ne sont plus simul´es lorsque leur ´energie descend sous 1 keV, les sections efficaces et les coefficients d’absorption massique en ´energie en m´emoire couvrent une gamme d’´energie allant de 1 keV jusqu’`a 20 MeV `

a chaque pas de 100 eV, ce qui fait 199990 valeurs pour chaque mat´eriau dans la simulations. Comme les donn´ees du NIST ne sont pas fournies `a chaque incr´ement de 100 eV, une interpo- lation lin´eaire est utilis´ee pour combler les valeurs manquantes. Dans la version originale du code, cette interpolation ne tient pas compte de l’augmentation soudaine de la section efficace de l’effet photo´electrique pour des photons dont l’´energie est autour de celle de l’´energie de liaison de la couche K de l’atome consid´er´e.

4.2

D´eroulement d’une simulation

Le d´eroulement de l’algorithme se fait en plusieurs ´etapes. Tout d’abord, un fichier contenant les donn´ees d’initialisation de la simulation est ´ecrit par l’utilisateur pour ˆetre lu ensuite par le programme. Ce fichier contient entres autres le type de source et de g´eom´etries utilis´ees, le nombre de photons lanc´es, l’emplacement des donn´ees des sections efficaces, etc. Par la suite, le programme est lanc´e et la premi`ere phase consiste `a la mise en place des param`etres et la mise en m´emoire des diff´erentes donn´ees n´ecessaires au d´eroulement du programme.

La seconce phase est celle o`u les photons sont simul´es. Un nombre pr´ed´etermin´e de photons

est envoy´e sur la carte graphique. Ce nombre ne doit pas ˆetre trop important en raison des limitations de la m´emoire sur la carte graphique. `A chaque photon est associ´e un thread sur la carte et tel que mentionn´e plus haut, le g´en´erateur de nombre al´eatoire est initialis´e ind´ependemment pour chaque thread. Ceci fait en sorte que plus le nombre de photons lanc´es est ´elev´e, plus le g´en´erateur de nombres al´eatoires n´ecessite de m´emoire sur la carte, ce qui peut r´esulter `a un d´epassement de l’espace disponible. La simulation des photons s’effectue `a l’aide d’une fonction de type __global__ et celle-ci est lanc´ee le nombre de fois n´ecessaire pour simuler le nombre total de photons choisi par l’utilisateur. Une fois dans cette fonction, plusieurs fonctions de type __device__ sont appel´ees pour transporter le photon, le faire interagir et pour emmagasiner l’´energie d´epos´ee. Les r´esultats sont directement ´ecrits sur la carte graphique pour ´eviter les transferts de m´emoire r´ep´etitifs entre la carte et l’ordinateur. La derni`ere phase est l’´ecriture des donn´ees et l’affichage des r´esultats. Lorsque tous les photons ont ´et´e simul´es, l’´energie d´epos´ee dans chaque voxel est copi´ee de la m´emoire de la carte graphique `a celle de l’ordinateur. Les donn´ees sont ensuite ´ecrites dans des fichiers textes et peuvent ˆetre visualis´ees ult´erieurement `a l’aide d’un programme comme Matlab.

4.3

R´esultats ant´erieurs

Bien que les premiers calculs aient ´et´e effectu´es dans des situations de radioth´erapie externe, seulement les r´esultats concernant la curieth´erapie sont pr´esent´es ici. L’algorithme a tout d’abord ´et´e utilis´e pour reproduire les param`etres du TG-43 pour deux sources de curieth´erapie `

a bas d´ebit de dose, la OncoSeed 6711 de la compagnie Amersham et l’Isostar IS-12501 de la compagnie Imagyn. La g´eom´etrie de la simulation est un cube d’eau de 30×30×30 cm3 telle que recommand´ee par le TG-43 et en utilisant la sym´etrie cylindrique de la source, les r´esultats sont ramen´es dans un plan en deux dimensions ρ − z de 257×257 voxels. L’emphase est mise ici sur les r´esultats pour les fonctions radiales et anisotropiques et sont compar´ees `a ceux de BrachyDose. Pour chaque simulation utilisant bGPUMCD, 100×106 photons sont simul´es. Sur la figure 4.1 [52], les r´esultats obtenus pour la fonction radiale `a l’aide des deux codes sont compar´es et une diff´erence d’au maximum 1.25% est observ´ee en excluant les zones de haut gradient de dose pr`es de r=0 cm. L’incertitude sur la simulation effectu´ee avec bGPUMCD est d’au plus 0.5% `a un rayon de 1 cm et de 1.2% `a r=10 cm. Sur la figure4.2 [52], les fonctions anisotropiques `a r=1 cm de bGPUMCD et BrachyDose sont illustr´ees en plus des r´esultats du TG-43. Pour cette fonction, la diff´erence est significativement plus grande, soit autour de 4%, et l’incertitude statistique est d’au plus 0.8%. L’´ecart plus important entre bGPUMCD et BrachyDose pour la fonction anisotropique montre que certaines lacunes sont possiblement pr´esentes dans le code original. En ce qui concerne les temps de calcul, 61 ms ´etaient n´ecessaire pour simuler 106photons avec la OncoSeed 6711 alors qu’il fallait 85 ms pour le mˆeme nombre de photons avec la Isostar IS-12501. L’augmentation de temps avec la source de la compagnie Imagyn est due `a la g´eom´etrie plus complexe de cette derni`ere. Les g´eom´etries des deux sources

(a) (b)

Figure 4.1: Comparaison de la fonction radiale obtenue avec bGPUMCD et BrachyDose pour la OncoSeed 6711 (a) et la IsoStar IS-12501 (b) [52].

(a) (b)

Figure 4.2: Comparaison des fonctions anisotropiques `a r=1 cm telles que calcul´ees par bGPUMCD, BrachyDose pour la OncoSeed 6711 (a) et la IsoStar IS-12501. Les valeurs du TG-43 sont aussi pr´esent´ees [52].

(a)

(b)

Figure 4.3: G´eom´etries des sources OncoSeed 6711 et Isostar IS-12501 [13]. Point `a am´eiorer Effet/Raison

Ajout de l’effet Rayleigh

Physique plus compl`ete Fluorescence plus compl`ete des ´el´ements

Modification de l’effet Compton Algorithme erron´e dans le code original Modification du trac´e de rayon R´eduction des erreurs num´eriques Modification des fichiers de sections efficaces Meilleure pr´ecision des valeurs

Table 4.1: Modifications importantes `a r´ealiser `a l’algorithme bGPUMCD

sont illustr´ees sur la figure 4.3[13].

L’algorithme bGPUMCD a aussi ´et´e test´e en situation clinique de curieth´erapie `a haut d´ebit de dose [60]. Trois cas diff´erents ont ´et´e simul´es : un cas de prostate, un cas de sein et un cas de rectum avec applicateur blind´e. Dans tous les cas, les r´esultats obtenus ont ´et´e compar´es `a ceux d’un algorithme Monte Carlo bien ´etabli construit `a l’aide de la plate-forme Geant4 [61]. Une diff´erence d’au plus 2% entre les deux algorithmes est observ´ee. Pour les temps de calcul, la simulation d’une position d’arrˆet prend moins d’une seconde alors que le recalcule d’un plan se situe autour de deux secondes, ce qui fait de bGPUMCD un code Monte Carlo dont l’utilisation en clinique est envisageable.

L’algorithme bGPUMCD pr´esente beaucoup de r´esultats int´eressants qui en font un bon can- didat en vue d’une application clinique de la m´ethode Monte Carlo en curieth´erapie. Cet algorithme est capable de reproduire les param`etres du TG-43 d’une source de curieth´erapie et montre de bons r´esultats lorsqu’utilis´e dans des situations cliniques `a haut d´ebit de dose, tout cela avec des temps de calcul tr`es rapide. Cependant, quelques points, pr´esent´es dans le tableau 4.1, restent `a am´eliorer afin d’augmenter la pr´ecision et l’exactitude des simulations. Aussi, afin d’ˆetre plus complet, il reste `a appliquer le code bGPUMCD `a des cas cliniques `a bas d´ebit de dose. En effet, la pr´esence de plusieurs sources radioactives dans un volume donn´e pourrait ralentir de fa¸con consid´erable les simulations en raison de la pr´esence de plusieurs surfaces param´etriques.

Chapitre 5

Simulations Monte Carlo d’implants

permanents de prostate :

d´eveloppements et r´esultats

Les r´esultats obtenues pour des situations de curieth´erapie `a haut d´ebit de dose laissent croire que l’algorithme bGPUMCD pourrait ˆetre aussi efficace pour simuler des implants permanents de prostate. Cependant, il existe une diff´erence majeure entre ces deux applications cliniques. Dans les simulations en curieth´erapie `a haut d´ebit de dose, il y a une seule source pr´esente dans le patient qui se d´eplace `a diff´erents endroits. Par cons´equent, l’att´enuation de la source est n´eglig´ee et sa g´eom´etrie n’est donc pas incluse dans le milieu de simulation. Pour un implant permanent, plusieurs dizaines de sources se retrouvent dans un mˆeme volume et il faut donc tenir compte de l’att´enuation inter-source tel que mentionn´ee dans la section1.3.2. Ceci implique l’ajout de plusieurs surfaces param´etriques dans la simulation et une ´eventuelle augmentation du temps de calcul en raison du trac´e de rayons plus complexe.

Dans ce chapitre, il sera question de la simulation d’implants permanents tels qu’effectu´es au CHU de Qu´ebec. Dans un premier temps, certaines modifications g´en´erales apport´ees au code bGPUMCD sont pr´esent´ees. Dans un deuxi`eme temps, l’algorithme Monte Carlo est utilis´e pour simuler et calibrer la source de curieth´erapie utilis´ee. Dans un troisi`eme temps, divers cas cliniques d’implants permanents de prostate sont simul´es et compar´es aux valeurs obtenues par des simulations `a l’aide de Geant4 et les valeurs du TG-43.

5.1

Modification g´en´erales `a l’algorithme bGPUMCD

L’algorithme initial laissait place `a quelques am´eliorations au point de vue du d´eroulement g´en´eral des simulations.

5.1.1 Fichier de donn´ees initiales

Dans sa version originale, l’algorithme utilisait un fichier avec extension .input pour d´efinir les param`etres initiaux de la simulation. Plusieurs fichiers de ce type avaient ´et´e cr´e´es et incorpor´es directement dans le code. La fa¸con de fonctionner consistait `a d´ecommenter le fichier d´esir´e, compiler le code et lancer la simulation. Ceci implique qu’`a chaque fois qu’une simulation diff´erente ´etait lanc´ee, le code devait ˆetre compil´e, engendrant ainsi une perte de temps. Cet aspect du code a ´et´e modifi´e avec l’utilisation de la libraire program_options provenant de Boost [62], un ensemble de librairies en langage C++. Sans entrer dans les d´etails, cette librairie permet l’utilisation d’un fichier d’argument dans lequel sont entr´es les param`etres de la simulation. Cependant, cette librairie ne n´ecessite pas la compilation du programme `a chaque fois qu’un param`etre est chang´e, par exemple le nombre de photons, et il en r´esulte ainsi une ´economie de temps.

5.1.2 Visualisation des donn´ees et du milieu de simulation

Les r´esultats obtenus `a la fin d’une simulation dans le code original ´etaient ´ecrits dans un fichier texte et il ´etait de la responsabilit´e de l’utilisateur de trouver un moyen de les visualiser. Afin de simplifier la visualisation, il a ´et´e d´ecid´e de se tourner vers le programme ROOT [63]

Documents relatifs