# Primarly neutrons distribution throughout fuel rods of a hexagonal lattice

**URL:** <https://openmc.discourse.group/t/primarly-neutrons-distribution-throughout-fuel-rods-of-a-hexagonal-lattice/6183>\
**Category:** User Support\
**Created:** [January 12, 2026, 2:06pm UTC](https://openmc.discourse.group/t/primarly-neutrons-distribution-throughout-fuel-rods-of-a-hexagonal-lattice/6183 "2026-01-12T14:06:26Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![imelnyk](https://avatars.discourse-cdn.com/v4/letter/i/958977/32.png) [@imelnyk](https://openmc.discourse.group/u/imelnyk)\
**Post date:** [January 12, 2026, 2:06pm UTC](https://openmc.discourse.group/t/primarly-neutrons-distribution-throughout-fuel-rods-of-a-hexagonal-lattice/6183/1 "2026-01-12T14:06:26Z")

</div>

Dear OpenMC users and experts,

I’m wondered whether it’s possible to distribute primarly neutrons only across fuel rods of a hexagonal fuel assembly. I’m working on a WWER-440 fuel assembly modeling and would like to use a source distribution similar to KENO-VI start data type 0 (NST=0): primaries are uniformly distributed throughout fissile rods (4 types of “red” circles on the geometry image below).

What kind of external source would you suggest to use there? Does it require using of a compiled source? Probably, there is a recommended approach for setting the source for hexagonal assemblies?

Best regards,

Ihor

 ![image](https://global.discourse-cdn.com/free1/uploads/openmc/original/2X/d/dc9e6053c5e9cefae404b018b94abbb5ee739836.png)

---

<div class="post-metadata">

**Author:** ![nuclearkevin](https://yyz2.discourse-cdn.com/free1/user_avatar/openmc.discourse.group/nuclearkevin/32/4190_2.png) [@nuclearkevin](https://openmc.discourse.group/u/nuclearkevin)\
**Post date:** [January 13, 2026, 4:12pm UTC](https://openmc.discourse.group/t/primarly-neutrons-distribution-throughout-fuel-rods-of-a-hexagonal-lattice/6183/2 "2026-01-13T16:12:17Z")

</div>

The best way to get a uniform distribution through fuel pins is to use a [source constraint](https://docs.openmc.org/en/stable/pythonapi/generated/openmc.SourceBase.html). Something like the following should work:

`min_extents = (-1., -1., -1.)`  
`max_extents = (1., 1., 1.)`  
`spatial = openmc.stats.Box(lower_left=min_extents, upper_right=max_extents)`  
`source = openmc.IndependentSource(space=spatial, constraints={‘domains‘ : [FUEL_MATERIAL], ‘fissionable‘ : True})`

Replace `min_extents` and `max_extents` with the bounding box for your geometry, and `FUEL_MATERIAL` with the `openmc.Material` representing the fuel. You can also use an `openmc.Cell` or `openmc.Universe` in `FUEL_MATERIAL`.

---

<div class="post-metadata">

**Author:** ![imelnyk](https://avatars.discourse-cdn.com/v4/letter/i/958977/32.png) [@imelnyk](https://openmc.discourse.group/u/imelnyk)\
**Post date:** [April 2, 2026, 7:05am UTC](https://openmc.discourse.group/t/primarly-neutrons-distribution-throughout-fuel-rods-of-a-hexagonal-lattice/6183/3 "2026-04-02T07:05:03Z")

</div>

Hi @nuclearkevin ,

Many thanks for the advice and sorry for late reply!

It finally works for me! Unfortunatelly, there is no hexagonal mesh in OpenMC, so I coudn’t properly track Shannon entropy across the entire assembly, but the results are very close (almost the same) to KENO-VI results, therefore I expect good convergense even setting a relatively small number of generations.
