DagMC Geometry - "Open MC aborted unexpectedly"

Interesting. With that feature is it then possible to insert multiple DagMC models into an OpenMC CSG model as separate universes? The reason I ask is I’m running into a problem importing the rest of my rector model into Cubit. The total number of volumes is correct, but it’s merging some volumes and separating others so that it does not match the separation of parts in my CAD model. I was thinking that a potential workaround would be to export each volume separately from Onshape, convert each to h5m in cubit, and then import them into the same OpenMC model.

I’d like to try that in the interest of reducing runtime. I think my CPU is AMD so I’ll do some digging on what other people have done.

With that feature is it then possible to insert multiple DagMC models into an OpenMC CSG model as separate universes?

Yep! It should be possible to use as many DAGMC universes as you like. You can replicate geometry this way as well if that’s useful for your model.

The total number of volumes is correct, but it’s merging some volumes and separating others so that it does not match the separation of parts in my CAD model.

So are you saying that the number of volumes in your DAGMC file after exporting from Cubit isn’t the same as the number of volumes in the CAD model upon exporting? That would be unexpected behavior for the DAGMC plugin that I’d like to look into.

I’d like to try that in the interest of reducing runtime. I think my CPU is AMD so I’ll do some digging on what other people have done.

Nice! I’d be curious to hear about how it goes. The first thing I would try is making sure that any of the AVX* options are disabled in the CMake configuration of Embree. The SSE options should be fine to leave enabled. My understanding is that those instructions are supported on nearly all AMD chips.

edit: Nevermind on the below! I tried importing the model as a .step file instead of a .sat file and it worked. This also preserved all the part names that I had on Onshape. Seems like .step is the way to go.

The number of volumes is actually the same (coincidentally), but the parts are not grouped correctly. For example, under “Volume 1”, I might have two parts that are not touching, and that are defined as separate parts in my Onshape model. Under “Volume 2”, I have two parts that are touching but are defined as separate parts in my model. This also means that some volumes are missing parts that should be under the same volume. This is an issue because the material assignment in OpenMC is tied to the volume id in cubit. My current plan is to import them as separate files & universes, but let me know if you have thoughts.

Ok thanks – will let you know how that goes.

I tend to use separate CAD files for separate materials. It is not very elegant but does allow me to keep track of materials through the conversion process. I would be keen to see a volume based approach that loads up a single CAD file and assigns materials based on volume ids. Perhaps that is something to add to cad_to_h5m package in the future

@pshriwise , @Shimwell

Hey guys,

As an FYI, I got double-down working on my system, thanks for the tip Patrick!

I think the issue was that I’m running on an AMD CPU which is incompatible with AVX which is what Embree uses by default. I added these two lines to the cmake config in the Dockerfile and the issue was resolved:

    -DEMBREE_MAX_ISA=NONE \

    -DEMBREE_ISA_SSE42=ON \

For some more detail, before edit:

    cmake ../embree -DCMAKE_INSTALL_PREFIX=/embree \
                    -DEMBREE_ISPC_SUPPORT=OFF && \

After:

    cmake ../embree -DCMAKE_INSTALL_PREFIX=/embree \
		            -DEMBREE_MAX_ISA=NONE \
		            -DEMBREE_ISA_SSE42=ON \
                    -DEMBREE_ISPC_SUPPORT=OFF && \

The simulation now runs significantly faster. Thanks for the help guys.

Best,
Luke

Nice @LukeLabrie! Thanks for trying out those options. I didn’t think it would be too bad and I’m glad to hear it’s helping to accelerate your simulations. Going to bookmark this convo for others looking to use Embree on AMD machines.

Perhaps we should make this the default compile for double down use in DAGMC add this to the Readme for double-down?

I compiled with the default CMake config option AVX2 on my Ryzen 3700x processor without any error.

BTW @LukeLabrie Which Ryzen CPU you’re using? Did you try with ISA flag to AVX EMBREE_ISA_AVX=ON? It should give 2x performance boost.

Hm, interesting. I’m using a Ryzen 5 4500U.

Thanks! I’ll give that a go.