From: Alberto Fasso' (fasso@SLAC.Stanford.EDU)
Date: Tue Jan 16 2007 - 00:55:55 CET
It is always difficult to help when user routines are involved, because
it is not always clear what the user is doing.
Anyway, I have spotted a number of possible causes of error in your source
and input file, and in the linking command you have used.
I will list them here, and I suggest that you correct accordingly, and try
again. If the problem will be still there, let me know.
Here are the "odd things" I have found:
1) You have declared an array NORENE(0:13) which appears to be a cumulative
distribution from which you want to sample energy. The distribution is
initialized as
DATA NORENE / 0.D0,
& 0.14766E-02, 0.35102E-02, 0.23169E-01, 0.26918E-01, 0.35186E-01,
& 0.78632E-01, 0.25713E+00, 0.57673E+00, 0.86827E+00, 0.97527E+00,
& 0.99680E+00, 0.99952E+00, 0.10000E+01/
But since the name begins with "N", and the Fortran default is not
overridden by a declaration DOUBLE PRECISION NORENE, the compilers sees
it as an array of integers. Since all numbers are < 1, they are
interpreted all as zeros. Probably this is the main reason of your
"illogical result": you keep sampling a zero energy.
2) Your source contains a section
* Decode Heavy ion particle ID for 100*A+Z FLUKA number
IDpart = -1206
IF (IDpart .LT. -402) THEN
IJBEAM = -2
IDpart = abs (IDpart)
IPROA = IDpart / 100
IPROZ = IDpart - 100 * IPROA
END IF
I don't know if it is correct or not, but certainly it is not necessary.
And any non necessary piece of program increases the probability of
introducing some bug, by itself, or by conflicting with other parts of the
program: in fact the decoding is already done in the source template, a few
lines below:
ELSE IF ( IJBEAM .EQ. -2 ) THEN
IJHION = IPROZ * 1000 + IPROA
IJHION = IJHION * 100 + KXHEAV
IONID = IJHION
CALL DCDION ( IONID )
CALL SETION ( IONID )
ILOFLK (NPFLKA) = IJHION
By the way, it looks strange to write IDpart = -1206 and to follow
immediately with IF (IDpart .LT. -402). Of course if it is fixed as -1206
it is always .LT. -402. Never mind, you only need to specify correctly
a carbon ion in your input file (see below) and let FLUKA do the decoding.
3) You define an isotropic angular distribution
YI = FLRNDM(DUMMY)
COSTH = ONEONE - 2.D0 * YI
IF (COSTH .GT. ONEONE) THEN
COSTH = ONEONE
ELSE IF (COSTH .LT. -ONEONE) THEN
COSTH = -ONEONE
END IF
ZI = FLRNDM(DUMMY)
ANG = TWOPIP * ZI
UBEAM = SQRT (ONEONE - COSTH * COSTH) * COS(ANG)
VBEAM = SQRT (ONEONE - COSTH * COSTH) * SIN(ANG)
WBEAM = COSTH
Again, I don't know if it is correct or not, but again it is not necessary.
To request an isotropic distribution, you only need a command BEAM in your
input file, with WHAT(3) (beam divergence) > 6300 (see manual). Don't
introduce unnecessary stuff, which could create more possibilities of
error. For instance, you left commented out the normalization of cosines,
but are you sure that as you defined them, UBEAM VBEAM and WBEAM are
always properly normalized? You could have achieved that with the same
number of time-expensive square roots
WBEAM = COSTH
UBEAM = SQRT (ONEONE - COSTH * COSTH) * COS(ANG)
VBEAM = SQRT (ONEONE - UBEAM*UBEAM - WBEAM*WBEAM)
But much better, let FLUKA provide its own isotropic distribution, which has
been thoroughly tested.
4) The particle starting point is defined as:
XBEAM = 4E05
YBEAM = 4E05
ZBEAM = 4E05
Use always D, not E (that applied also to NORENE values shown before):
XBEAM = 4.D05
YBEAM = 4.D05
ZBEAM = 4.D05
5) Input file:
Not important, but why have a command GLOBAL followed by all zeros?
The manual says for each of them that they are "ignored".
You have a BEAM command
BEAM -120.E+00 HEAVYION
We have already seen how you can use WHAT(3) to ask for an isotropic source.
But HEAVYION alone in general is not sufficient. You need a card HI-PROPE
specifying the type of ion. However, in your case you may miss it, because
the default is just what you want, 12C. So it's ok. But if you change
type of ion, don't forget HI-PROPE.
6) Linking command:
$FLUPRO/flutil/lfluka -o myfluka -m fluka source.o links the default
FLUKA library, which is not sufficient for heavy ions. You need to type:
$FLUPRO/flutil/ldpm3qmd -o myfluka -m fluka source.o
^^^^^^^^
Otherwise you will get the carbon ion transported, but without nuclear
interactions.
Best regards,
Alberto
On Mon, 15 Jan 2007, h jalali wrote:
> Hi Alberto
>
> I had sent my source.f,input,*.out and the results in a zip format by last mail.
> Anyway,my input and source.f are in attachment.
> The commands that I used, were:
> to compile and link to source.f
> $FLUPRO/flutil/fff source.f
> $FLUPRO/flutil/lfluka -o myfluka -m fluka source.o
> and to run my input I gave this command:
> $FLUPRO/flutil/rfluka -e myfluka -N0 -M1 carbon &
> carbon is my input.
> I also used usxsuw.f as FLUKA manual to get result from USRBDX output.
> Thanks in advance for your help.
>
> Best regards
>
> Alberto Fasso' <fasso@slac.stanford.edu> wrote:
> Don't send executables, they are stripped out by the spam filter.
> Anyway, it is not the executable which is needed, but:
> - your input file
> - your source file
> - any other user routine yoiu may possibly have used
> the command you typed to compile and link
>
> Once we have all that (attached as text files) we can generate
> the executable ourselves.
>
> Alberto
>
> PS your attachment, which has been removed by the antispam, had an
> extension .rar. What is that? A mistyping for .tar?
>
>
> On Sun, 14 Jan 2007, h jalali wrote:
>
> > Dear FLUKA users
> >
> > I have a carbon source with distribution of energy and want to calculate
> > dose in a shell of Al and score secondry particles .The results are completely
> > illogical,it seems any particle does not move.I do not know the problem is
> > because of my source.f or my input.
> > Please help me.
> >
> > Best regards
> >
> >
> > ---------------------------------
> > Be a PS3 game guru.
> > Get your game face on with the latest PS3 news and previews at Yahoo! Games.
>
>
-- Alberto Fassò SLAC-RP, MS 48, 2575 Sand Hill Road, Menlo Park CA 94025 Phone: (1 650) 926 4762 Fax: (1 650) 926 3569 fasso@slac.stanford.edu
This archive was generated by hypermail 2.1.6 : Tue Jan 16 2007 - 09:36:57 CET