-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Geometry Homogenization #13
Comments
We discussed a notional approach for this over call yesterday. The "simplest" way would be to set up one volume calculation per mesh element where the bounds of the enclosing rectangular prism match the bounding box of the mesh element. Determining element bounding boxes for our regular mesh types should be fairly straightforward. For unstructured meshes, I'm not sure how that will work (@pshriwise is there an easy way to get per-element BBs for unstructured meshes?). @pshriwise pointed out that it may be easier and/or more efficient to implement a method on the C++ side since we already have a capability to uniformly sample the volume of a mesh element. Although now that I'm thinking about this, does that really help us in determining the volume fraction? |
I think where it helps us is in sampling efficiency when doing these volume calculations. I can see two roads to doing this:
One extra step that's needed for approach 2 is determining the element volume so the volume fractions are meaningful, but we can compute that analytically fairly easily for all the mesh types we're looking to support in this proejct. Whereas with 1 we can calculate the volume of the element based on the rejection ration of points inside/outside the volume calculation box. I think the win with approach 2 is sampling efficiency. We're guaranteed to have points inside the box and don't have to worry about bounding boxes tightly fitting those elements. Looking at element types beyond the scope of this project and what we have implemented in OpenMC (curvilinear elements), approach 1 could be handy to keep in mind. It's sometimes easier to compute point containment than it is to compute volumes for these elements and 1 would give us a way of doing this. With all that written out, I do think that approach 2 would be the most elegant for our purposes. |
Thanks, that's the answer I was looking for 😄 Looking at our current capabilities, we already have the ability to determine element volumes for all mesh types (@pshriwise pointed out to me that this may not be robust for more exotic element types in libMesh). The position sampling is already implemented for our unstructured mesh classes, but not the structured meshes yet. Edit: @pshriwise does have position sampling implemented on his |
I've started a new
We need to be careful on the last step to account for voids properly. Fortunately, |
PR for the volume fraction capability has been submitted, openmc-dev/openmc#2802 |
PR for computing homogenized materials has been submitted, openmc-dev/openmc#2971 |
I crossed off the material volume fractions with MPI above. I don't see an easy way to go about this since we are relying on |
For mesh-based R2S workflows, we need a way to compute volume fractions of materials within mesh elements in order to determine a homogenized composition for activation purposes.
The text was updated successfully, but these errors were encountered: