Forum technique de RadioProtection Cirkus

Le portail de la RadioProtection pratique et opérationnelle - www.rpcirkus.org
 
RP CirkusRP Cirkus  AccueilAccueil  Dernières imagesDernières images  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  
 

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

Aller en bas 
2 participants
AuteurMessage
Invité
Invité




programme en fortran qui calcul l'efficacité de détection pour une source ponctuelle et un disque à une certaine distance du détecteur Empty
MessageSujet: programme en fortran qui calcul l'efficacité de détection pour une source ponctuelle et un disque à une certaine distance du détecteur   programme en fortran qui calcul l'efficacité de détection pour une source ponctuelle et un disque à une certaine distance du détecteur EmptyVen 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
Invité
Invité




programme en fortran qui calcul l'efficacité de détection pour une source ponctuelle et un disque à une certaine distance du détecteur Empty
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   programme en fortran qui calcul l'efficacité de détection pour une source ponctuelle et un disque à une certaine distance du détecteur EmptyVen 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
Trapéziste
Trapéziste




programme en fortran qui calcul l'efficacité de détection pour une source ponctuelle et un disque à une certaine distance du détecteur Empty
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   programme en fortran qui calcul l'efficacité de détection pour une source ponctuelle et un disque à une certaine distance du détecteur EmptySam 29 Nov 2014 - 9:07

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




programme en fortran qui calcul l'efficacité de détection pour une source ponctuelle et un disque à une certaine distance du détecteur Empty
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   programme en fortran qui calcul l'efficacité de détection pour une source ponctuelle et un disque à une certaine distance du détecteur EmptySam 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
Trapéziste
Trapéziste




programme en fortran qui calcul l'efficacité de détection pour une source ponctuelle et un disque à une certaine distance du détecteur Empty
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   programme en fortran qui calcul l'efficacité de détection pour une source ponctuelle et un disque à une certaine distance du détecteur EmptyDim 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
Gluonmou



programme en fortran qui calcul l'efficacité de détection pour une source ponctuelle et un disque à une certaine distance du détecteur Empty
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   programme en fortran qui calcul l'efficacité de détection pour une source ponctuelle et un disque à une certaine distance du détecteur EmptyDim 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
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Calcul de Débit de dose pour une source Beta pur
» calcul Thermaliseur pour source neutron AmBe
» Question calcul surface de detecteur sonde SMIB
» Calcul de la limite de détection LD
» Calcul de dose source ponctuelle

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: