From: Sébastien WURTH (wurth@ipno.in2p3.fr)
Date: Tue Sep 06 2005 - 15:49:58 CEST
Thank you very much John, indeed it helps.
I was trying to think about such a method when I received your mail and
suddenly it went much faster, because my fortran is not so "fluent".
Like I said in my previous mails, I was unable to set properly DIVBM
value in source.f, I always had that beam directed to Z axis (the
default settings) and nothing changed.
So much for DIVBM then, your method defines exactly what I need.
Thanks again.
Regards.
Sébastien.
John Clem a écrit :
>
> Sebastien,
>
> The directional cosines (as well as the vertices, particle type,
> energy, etc) can also be completely controlled within source.f
> The modifications should take place in the code where the values
> UBEAM,VBEAM,WBEAM are defined. Below is an example for generating a
> 4pi isotropic angular distribution
>
> * Cosines (tx,ty,tz)
> COSTH = ONEONE-2.D0*RAN(ISEED)
> IF(COSTH.GT.ONEONE) COSTH=ONEONE
> IF(COSTH.LT.-ONEONE) COSTH=-ONEONE
> ANG = TWOPIP*RAN2(ISEED2)
> UBEAM=SQRT(ONEONE-COSTH*COSTH)*COS(ANG)
> VBEAM=SQRT(ONEONE-COSTH*COSTH)*SIN(ANG)
> WBEAM=COSTH
>
> ONEONE and TWOPIP are define in the common DBLPRC and RAN* are
> externally defined random number generators.
>
>
> I hope this helps,
> John
>
> >>
> >>Dr. John Clem
> >>Senior Research Scientist
> >>Bartol Research Institute
> >>University of Delaware
> >>Newark, DE 19716 USA
> >>302-831-4354
> >>302-831-1843 Fax
> >>clem@bartol.udel.edu
> >>
>
>
> ----- Original Message -----
> *From:* Sébastien WURTH <mailto:wurth@ipno.in2p3.fr>
> *To:* John Clem <mailto:clem@bartol.udel.edu>
> *Sent:* Tuesday, September 06, 2005 03:08
> *Subject:* Re: Problem to set DIVBM in source.f file
>
> John Clem a écrit :
>
>> Sebastien,
>>
>> To do this in a single run a random number generator function
>> must be defined in source.f (I've forgotten exactly how to
>> use the fluka internal function, however the Numerical Recipes
>> libraries has various types that can be inserted directly into
>> the code) and then weighted to provide the normalized integral of
>> each Cobalt energy peak. Each time a new beam particle is started
>> "source.f" is called and a new random number (between 0,1) is
>> generated. Employing logical IF statements, the random value
>> determines the energy. As an example...
>> if(ranvalue.lt.0.499) E= 1.173E-3GeV
>> if(ranvalue.ge.0.501) E=1.332E-3GeV
>> where ranvalue variables are the random values from a
>> flat distribution generator...
>>
>> Of course performing multiple runs with different energies
>> and combining output will also achieve the same result..
>>
>> John
>>
>> ----- Original Message -----
>> *From:* Sébastien WURTH <mailto:wurth@ipno.in2p3.fr>
>> *To:* fluka-discuss@fisica.unimi.it
>> <mailto:fluka-discuss@fisica.unimi.it>
>> *Sent:* Monday, September 05, 2005 10:46
>> *Subject:* Problem to set DIVBM in source.f file
>>
>> Hello all,
>>
>> Let me please remind you what brought me here :
>>
>> **** First Message ***
>>
>>/Date: Wed, 31 Aug 2005 15:24:22 +0200
>>> From: "[ISO-8859-1] Sébastien WURTH" <wurth@ipno.in2p3.fr>
>>> To: support@fluka.org
>>> Subject: How can I define a non monoenergetic source in FLUKA ?
>>>
>>> Dear FLUKA developpers,
>>>
>>> I'm trying to simulate a source of cobalt 60.
>>> I've read the manual very carefully, and a large part of the mailing
>>> list archive
>>> but I didn't find the right answer to my question.
>>> How can I define a non monoenergetic source (or beam) ? By using the
>>> subroutine source introduced by command SOURCE I guess,
>>> but I don't know how to define two energies in source.f. I've tried to
>>> define it with the two BEAM cards, but FLUKA seems to overwrite
>>> the first one when reading the second one.
>>>
>>> The answer may be very simple, but I can't find it.
>>>
>>> Thank you for your help.
>>>
>>> Best regards.
>>>
>>> Sébastien WURTH./
>>****
>>
>>**** Reply of G. BATTISTONI ****
>>
>>/I would do like in the following:
>>suppose that you have 2 different energy lines. The first emission line
>>has probability P (0<P<1) and the second 1-P
>>Then you create your source.f with a logic in which
>>for a fraction of cases proportional to P you assign energi n.1
>>and for the complementary fraction of cases you give energy n.2
>>
>>example:
>> if (flrndm(xdummy).Le.prob1) then
>> pbeam = energy1
>> else
>> pbeam = energy2
>> endif
>>
>>It is up to you to provide the right values for prob1, energy1 and
>>energy2.
>>For instance you can pass these values to the source.f using the
>>numerical fields of SOURCE card: they appear inside source as the vector
>>WHASOU(n) with n =0,1,2,..,6
>>
>> Giuseppe Battistoni/
>>
>>*****
>>
>>
>>
>>
>> _/So, there is my new problem :/_
>>
>>
>> I did the changes by calling source.f with SOURCE card,
>> setting my parameters in the WHASOU fields of SOURCE...
>> compiling, linking, etc.
>> The run goes to the end, but the results are not quite what I
>> was expecting.
>>
>> It seems that FLUKA understands that my source (beam) is not
>> isotropic anymore, but directed to z axis,
>> although I gave a value to variable DIVBM in my source.f file.
>>
>> I set DIVBM to 1.E4 to describe an isotropic source, value
>> taken from the examples in BEAM card
>> description section from the manual. By the way, I discovered
>> a little mistype in the example of an isotropic Cs-137 source,
>> kinetic energy should be -661.7E-6 GeV instead of -661.7E-3
>> GeV, shouldn't it ?
>>
>> Anyway, my question is : Is there any particular place in
>> source.f where those assignments have to be made ?
>> In the user initialization part for example ? I tried this
>> one though, but nothing changed.
>> I tried after the energy part (an analogy to BEAM card in my
>> logic), but nothing changed, once again.
>> It appears to me that DIVBM is not read properly (and maybe
>> the energy part too (not sure about that)).
>>
>> I did a run without changing anything in the source.f file
>> given in $FLUPRO/usermvax, the results are quite the same when I
>> gave a value to DIVBM.
>>
>> Thank you for your help.
>>
>> Best regards.
>>
>> Sébastien Wurth.
>>
> John,
>
> Thank you for your answer, but it's not exactly what I was asking
> for. Your solution is quite the same that G. Battistoni gave me a
> few days ago and that a good way to simulate a cobalt source, no
> doubt. But actually my new problem is how to define an isotropic
> source in source.f routine. When using SOURCE card in Fluka this
> overrides the beam divergence given in BEAM card. My question was
> where do I exactly define this DIVBM value in source.f file since
> it doesn't seem to be properly read at the location I put it so far...
>
> Regards.
>
> Sebastien.
>
This archive was generated by hypermail 2.1.6 : Wed Sep 07 2005 - 10:31:34 CEST