I am trying to replicate the results of a paper and am stuck in constructing the geometry. While I have managed to build a single layer of this device, I would like to construct multiple more layers along 1 axis. I am getting stuck while using openmc.Lattice or openmc.Rectlattice when doing this.
Ok… i kinda solved it. Instead of using a lattice, I just cloned and translated the cells and that helped fix the problem. But it’s kinda repetitive. If anyone looks into this, can’t this be solved by using a rectangular lattice that has (a x 1) dimensions where ‘a‘ is the no. of layers? I believe that approach should be fundamentally sound too, as the motif is a single ‘layer‘ of this amplifier and the lattice is an (a x 1) rectangle?
I think you can use np.tile in your lattice universe if you want to make it simple. Then you need to make sure that your pitch size can cover the universe you create for the lattice. In this example below, I used (38.10, 195.0) since 195 is your fuel plate’s width (97.5*2). most of the time, I didn’t declare my lattice dimensions, so I am not using that in the sample below.
I think it was happening since you declared your left fuel plate at the origin, so that the water surrounding is on the right.
While in general, the center of the universe that is repeated in the lattice should be at the origin. So I think you need to move your plate to the left so the center point of this filling universe (fuel plate and the surrounding water) is at the origin. Also, you need to declare the filling material on the left side of the fuel plate when needed.
Then I am not usually used void cell as the outer universe of the lattice, `lattice.outer = void_uni`, I think it could be water or the reflector material, `lattice.outer = openmc.Universe(cells=[openmc.Cell(fill=water)])`
Hi Wahid, thanks for the response! I used clones and translation to create the amplifier. Geometrically, it is consistent with the figure shared in the paper.
But, using lattices, I am getting those gaps between the layers that I don’t want, and I observe that one of the constituents of the layer - a tall thin portion (the thermal absorber) is not present in some of the replicated layers. Any idea how I can rectify those problems?
Also, with my current geometry (in fig.), I am getting an error: WARNING: Cannot reflect particle ** off surface in a lower universe - when running an eigenvalue calculation. I have a point source at (0, 0, 0) releasing neutrons along the +ve x direction. Any idea where I am going wrong?
“But, using lattices, I am getting those gaps between the layers that I don’t want, …“
That gap layer came from the reality that you didn’t model anything on the left side of your fissile material. Hence, your lattice was not developed properly.
“… a tall thin portion (the thermal absorber) is not present“
This layer of 0.3 cm absorber was thin enough that we needed a higher pixel to see it on the plot.
“… error: WARNING: Cannot reflect particle ** off surface in a lower universe - when running an eigenvalue calculation.“
I also saw that you assigned a reflective boundary in a non-proper surface, such as the surface of ±65 cm and ±97.5 cm. In general, if you want to use a boundary condition, you can assign this to the outermost surface of your model, so other surfaces will use a default transmission boundary condition.
At last, I recommend that you turn on the geometry debug after developing a new geometry, to make sure that you didn’t have any overlapping cells. You can turn it off later, `openmc.run(geometry_debug=True)`