mit-crpg / OpenMOC

A method of characteristics code for nuclear reactor physics calculations.
https://mit-crpg.github.io/OpenMOC/
Other
149 stars 83 forks source link

Can the OpenMOC program build fuel plate elements? #488

Open David-sys-max opened 2 months ago

David-sys-max commented 2 months ago

Hello everyone, I have been looking for many examples related to OpenMOC, but I haven't found any concerning plate-type fuel elements. This is a single plate-type fuel element that I built using the OpenMOC program, but I always encounter kernel crashes, which I believe is due to issues in the geometric modeling. Additionally, if the rectangle is drawn as a flat source region, it is obviously non-uniform. So, how does OpenMOC address the issue of drawing a flat source region for plate-type fuel elements? Could someone help me check this? Thank you very much. 1 2 3

4 5 6 7 8
gridley commented 2 months ago

My suggestion is to give up on this. The geometry engine in OpenMOC appears to be EXTREMELY shaky as soon as you move away from circles in a square array. This code is basically unmaintained at this point.

David-sys-max commented 2 months ago

Thank you for your explanation. Are you saying that for rectangular elements, the results from OpenMC and OpenMOC would differ significantly?

gridley commented 2 months ago

If it's very wrong, then yes.

GiudGiud commented 2 months ago

See my response on the mailing list, the geometry definition is incorrect in the script.

If the tests pass for OpenMOC pass on your machine it can handle these shapes.

David-sys-max commented 2 months ago

Thank you very much for your detailed answer. I have made detailed modifications. Please allow me to ask a few more questions. I am verifying the few-group cross-sections output by OpenMC for OpenMOC verification. However, the results differ greatly, one is 1.5 and the other is 0.08. I have carefully checked the cross-section values as well as the geometry, is it a problem with the flat source region division? OpenMOC seems to have poor uniformity in drawing flat source regions for rectangular programs. This is the input cards are for OpenMOC. Can you help me figure this out? Thank you very much.

1 2 3 4
GiudGiud commented 2 months ago

the moderator cell is still wrong. You need 8 planes and a combination of unions and intersections of half plane to define it.

GiudGiud commented 2 months ago

The easiest way to redo your moderator cell will be to create 4 cells, one for each side. Please make sure they do not overlap

David-sys-max commented 2 months ago

Thank you very much for your answer. I have modified my geometry, but after calculating with OpenMOC, the results are still quite different. I personally feel that there is still a problem with the modeling in OpenMOC. Here are a few pictures, the left side is the modeling in OpenMOC, and the right side is the modeling in OpenMC. Could you please take a look for me? Thank you very much!

1 2 3 4 5 6 7
GiudGiud commented 2 months ago

if you are using water, scattering is anisotropic in water so you need to use the P0 transport correction. EDIT: this is likely not enough to fix the problem

2G is also not enough for heterogeneous neutronics calculations. Note that you can use OpenMC in multi-group mode and the results should be close to OpenMOC

I would remove the sectors from the cell discretization. It's not typical for rectangular geometries. What does the FSR mesh look like? Does it solve with CMFD?

The results do look pretty bad at this point.

GiudGiud commented 2 months ago

At this point, I would try the flat source solver instead of the linear source (and remove the sectors). If that does not fix it, then someone would have to dig deeper and there are no active maintainers for this project.

David-sys-max commented 2 months ago

Thank you very much for your help. I have checked carefully and found the moderator is no overlap. The results between 2D and 3D are the less error.At the same time,I have corrected the total to the transport,it,s the less error between P0 and P1. By the way, what does the linear source  mean? Does it need to be set separately?Thank u very much.

---Original--- From: "Guillaume @.> Date: Thu, Sep 5, 2024 09:15 AM To: @.>; Cc: @.**@.>; Subject: Re: [mit-crpg/OpenMOC] Can the OpenMOC program build fuel plateelements? (Issue #488)

At this point, I would try the flat source solver instead of the linear source. If that does not fix it, then someone would have to dig deeper and there are no active maintainers for this project.

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

GiudGiud commented 2 months ago

The solver is currently set to use linear source region. This is because you use the CPULSSolver. You want to set it to use flat source region (CPUSolver), for debugging purposes. Most examples will be using the flat source already, you must have started from one that used the linear source.

How big is the discrepancy between openmc and openmoc now? Can you get agreement on an infinite medium case first?

David-sys-max commented 2 months ago

When I used the total cross section, the deviation was very large: openmc was 1.572 and openmoc was 0.03. When I used the transport output cross section, openmoc was 1.153.Sorry,I've seen a lot of official openmoc examples, but I still don't know how to set the flat source,can u help me,thanks!

---Original--- From: "Guillaume @.> Date: Fri, Sep 6, 2024 00:55 AM To: @.>; Cc: @.**@.>; Subject: Re: [mit-crpg/OpenMOC] Can the OpenMOC program build fuel plateelements? (Issue #488)

The solver is currently set to use linear source region. This is because you use the CPULSSolver. You want to set it to use flat source region, for debugging purposes. Most examples will be using the flat source already, you must have started from one that used the linear source.

How big is the discrepancy between openmc and openmoc now? Can you get agreement on an infinite medium case first?

with a single region made of fuel first

with the two regions, both made of fuel next (should give the same result)

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

GiudGiud commented 2 months ago

Interesting. Something must be wrong in the total XS

    solver = openmoc.CPUSolver(track_generator)

see this input for flat sources https://github.com/mit-crpg/OpenMOC/blob/develop/sample-input/cosine-source/cosine-source.py

David-sys-max commented 2 months ago

After I changed CPULSSolver to CPUSolver, the results from OpenMOC seemed to remain unchanged. Additionally, when I switched the material of the moderator cell to fuel, there was still a significant difference between the results from OpenMC and OpenMOC, with one being 1.18 and the other 1.14. It appears that OpenMOC may not handle slab geometry components very well.

GiudGiud commented 2 months ago

There are a lot of parameters to converge in MOC before reaching this conclusion. Also 2 groups with no equivalence factors is far from the state of the art for MOC

David-sys-max commented 2 months ago

Thank you very much for your patient answers, I will try again.