The sculpt developer was kind enough to respond to your query. Here is his edited reply.
A few suggestions.
Pillow = 2
Pillowing curves won’t be effective in this case because the geometry is too complex. The objective of pillow = 2 is to put a pillow adjacent every curve in the model so that the “real” geometry can be captured. Since RVEs are generally statistical models, you don’t generally need to exactly capture every curve. In my experience, using curve_op_threshold = 0.25 gives sculpt more freedom to move nodes off of curves to improve quality if it can’t achieve a minimum quality. The 0.25 in this case is the SJ (edit: Scaled Jacobian) threshold at which sculpt will allow nodes to float off of curves if an SJ of 0.25 can’t be achieved. It’s normally set to 0.1 as default.
Instead of pillow=2, use pillow=3 or pillow_boundaries=true. That puts a pillow at each of the six RVE faces and is necessary when you are doing any refinement near the boundaries.
Capture = 2
Don’t use capture for this problem. Capture is experimental and guarantee geometry is too complex to use for capture
Smooth = 8
I would use smooth = fixed_bbox for this case. The smooth=8 option should be deprecated. This will force the boundary nodes to lie exactly on the RVE faces
Adapt_levels = 2
Adapt_type = 6
Adapt_type = 6 will refine anywhere the material changes. This is good for capturing material interfaces. This is OK to use, however for this case, because so much going on, I suspect the majority of your volume will be refined, once you add in the transition elements. Won’t hurt to try, and you may save some DOF (edit: degrees of freedom). I would start with adapt_type turned off and instead split the cell_size in half or a quarter. Compare with what the result is with the original cell size and adapt_levels = 1 and 2.
Defeature = 1
I would experiment with adding defeaturing. This will attempt to remove small clusters of elements and protrusions that are difficult for Sculpt to manage. It takes some liberty with the geometry, so you will want to monitor how much it changes from the initial volume fractions. When using defeature, I recommend using the compare_volumes option which will dump a chart at the end of your log that compares the volume fraction on input with the final volume of the hex elements. If you know what the percent of each material should be, the element block volumes should be approximately the same.
He had some additional questions and comments.
-
Is the geometry periodic? If you have real geometry that extends beyond the RVE that repeats at a period equal to the RVE edge length, then you can use the periodic option. This treats the domain as if it was an infinite space so that nodes on the left exactly match those on the right. Those on the top match the bottom, etc. This allows the smoother to do continuous smoothing across the RVE boundaries without having an arbitrary plane that the nodes must stick to. It results in some jagged looking boundaries but can improve element quality overall.
-
I would suggest they review the sculpt pdf document on the Cubit site that describes various cases for RVEs and to get some ideas and examples:
https://www.sandia.gov/files/cubit/documents/SculptMicrostructuresSANDReport.pdf
Regarding the processor question, we did make some fixes in Coreform Cubit 2022.6 that fixed some licensing issues with trying to run Sculpt on a cluster. Are you running sculpt directly from inside Coreform Cubit or are you running from the command line? If you are using the command line, make sure you specify the processors correctly.
sculpt -i my_input_file.i -j 8
Let me know if you have further questions.
Thanks,
Karl