AUNF Mini-Canister Example Case#410
Conversation
|
Job Precheck, step Python: black format on f0ef0e4 wanted to post the following: Python black formattingYour code requires style changes. A patch was generated and copied here. You can directly apply the patch by running the following at the top level of your repository: Alternatively, you can run the following at the top level of your repository: |
|
Does this close #293? If so, please edit the top comment and note it for automatic closure. |
|
Here is the example case for the AUNF experiments. We still need to do some work on the markdown files but the infrastructure should be mostly there. Questions:
|
Nice work Evan! For 1, it depends on what you are comparing in your example. If you are currently building the model only for “constant pressure,” then it is sufficient to compare only the “constant pressure” results in CSVdiff. In general, please ensure that all gold files (from simulations) have corresponding tests. In addition, please also add the Exodiff tests for the simulations as well. , will call these symlinks to produce figures in the expected locations. This approach supports automatic regeneration of comparison figures and keeps them up to date with the latest gold results. In addition, please apply the I hope these explanation make sense to you! @simopier Please let me know if these answer make sense to you or not. Feel free to add more comments. |
|
f0ef0e4 to
5cb6647
Compare
|
Job Documentation, step Sync to remote on 429c2ff wanted to post the following: View the site here This comment will be updated on new commits. |
simopier
left a comment
There was a problem hiding this comment.
Here is a quick review (not thorough yet).
I'll need to review this in more depth before I can fully comment on the RMSPE metric vs another one. Try to fix all the failures being flagged by the tests.
Let me and Lin know if you have any questions.
5cb6647 to
c719706
Compare
… steel-only model (Ref. idaholab#293)
… file and deleted unnecessary codes in preparation for PR. Will continue cleanup for gas_steel model
…for gas_steel and documentation then should be ready for PR)
… and RunCommand for python files tests. Added references to tmap8.bib Added basic markdown file to describe example case in documentation (needs edits) Added gold files for tests Added picture of mini canister from SRNL report (Ref. idaholab#293)
- Added exodiff tests for both input files - reduced element size in gas phase for gas-steel model to remove heavy label for tests - Python black formatting Update 1 for PR: - Update content/examples/figures with two comparison python files as symlinks (Why is this needed?) - Update documentation to reflect new example case - Fixed bug in tests (Closes idaholab#293)
…wo python comparison scripts to one, bib changes, documentation changes, and test changes
…educe code duplication, resulting in new base input file and .param file. Documentation, python files, input files, and gold folder were all adjusted to fit this new structure
c719706 to
14ed1f2
Compare
lin-yang-ly
left a comment
There was a problem hiding this comment.
@edbworth It looks nice! I have fews comments for current PR. Just let me know if you have any questions.
Looks like the tests are taking longer here than on my local machine (<2 s). Let me know if this is fine, or if I should try to reduce the testing time further. |
Since the HPC do run simulation slower, It is good to me only if the simulation run <2 s in local. |
lin-yang-ly
left a comment
There was a problem hiding this comment.
@edbworth, Thanks for these updating! I have few more comments for current PR. Please let me know if you have any questions.
c5f8a81 to
f8d406c
Compare
Co-authored-by: Lin Yang <132409718+lin-yang-ly@users.noreply.github.com>
|
Since we are using axisymmetric coordinates, we can present the equations in the documentation in terms of the radius |
Lin and I met this morning and I finished up implementing his requested changes. The PR is ready for a more thorough review :) |
simopier
left a comment
There was a problem hiding this comment.
Looks good overall, thank you @edbworth and @lin-yang-ly!
Simple suggestions from PC's code review. Rest of reviewer comments will be addressed in next commit. Co-authored-by: Pierre-Clement Simon <pierreclement.simon@gmail.com>
|
The documentation fails with these errors: I didn't check, but these pps might be in the base file, which would explain this error. |
|
@lin-yang-ly Looks like HPC was down when tests tried to run. Can you restart the tests please? |
|
Job HPC on 97c1ef5 : invalidated by @lin-yang-ly |
simopier
left a comment
There was a problem hiding this comment.
Getting there, but I do have additional comments.
Let me know if you have any questions.
|
|
||
| \begin{equation} \label{eq:assumed_pressure} | ||
| P = 0.10 \times 24 \text{ psi} \approx 16{,}547 \text{ Pa}, | ||
| P = P_c \coloneqq 0.10 \times 24 \text{ psi} \approx 16{,}547 \text{ Pa}, |
There was a problem hiding this comment.
| P = P_c \coloneqq 0.10 \times 24 \text{ psi} \approx 16{,}547 \text{ Pa}, | |
| P = P_c = 0.10 \times 24 \text{ psi} \approx 16{,}547 \text{ Pa}, |
|
|
||
| !style halign=left | ||
| For a semi-infinite slab with a constant-concentration boundary condition, the diffusion front advances as $\ell(t) = \sqrt{\pi D_s t}$, defined here as the $r$-intercept of the tangent line to the concentration profile at the inner surface. This analytical result provides a straightforward check that the numerical diffusion is correctly implemented. The simulated diffusion front is computed via the `simulated_diffusion_length` postprocessor as the $r$-intercept of the tangent line using the interface concentration and gradient. [fig:diffusion_length] shows the simulated diffusion front length, using a constant pressure, compared to the analytical expression. | ||
| As an internal consistency check, the total hydrogen mass integrated over the steel domain (`annular_cylinder_total_mass_steel`) is compared against the time-integrated net diffusive flux across the inner and outer boundaries (`annular_cylinder_time_integrated_flux`). Both integrals are weighted for the axisymmetric cylindrical geometry and then scaled by the canister height $h$ to represent 3D mass in $\mathrm{\mu}$mol H. [fig:steel_conservation] shows the percent difference between the two quantities as a single-curve conservation metric, defined as $\left|\,\mathrm{flux}/\mathrm{mass} - 1\,\right| \times 100\,\%$. The metric is highly sensitive to the postprocessors' small values within the first few timesteps, but quickly converges to a small value, and can be further reduced by refining the mesh and timestep. |
There was a problem hiding this comment.
| As an internal consistency check, the total hydrogen mass integrated over the steel domain (`annular_cylinder_total_mass_steel`) is compared against the time-integrated net diffusive flux across the inner and outer boundaries (`annular_cylinder_time_integrated_flux`). Both integrals are weighted for the axisymmetric cylindrical geometry and then scaled by the canister height $h$ to represent 3D mass in $\mathrm{\mu}$mol H. [fig:steel_conservation] shows the percent difference between the two quantities as a single-curve conservation metric, defined as $\left|\,\mathrm{flux}/\mathrm{mass} - 1\,\right| \times 100\,\%$. The metric is highly sensitive to the postprocessors' small values within the first few timesteps, but quickly converges to a small value, and can be further reduced by refining the mesh and timestep. | |
| As an internal consistency check, the total hydrogen mass integrated over the steel domain (`annular_cylinder_total_mass_steel`) is compared against the time-integrated net diffusive flux across the inner and outer boundaries (`annular_cylinder_time_integrated_flux`). Both integrals are weighted for the axisymmetric cylindrical geometry and then scaled by the canister height $h$ to represent 3D mass in $\mathrm{\mu}$mol H. [fig:steel_conservation] shows the percent difference between the two quantities, defined as $\left|\,\mathrm{flux}/\mathrm{mass} - 1\,\right| \times 100\,\%$. The metric is highly sensitive to the postprocessors' small values within the first few timesteps, but quickly converges to a small value, and can be further reduced by refining the mesh and timestep. |
| id=fig:diffusion_length | ||
| caption=Comparison of the simulated and analytical ($\sqrt{\pi D_s t}$) diffusion front length in the steel wall over 0.25 years. | ||
| id=fig:steel_conservation | ||
| caption=Conservation of mass check for the steel-only model: percent difference $\left|\,\mathrm{flux}/\mathrm{mass} - 1\,\right| \times 100\,\%$ between the accumulated boundary flux and the total H mass in the steel domain for $t>1$ day. |
There was a problem hiding this comment.
| caption=Conservation of mass check for the steel-only model: percent difference $\left|\,\mathrm{flux}/\mathrm{mass} - 1\,\right| \times 100\,\%$ between the accumulated boundary flux and the total H mass in the steel domain for $t>1$ day. | |
| Conservation of mass for the steel-only model: percent difference $\left|\,\mathrm{flux}/\mathrm{mass} - 1\,\right| \times 100\,\%$ between the accumulated boundary flux and the total H mass in the steel domain for $t>1$ day. |
| !listing test/tests/mini_canister/steel_only.i link=false block=Postprocessors/exact_diffusion_length | ||
|
|
||
| !listing test/tests/mini_canister/steel_only.i link=false block=Postprocessors/simulated_diffusion_length |
There was a problem hiding this comment.
| !listing test/tests/mini_canister/steel_only.i link=false block=Postprocessors/exact_diffusion_length | |
| !listing test/tests/mini_canister/steel_only.i link=false block=Postprocessors/simulated_diffusion_length |
| !style halign=left | ||
| For a semi-infinite slab with a constant-concentration boundary condition, the diffusion front advances as $\ell(t) = \sqrt{\pi D_s t}$, defined here as the $r$-intercept of the tangent line to the concentration profile at the inner surface. This analytical result provides a straightforward check that the numerical diffusion is correctly implemented. The simulated diffusion front is computed via the `simulated_diffusion_length` postprocessor as the $r$-intercept of the tangent line using the interface concentration and gradient. [fig:diffusion_length] shows the simulated diffusion front length, using a constant pressure, compared to the analytical expression. | ||
| As an internal consistency check, the total hydrogen mass integrated over the steel domain (`annular_cylinder_total_mass_steel`) is compared against the time-integrated net diffusive flux across the inner and outer boundaries (`annular_cylinder_time_integrated_flux`). Both integrals are weighted for the axisymmetric cylindrical geometry and then scaled by the canister height $h$ to represent 3D mass in $\mathrm{\mu}$mol H. [fig:steel_conservation] shows the percent difference between the two quantities as a single-curve conservation metric, defined as $\left|\,\mathrm{flux}/\mathrm{mass} - 1\,\right| \times 100\,\%$. The metric is highly sensitive to the postprocessors' small values within the first few timesteps, but quickly converges to a small value, and can be further reduced by refining the mesh and timestep. | ||
|
|
There was a problem hiding this comment.
| In the input files, these two postprocessors are defined as: | |
| !listing test/tests/mini_canister/steel_only.i link=false block=Postprocessors/exact_diffusion_length | |
| !listing test/tests/mini_canister/steel_only.i link=false block=Postprocessors/simulated_diffusion_length | |
| id=fig:gas_steel_conservation | ||
| caption=Conservation of mass check for the gas-steel model: percent difference $\left|\,(\mathrm{flux}+\mathrm{source})/\mathrm{mass} - 1\,\right| \times 100\,\%$ between the accumulated boundary flux plus source term and the total H mass in the domain for $t>1$ day. | ||
|
|
||
| #### Gas-Phase Hydrogen Yield Validation |
There was a problem hiding this comment.
| #### Gas-Phase Hydrogen Yield Validation | |
| #### Gas-Phase Hydrogen Yield Calculations |
| caption=Comparison of TMAP8 total gas-phase hydrogen mass against SRNL experimental cumulative H$_2$ yield data. | ||
|
|
||
| #### Comparison of Steel Hydrogen Uptake Between Models | ||
| #### Partial Pressure Validation |
There was a problem hiding this comment.
| #### Partial Pressure Validation | |
| #### Partial Pressure Calculations |
It needs to be very clear that this is NOT a validation.
| caption=Comparison of TMAP8 total gas-phase hydrogen mass against SRNL experimental cumulative H$_2$ yield data. | ||
|
|
||
| #### Comparison of Steel Hydrogen Uptake Between Models | ||
| #### Partial Pressure Validation |
There was a problem hiding this comment.
Can you explain what this section brings in addition to the previous results?
| caption=Conservation of mass check for the gas-steel model: accumulated boundary flux plus source term vs. total H mass in the domain. | ||
| id=fig:model_comparison | ||
| caption=Comparison of total H mass in the steel wall (left axis) and fraction of total H inventory in the steel (right axis, dashed) between the steel-only (SRNL pressure fit) and gas-steel simulations. | ||
|
|
There was a problem hiding this comment.
| The conclusion of this analysis is that only a small fraction of hydrogen permeates into the steel canister over the relevant time frame in these conditions. This observation is supported by both models. |
|
|
||
| !style halign=left | ||
| Because the gas-steel problem is nonlinear (the interface couples $C_g$ and $C_s$ through a square-root relationship), [gas_steel.i] uses `solve_type = Newton` with `line_search = NONE`. | ||
| Because the interface is nonlinear, [gas_steel.i] uses `solve_type = Newton`. Both models simulate 0.25 years (≈ 91.3 days) using a [BDF2.md] time integration scheme. This model is equipped with an [IterationAdaptiveDT.md] adaptive timestep that targets 5 Newton iterations per step. |
There was a problem hiding this comment.
Do not mention both models here. You should be focusing on the model being discussed. If it is true for the other model as well, then specify that there too.
… derivatives at the boundary properly using a postprocessor rather than at the element center using AuxKernels on Constant Monomial variables. Updated point value postprocessors at boundaries to more robust SideDiffusiveFlux postprocessors.
|
Still need to input PC's comments here. No need to run tests until next commit. |
|
Job Build test summary, step Build test summary on 429c2ff wanted to post the following: Test summaryCompared against 681717b in job civet.inl.gov/job/3893670. Added tests
|
Adding an example case that closes issue #293
Reason
Adding an example case to further demonstrate the functionality and abilities of TMAP8 for hydrogen transport in used nuclear fuel.
Design
2 input files
4 tests
gold folder
Documentation
Impact
TMAP8 will be used to characterize material behavior in new fuel storage technologies