Forum technique de RadioProtection Cirkus

Le portail de la RadioProtection pratique et opérationnelle - www.rpcirkus.org
 
RP CirkusRP Cirkus  AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  
Partagez | 
 

 programme en fortran qui calcul l'efficacité de détection pour une source ponctuelle et un disque à une certaine distance du détecteur

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
inesnoussa
Spectateur
Spectateur



MessageSujet: programme en fortran qui calcul l'efficacité de détection pour une source ponctuelle et un disque à une certaine distance du détecteur   Ven 28 Nov 2014 - 17:11

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
 
a) efficacité en fonction du rayon du détecteur
b) efficacité en fonction de la distance source détecteur
c)efficacité en fonction du rayon de la source
Y a-t-il quelqu'un qui pourrait m'aider ??? Merci d'avance Sad  Sad
Revenir en haut Aller en bas
inesnoussa
Spectateur
Spectateur



MessageSujet: Re: programme en fortran qui calcul l'efficacité de détection pour une source ponctuelle et un disque à une certaine distance du détecteur   Ven 28 Nov 2014 - 19:39

Voici le code que j'essaie l'ecrire pour une source ponctuelle;
program sourceponc

integer i,N
real x,y,z,eff,count,Dds,rd,ux,uy,uz,t


count=0
do i=1,N

theta = acos(1-2*rand())
phi = 2*pi*rand()
ux=cos(theta)sin(phi)
uy=sin(theta)sin(phi)
uz=cos(theta)
t=Dds/uz
x=ux*t
y=uy*t

if(sqrt(x**2+y**2+z**2).le.1)then
count=count+1
endif
end do
eff=count/N
print*,eff
end
Lorsque je le compile et l’exécute , voici qu'est ce qu'elle affiche dans le terminal  :
sourceponc.f90:12:

ux=cos(theta)sin(phi)
1
Error: Unclassifiable statement at (1)
sourceponc.f90:13:

uy=sin(theta)sin(phi)
1
Error: Unclassifiable statement at (1)
y a t'il quelqu'un qui pourrait m'aider ? merci d'avance
Revenir en haut Aller en bas
Gnaf
Acrobate
Acrobate



MessageSujet: Re: programme en fortran qui calcul l'efficacité de détection pour une source ponctuelle et un disque à une certaine distance du détecteur   Sam 29 Nov 2014 - 9:07

un opérateur  à rajouter peut-être ? 
que dit le compil avec sin*cos?
Revenir en haut Aller en bas
inesnoussa
Spectateur
Spectateur



MessageSujet: Re: programme en fortran qui calcul l'efficacité de détection pour une source ponctuelle et un disque à une certaine distance du détecteur   Sam 29 Nov 2014 - 15:23

Bonjour,
J'essayais déja écrire un programme en fortran qui calcul l'efficacité de détection pour une source disque (étendue)  à une certaine distance du détecteur que je vais supposer un disque.
Voici le code :
program sourceponc

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

N=100000
Rs=0.35
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)
count=count+1
end if
end do
eff=count/N
print*,eff
end

Lorsque je le compile et l’exécute , voici qu'est ce qu'elle affiche dans le terminal :
sourceponc.f90:20.16:

if (l.le. Rd**2)
                1
Error: Cannot assign to a named constant at (1)
sourceponc.f90:22.3:

end if
   1
Error: Expecting END DO statement at (1)

pourrais-tu m'aider??
merci d'avance Smile
Revenir en haut Aller en bas
Gnaf
Acrobate
Acrobate



MessageSujet: Re: programme en fortran qui calcul l'efficacité de détection pour une source ponctuelle et un disque à une certaine distance du détecteur   Dim 30 Nov 2014 - 9:37

Rd**2 dans une condition pourrait être en cause
essaie Rd2 , calculée à partir de Rd ou initialisée directement si pas d'utilisation de Rd ailleurs dans le programme ce qui économise une variable 
puis comparer l à Rd2
L'autre erreur est une conséquence de la première : il n'a pas compris le if donc il ne comprend pas le end if
Mettre aussi le type de Rs, Rd et D s'ils ne viennent pas d'ailleurs, cela n'a pas conséquence en général mais l'implicite cause souvent des soucis et mieux vaut ne pas en prendre l'habitude.
Revenir en haut Aller en bas
Gluonmou
Contorsionniste
Contorsionniste



MessageSujet: Re: programme en fortran qui calcul l'efficacité de détection pour une source ponctuelle et un disque à une certaine distance du détecteur   Dim 30 Nov 2014 - 19:27

Bonsoir,

Je suis une bille internationale en fortran 
Donc en ce qui concerne les bug du code, je ne serai d'aucune aide

Du coup je ne comprend pas trop l'objectif du code.

j'ai juste le sentiment que vous générez une émission de photon sous 2pi et que vous incrémentez le comptage lorsque  le photon touche le disque détecteur (dont l'efficacité est au demeurant 100 %, admettons)
Ce qui reviendrai, en faisant le rapport des photons détecté aux photons générés (et à un facteur 2 près) à  calculer le rendement géométrique (ou rapport des angles solides)

Me tromp'je?

Lorsque votre code tournera, vous pourrez alors comparer ce calcul avec le calcul déterministe direct.
par contre le comptage que vous génèrerez n'est pas poissonien, sauf si vous avez un petit angle solide.
Car il faudrait aussi randomiser le nombre de photons émis autour d'une moyenne.

Puis ensuite probabiliser l'interaction du photon lorsqu'il touche le détecteur
Mais surtout pouvoir calculer cela lorsque votre source ne sera plus sur l'axe du détecteur. là ça se complique, surtout si vous prenez en compte l'épaisseur du détecteur

Et je vous encourage à continuer, tout en vous souhaitant bienvenu chez ceux qui se frottent à la création de code ex nihilo 
Ne lâchez rien
Revenir en haut Aller en bas
 
programme en fortran qui calcul l'efficacité de détection pour une source ponctuelle et un disque à une certaine distance du détecteur
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» PROGRAMME BAYROU ( Récapitulatif)
» 1ère 2035 et calcul de l'impôt
» Nutritérapie et Homéopathie pour favoriser la fécondation!
» Back to mac
» Congés payés des gardiens et employés d'immeubles (sce ARC)

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum technique de RadioProtection Cirkus :: Un peu de théorie :: Code de calcul et transport de particules-
Sauter vers: