Calcul d'un angle solide avec deux méthodes numériques

Aide à la résolution d'exercices ou de problèmes de niveau Supérieur.

Modérateur: gdm_aidesco

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser le mode LaTeX (voir ici) afin de rendre vos formules plus lisibles.
> Ne poster qu'un exercice (ou problème) par sujet et indiquer son niveau précis dans le titre du message.

Calcul d'un angle solide avec deux méthodes numériques

Messagepar jg2m2010 » Jeudi 21 Mars 2013, 17:07

Bonjour,

Le calcul, en physique nucléaire (ou en optique), de l'angle solide d'une source ponctuelle est relativement simple. Différentes formules, qu'il est bien sûr nécessaire de comprendre, permettent de le calculer sans trop de difficultés.

Mais comment fait-on par pour calculer l'angle solide d'une source étendue ?

C'est la question que je me suis posé dans le cadre d'un TP en physique nucléaire.
Il existe plusieurs méthodes numériques :
- considérer chaque point de la source étendue comme une source secondaire ponctuelle possédant son propre angle solide vis à vis du détecteur. On utilise un ordinateur pour calculer l'angle solide d'un point quelconque de la source et ensuite on intègre sur toute la surface de la source. C'est un peu la même chose que le principe de Huygens-Fresnel.
- utiliser la méthode de monte carlo. (méthode détaillée dans le pdf ci joint).

Je n'ai pas essayé la première méthode. Elle ne me paraît pas évidente : notamment l'intégration. Il ne faut pas seulement intégrer, non ? il faut diviser l'intégrale de l'angle solide par la surface du détecteur non ?
J'ai essayé la méthode de Monte Carlo. Elle me donne des résultats faux. En effet, la condition que j'utilise pour savoir si la particule est détectée est une condition nécessaires mais non suffisante. Toutes les valeurs que j'obtiens sont supérieures ou largement supérieures à celles que je devrait obtenir.

J'ai fait un compte-rendu de ce TP il y a plusieurs semaines. Il n'y a plus d'enjeu de notes. J'aimerais néanmoins réussir à calculer correctement cet angle solide. Si ce sujet vous intéresse, auriez-vous des indications à me donner ?
Fichiers joints
angle_solide.pdf
(213.61 Kio) Téléchargé 210 fois
jg2m2010
Kilo-utilisateur
 
Messages: 231
Inscription: Samedi 23 Avril 2011, 12:55
Statut actuel: Post-bac | Doctorat

Publicité

Re: Calcul d'un angle solide avec deux méthodes numériques

Messagepar Framboise » Vendredi 22 Mars 2013, 02:11

Bonjour,

Je soupçonne que le soucis provient du générateur aléatoire M-C qui n'est pas équiprobable en directions.
J'ai retrouvé un sujet correspondant pour quelques idées:
http://forum.mathematex.net/post109782.html#p109782
Cela date de 2010, l’Alzheimer ne semble pas devoir m'inquiéter pour le moment. :mrgreen:

On peut avoir un problème similaire de répartition des positions des émissions, mais cela est moins évident car l'erreur sera faible, surtout avec une petite surface émettrice.

On pourra simplifier ( hum! pas vraiment, mais surtout accélérer ) en profitant des symétries et ne considérer que les émissions d'un seul côté.
J'ai le virus des sciences, ça se soigne ?
Framboise
Téra-utilisateur
 
Messages: 1151
Inscription: Lundi 21 Mai 2007, 12:57
Localisation: Dordogne
Statut actuel: Post-bac | Doctorat

Re: Calcul d'un angle solide avec deux méthodes numériques

Messagepar jg2m2010 » Vendredi 22 Mars 2013, 18:33

Merci Framboise.

Je vais jeter un coup d'oeil !
jg2m2010
Kilo-utilisateur
 
Messages: 231
Inscription: Samedi 23 Avril 2011, 12:55
Statut actuel: Post-bac | Doctorat

Re: Calcul d'un angle solide avec deux méthodes numériques

Messagepar Framboise » Vendredi 22 Mars 2013, 19:40

Les radiations arriveront avec un angle qui n'est pas rigoureusement perpendiculaire à la surface du détecteur, donc avec une probabilité de détection légèrement variable.
Je pense que l'on peut négliger cela.

Je suppose que l'on utilise un détecteur du type Si(Li) ou Ge(Li) refroidi de forme cylindrique et de faible épaisseur.
J'ai le virus des sciences, ça se soigne ?
Framboise
Téra-utilisateur
 
Messages: 1151
Inscription: Lundi 21 Mai 2007, 12:57
Localisation: Dordogne
Statut actuel: Post-bac | Doctorat

Re: Calcul d'un angle solide avec deux méthodes numériques

Messagepar jg2m2010 » Samedi 23 Mars 2013, 14:56

Framboise a écrit:Les radiations arriveront avec un angle qui n'est pas rigoureusement perpendiculaire à la surface du détecteur, donc avec une probabilité de détection légèrement variable.
Je pense que l'on peut négliger cela.

Je suppose que l'on utilise un détecteur du type Si(Li) ou Ge(Li) refroidi de forme cylindrique et de faible épaisseur.


Il s'agissait d'un détecteur semi conducteur de particules alpha. J'ai oublié le matériau. Il faudra que je relise l'énoncé mais il se trouve en période de révisions cette semaine donc je ne sais pas si j'aurais beaucoup de temps ces prochains jours.

En revanche, vous ne pensez pas que la condition que j'impose pour s'avoir si la particule est détectée n'est pas une condition trop "large" ?
jg2m2010
Kilo-utilisateur
 
Messages: 231
Inscription: Samedi 23 Avril 2011, 12:55
Statut actuel: Post-bac | Doctorat

Re: Calcul d'un angle solide avec deux méthodes numériques

Messagepar Framboise » Samedi 23 Mars 2013, 19:48

Je pensais plutôt à des X ou gammas. Pour des particules alpha, la pénétration dans le détecteur est infime ( fraction de mm ).
Il y a un parcours très limité ( ordre du cm dans les cas favorables ) des alpha dans l'air, donc une probabilité de détection amoindrie d'autant.
http://en.wikipedia.org/wiki/Bragg_peak
La fin de parcours des alpha manifeste le pic de Bragg, pic de libération massive de l'énergie.
On retrouve un tel pic de Bragg avec les protons, plus pénétrants que les alphas, ce qui permet une utilisation en protonthérapie ciblant plus finement une irradiation intense ( dizaines de Gray en local ) épargnant quelque peu les tissus alentours et mieux que par les rayons X/gamma en combinant avec des masques d'absorption et des "rotating range modulator wheel", sorte de ventilateur modulant la pénétration. Idem avec d'autres particules lourdes.

Les mesures de alpha se font souvent dans le vide quand cela est possible.
Il existe des détecteurs "silicon barriers" ( = barrière silicium in french ? ) pour les alpha.
On a un rendement de détection des alpha qui reste faible, pire pour des alpha de faible énergie ( ex. Radon dans l'air ). La mesure et dosimétrie des alpha reste difficile.

Une table:
http://www-nds.iaea.org/relnsd/vcharthtml/VChartHTML.html
J'ai le virus des sciences, ça se soigne ?
Framboise
Téra-utilisateur
 
Messages: 1151
Inscription: Lundi 21 Mai 2007, 12:57
Localisation: Dordogne
Statut actuel: Post-bac | Doctorat

Re: Calcul d'un angle solide avec deux méthodes numériques

Messagepar jg2m2010 » Lundi 25 Mars 2013, 11:15

Framboise a écrit:Je pensais plutôt à des X ou gammas. Pour des particules alpha, la pénétration dans le détecteur est infime ( fraction de mm ).
Il y a un parcours très limité ( ordre du cm dans les cas favorables ) des alpha dans l'air, donc une probabilité de détection amoindrie d'autant.
http://en.wikipedia.org/wiki/Bragg_peak
La fin de parcours des alpha manifeste le pic de Bragg, pic de libération massive de l'énergie.
On retrouve un tel pic de Bragg avec les protons, plus pénétrants que les alphas, ce qui permet une utilisation en protonthérapie ciblant plus finement une irradiation intense ( dizaines de Gray en local ) épargnant quelque peu les tissus alentours et mieux que par les rayons X/gamma en combinant avec des masques d'absorption et des "rotating range modulator wheel", sorte de ventilateur modulant la pénétration. Idem avec d'autres particules lourdes.

Les mesures de alpha se font souvent dans le vide quand cela est possible.
Il existe des détecteurs "silicon barriers" ( = barrière silicium in french ? ) pour les alpha.
On a un rendement de détection des alpha qui reste faible, pire pour des alpha de faible énergie ( ex. Radon dans l'air ). La mesure et dosimétrie des alpha reste difficile.

Une table:
http://www-nds.iaea.org/relnsd/vcharthtml/VChartHTML.html


Il s'agissait bien d'un détecteur Si de particules alpha. Le détecteur était sous vide.
jg2m2010
Kilo-utilisateur
 
Messages: 231
Inscription: Samedi 23 Avril 2011, 12:55
Statut actuel: Post-bac | Doctorat

Re: Calcul d'un angle solide avec deux méthodes numériques

Messagepar inesnoussa » Samedi 29 Novembre 2014, 22:42

Bonjour
Je veux écrire un programme en fortran qui calcul l'efficacité de détection pour une source ponctuelle et un disque à une certaine distance du détecteur que je vais supposer un disque.Le détecteur disque est supposé parfait: c.a.d absorbe tout photon qui tombe sur lui. Donc ici je travaille dans 3D et j'utilise ux, uy et uz pour diriger le photon aléatoirement en utilisant le système de coordonnées sphériques.

voici le code pour la source disque :
program sourcedisk

integer i,N
real phi1,r1,theta2,phi2,l,count,eff

N=100000
Rs=0.25
Rd=0.35
D=2

count=0
do i=1,N

phi1 = 2*pi*rand()
r1=Rs*rand()

theta2=pi*rand()
phi2=2*pi*rand()

l=(r1*cos(phi1)+tan(theta2)*cos(phi2)*D)**2+(r1*sin(phi1)+tan(theta2)*sin(phi2)*D)**2
if (l.le. Rd**2)then
count=count+1
end if
end do
eff=count/N
print*,eff
end

Quand je le compile et je l’exécute dans le terminal , voici le résultat qui s'affiche sur terminal:
1.0000000
y'a t il quelqu'un qui peut m'aider ??
merci d'avance
inesnoussa
Utilisateur
 
Messages: 1
Inscription: Samedi 29 Novembre 2014, 22:27
Statut actuel: Lycée | Terminale ES

Re: Calcul d'un angle solide avec deux méthodes numériques

Messagepar Framboise » Dimanche 30 Novembre 2014, 14:46

Bonjour,

C'est compilé avec quel pgm Fortran ?
C'est du .F90 ?
Je n'ai pas de compiler ( freeware.... ) Fortran pour Windows 8.1 pour le moment.
J'ai traduit en BASIC pour QB64:
http://www.qb64.net/

Code: Tout sélectionner
DEFDBL A-Z
'real phi1,r1,theta2,phi2,l,count,eff
DEFLNG I, N

N = 100000
Rs = 0.25
Rd = 0.35
D = 2

PRINT I, N
count = 0
RANDOMIZE 1
FOR I = 1 TO N

    phi1 = 2 * pi * RND
    r1 = Rs * RND

    theta2 = pi * RND
    phi2 = 2 * pi * RND

    l = (r1 * COS(phi1) + TAN(theta2) * COS(phi2) * D) ^ 2
    l = l + (r1 * SIN(phi1) + TAN(theta2) * SIN(phi2) * D) ^ 2
    IF l <= Rd * Rd THEN
        count = count + 1
    END IF
NEXT I
eff = count / N
PRINT USING "###.######"; eff
END

j'obtiens la même chose ( -> 1).
Un croquis pour définir la géométrie et les angles serait bienvenu pour analyser le soucis.

PS: comment afficher un programme sur le forum sans perdre les espaces multiples en début de ligne et ailleurs ?
Dernière édition par Framboise le Mardi 02 Décembre 2014, 10:02, édité 1 fois.
J'ai le virus des sciences, ça se soigne ?
Framboise
Téra-utilisateur
 
Messages: 1151
Inscription: Lundi 21 Mai 2007, 12:57
Localisation: Dordogne
Statut actuel: Post-bac | Doctorat

Re: Calcul d'un angle solide avec deux méthodes numériques

Messagepar raphkebab » Lundi 01 Décembre 2014, 10:58

Il y a une grosse erreur dans votre code "r1 = Rs * RND" car la probabilité d'être dans la partie éloignée du disque doit être plus importante de celle d'être dans la partie proche du centre. Pour vous en convaincre il suffit de calculer l'aire d'un cercle de rayon 1 et celui d'un anneau de rayon 1 et 2.

Je vais faire un code en R pour modéliser tout ça.
Dernière édition par raphkebab le Lundi 01 Décembre 2014, 11:41, édité 1 fois.
raphkebab
Kilo-utilisateur
 
Messages: 223
Inscription: Mardi 31 Décembre 2013, 12:37
Localisation: Caen
Statut actuel: Post-bac | Doctorat

Re: Calcul d'un angle solide avec deux méthodes numériques

Messagepar raphkebab » Lundi 01 Décembre 2014, 11:21

Voila mon code R :
Code: Tout sélectionner
Nt<-1000
Np<-10000
Rs<-0.25
Rd<-0.35
D<-2

list_res<-c()
for (i in 1:Nt){

#position
r1<-(sqrt(runif(Np, min = 0, max = 1)))*Rs
alfa<-runif(Np, min = 0, max = 2*pi)
#vérification
#plot(r1*cos(alfa),r1*sin(alfa))

#position avec l'erreur de tirage
#r1_non<-runif(1000, min = 0, max = Rs)
#plot(r1_non*cos(alfa),r1_non*sin(alfa))

theta=runif(Np, min = 0, max = pi)
phi=runif(Np, min = 0, max = 2*pi)

x=(r1*cos(alfa)+tan(theta)*cos(phi)*D)^2+(r1*sin(alfa)+tan(theta)*sin(phi)*D)^2

list_res[i]<-sum(x <= Rd^2)
}

mean(list_res)
quantile(list_res, probs = c(0.025, 0.5, 0.975))


Résultats pour 10 000 :
> mean(list_res)
[1] 1024.978
> quantile(list_res, probs = c(0.025, 0.5, 0.975))
2.5% 50% 97.5%
970 1024 1083
raphkebab
Kilo-utilisateur
 
Messages: 223
Inscription: Mardi 31 Décembre 2013, 12:37
Localisation: Caen
Statut actuel: Post-bac | Doctorat

Re: Calcul d'un angle solide avec deux méthodes numériques

Messagepar rebouxo » Lundi 01 Décembre 2014, 15:16

Framboise a écrit:Bonjour,

PS: comment afficher un programme sur le forum sans perdre les espaces multiples en début de ligne et ailleurs ?


Si l'éditeur de texte est bien réglé, cela ne devrait pas poser de problème. Il faut mettre le code entre les balises code.

Vous n'avez pas de langages plus modernes que Fortran et BASIC ? :mrgreen:

Olivier
A line is a point that went for a walk. Paul Klee
Par solidarité, pas de MP
rebouxo
Modérateur
 
Messages: 6729
Inscription: Mercredi 15 Février 2006, 13:18
Localisation: le havre
Statut actuel: Actif et salarié | Enseignant

Re: Calcul d'un angle solide avec deux méthodes numériques

Messagepar Framboise » Mardi 02 Décembre 2014, 10:13

rebouxo a écrit:
Framboise a écrit:Bonjour,

PS: comment afficher un programme sur le forum sans perdre les espaces multiples en début de ligne et ailleurs ?


Si l'éditeur de texte est bien réglé, cela ne devrait pas poser de problème. Il faut mettre le code entre les balises code.

Olivier


Bonjour,
Je n'y avais pas pensé, c'était trop évident, effectivement cela passe beaucoup mieux. J'ai modifié.

rebouxo a écrit:
Vous n'avez pas de langages plus moderne que Fortran et BASIC ? :mrgreen:

Olivier


Grrrr, cela ne me rajeunit pas....
Enfin ce n'est pas le COBOL ( jamais aimé ).
J'aime bien le BASIC lorsqu'il faut que ce soit compréhensible et facile d'utilisation à tous, plus le QB64 freeware qui fonctionne fort bien sur mon Windows 8.1. Cela rappelle l'époque du MSDOS 6. Non, je ne dirai pas mon âge, secret défense. :mrgreen:
Sinon je préfère pour mon usage perso le C et ses variantes C++ et C#. Avec le C j'ai vite abandonné le FORTRAN et le PL1.
J'ai le virus des sciences, ça se soigne ?
Framboise
Téra-utilisateur
 
Messages: 1151
Inscription: Lundi 21 Mai 2007, 12:57
Localisation: Dordogne
Statut actuel: Post-bac | Doctorat


Retourner vers Exercices et problèmes : Supérieur

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités