I’m porting a DAGMC geometry into OpenMC calculation. Since CAD model normally does not define fluid/void, I’d like to use the implicit complement material feature to fill in moderator.
From DAGMC instruction (https://svalinn.github.io/DAGMC/usersguide/codes/openmc.html), it looks like I can just add a group with the following syntax to the graveyard volume, then DAGMC/OpenMC would pick this up automatically, and assign the material to the complement geometry.
group “mat:9_comp” add vol 102 #102 is the graveyard volume
However, when running OpenMC, I found that whether to define material “9_comp” does not change the eigenvalue, which means it does not assign the moderator material to the complement geometry. Any insights on how to do this correctly? Do I have to define the moderator manually?
As far as I understand your question, you don’t need to assign material in the graveyard volume. The graveyard represents the outside world, and particle that enters it will be terminated.
group “mat:Graveyard” add volume 102
That’s it. You don’t have to create any graveyard material in materials.xml file. Take a look at the following link
That’s correct. You should be able to specify a material for the implicit complement in that way. If it’s ok to share, can you drop your model here for me to have a look at?
Thanks for offering to look at the model. I’ve uploaded it. It’s just a simple test (a UO2 cylinder). As you can see from the Trellis commands, I defined two bounding boxes (in between is the graveyard). And I was hoping that I could define the moderator between the UO2 cylinder and the inner shell of the graveyard.
Then if you look at the material definition of OpenMC (build-xml.py), I assume that I should be able to define the moderator by setting the name of water as “mod_comp”. However, when I changed the name to some arbitrary letters, I found eigenvalue is unchanged. So I assume the moderator material may not be correctly applied. Did I miss something?
Ariful, thanks for pointing me to the sites with useful information.
I think the graveyard is currently filled with just a void / vacuum material but I do recall some discussion about allowing the graveyard to contain a different material. Not sure of that feature ever got implemented. But you could try posting on the dagmc forum https://groups.google.com/forum/m/#!forum/dagmc-users
The graveyard geometry itself is normally a thin walled box that encases the entire geometry. While the undefined regions inside become an implicit void but they are not actually the graveyard itself.
I guess that making the void as an CAD solid is not so difficult as it can be done via a series of Boolean cuts. Once you have the void as a solid it could be assigned a material like any other CAD geometry.
Thanks for the clarification. Yeah the material of the graveyard does not matter. It was just the syntax discussed at the bottom of this page showing that the material defined in the graveyard can be used as a complement material.
You are right it’s probably a question better for the DAGMC forum, and there may be easy ways to explicitly define the complement geometry/material in CAD too.
The empty spaces between solids defined in the CAD model are all added to a single efficient volume known as the “implicit complement”. It is possible to assign a material to this volume - although currently on a single material. This discussion is clarifying the process for assigning such a material.
As another DAGMC developer, I’m keeping an eye on this. It may be OpenMC-specific, so I’ll check with Patrick who is already looking into this and we’ll find a solution.
I completely misunderstood the question. Sorry about that. Thanks for the explanation, Paul.
Yesterday, I tried to assign a material to the implicit complement, but I got warning “Graveyard volume is not specified”.
group “mat:fuel” add volume 2
group “mat:3_comp” add volume 1
imprint body all
merge all
export dagmc “no_watertight.h5m” faceting_tolerance 1.0e-4
Pretty simple model, a fuel pin, and graveyard volume. What is the correct way to do this, Paul?
Yuxuan, You have to create moderator volume manually via boolean cut operation. I do it by creating a moderator volume manually in the CAD model and assign material in it. I hope you have already figured it out. If you need, I can give you a single U02 fuel pin CAD model.
Thanks Paul. I’ll be happy to give a try on whatever Patrick will come up with.
Pranto, yes it’s possible to create the moderator by boolean calculations in CAD (or Trelis). I’m just a little unsure if this would be efficient/convenient for a realistic core, since it needs to be done by subtracting all volumes (but I haven’t run any large problems). I’m guessing here that the implicit complement feature in DAGMC is provided to simplify this procedure.
The implicit complement is intended to prevent these Boolean operations for large complex models. We would call a region defined in this way an “explicit complement” because it is formed by explicit Boolean operations. The “implicit complement” is defined by automatically detecting which surfaces lie on a boundary between a region that is represented in the solid model and one that is not.
The implicit complement was developed because we found that Boolean operations on large complex geometries often resulted in robustness issues. One solution is to manually subdivide your geometry to create multiple explicit complement regions and another was to introduce the implicit complement.
Sorry to bump an old issue, but I came across this thread and it seemed relevant to some work I’m doing, so I have a couple of questions.
As far as I understand, the way to assign implicit complements for DAGMC geometries is to assign the implicit complement material to the graveyard volume. However in the development branch in OpenMC, DAGMC geometries are now treated as universes, so DAGMC geometries don’t necessarily have graveyards, correct? In this case, is there a new way to assign the implicit complement?
I currently am using boolean cuts and assigning the material explicitly, as has been mentioned in this thread, and it seems to be working ok. But I’m curious if there is still the option of handling implicit complements with DAGMC geometries without graveyards.