How to introduce reflective boundary conditions

Dear experts,

I have a source of neutrons from a sampling of an external ascii file, distributed on a spherical surface, such that it produces an isotropic and uniform FLUENCE inside the sphere made of Fe.

SPH blkbody 0.0 0.0 0.0 100000.
SPH void 0.0 0.0 0.0 10000.
SPH Target 0.0 0.0 0.0 1.0

ASSIGNMA BLCKHOLE BLKBODY
ASSIGNMA VACUUM VOID
ASSIGNMA IRON TARGET

How I could set a boundary condition having the surface of the Fe sphere as a reflector?
I would like to examine two cases: 1) specular reflection boundary condition if all the neutrons approaching the boundary from within are reflected back to the region with angles preserving the general reflection rule, and about a 2) diffuse boundary condition, if they are reflected back with an isotropic distribution. I am aware that there are routines for optical photons but not for neutrons…
Do I need to use a very thin spherical shell that surrounds the Fe sphere as an intermediate boundary between IRON and VACUUM and use usrmed.f?

Thank you very much in advance

Best regards

Georgios

Dear Georgios,

to use a reflective surface boundary condition for non optical photons, the usrmed.f user routine has to be used.

It has to be activated with a MAT-PROP card, using type USERDIRE, and selecting the material of the reflective region.

For a bit more information see the relevant page in the manual: 13.2.29} usrmed.f: USeR MEDium dependent directives | FLUKA

Finally, here is an example usrmed.f user routine with specular and diffuse reflection and Flair project file:
reflect.flair (1.6 KB)
usrmed_reflect.f (3.2 KB)

Cheers,
David

Dear David,

I tested your example and I am very grateful for your help… Its really valuable for my studies. In case I want a reflectivity of a certain percent, for example 90% in order not to end up in an eternal loop in case I have vacuum in the target and not material to slow down the neutrons, how I could introduce that?

Thanks a lot in advance

Best regards

Georgios

Dear Georgios,

in the user routine, you can use a random number decide if the reflection takes place or not. This way the particles, which are not reflected, are tracked outside.

Also, you may use the random number to kill the portion of particles by setting their weight (WEE) to zero (ZERZER). In this case the energy of the particles are discarded and not deposited.

Cheers,
David