Skip to content

[WIP] Val 2i - Deuterium retention in neutron-irradiated single-crystal tungsten - #325

Draft
cticenhour wants to merge 36 commits into
idaholab:develfrom
cticenhour:isfnt-val-2g
Draft

[WIP] Val 2i - Deuterium retention in neutron-irradiated single-crystal tungsten#325
cticenhour wants to merge 36 commits into
idaholab:develfrom
cticenhour:isfnt-val-2g

Conversation

@cticenhour

@cticenhour cticenhour commented Nov 7, 2025

Copy link
Copy Markdown
Member

@cticenhour cticenhour changed the title Deuterium retention in neutron-irradiated single-crystal tungsten (Val-2g) [WIP] Deuterium retention in neutron-irradiated single-crystal tungsten (Val-2g) Nov 7, 2025
@cticenhour
cticenhour marked this pull request as draft November 7, 2025 21:09
@cticenhour cticenhour changed the title [WIP] Deuterium retention in neutron-irradiated single-crystal tungsten (Val-2g) [WIP] Deuterium retention in neutron-irradiated single-crystal tungsten Nov 11, 2025

@simopier simopier left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @cticenhour! I'm excited for this case to be added!

I left comments and suggestions even though this is still tagged as [WIP] because I was too curious to ignore it. It looks like the main thing missing is the documentation, correct?

Comment thread test/tests/val-2i/comparison_val-2i.py Outdated
Comment thread test/tests/val-2i/comparison_val-2i.py Outdated
Comment on lines +102 to +105
# tmap_flux_for_rmspe = numerical_solution_on_experiment_input(experiment_time, simulation_time_TMAP7, simulation_flux_left_TMAP7/2 + flux_environment)
# RMSE = np.sqrt(np.mean((tmap_flux_for_rmspe-experiment_flux)**2) )
# RMSPE = RMSE*100/np.mean(experiment_flux)
# ax.text(6000.0,0.85e18, 'RMSPE = %.2f '%RMSPE+'%',fontweight='bold')

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this commented out? Maybe it's just because this is still in WIP stage, but calculating the RMSPE between TMAP8's predictions and the experimental data is a good thing to add.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was commented out because it added complexity while I was working through adjusting the rest of the plot. It is planned to be re-added before this is merged.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

RMSPE values (for TMAP4 and TMAP8 simulation results against experimental data.....thought it would be an interesting point of comparison) were added in 8506bf3. Though, there are some quirks that needs to be ironed out. TMAP4 RMSPE looks reasonable, but TMAP8 RMSPE is off the charts (+15000%). Looks like there is an error or the data needs to be "cleaned" - like, we need to compensate for the environment or something. Need to explore further.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like the full data set has quite a bit of noise that was truncated out in the data plot:

val-2i_comparison_full

Do you have a good way off the top of your head to remove this "environment flux"? I see that an environment flux was calculated and used in the val-2d comparison script, but I am not sure if we can do the same here. Probably need to review the context in the documentation, first.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you talking about the values at 10^5? this sounds like basically 0, and it probably corresponds to the minimum detection limit. I don't think it's meaningful in any way. Masa might be able to confirm or deny that.

Comment thread test/tests/val-2i/experimental_data.csv
Comment thread test/tests/val-2i/tmap4_data.csv
Comment thread test/tests/val-2g/val-2g_temperature.py Outdated
Comment thread test/tests/val-2i/val-2i.i Outdated
[]

[Postprocessors]
[flux_surface_left]

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Specify units as a comment.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed in b2d204c.

Comment thread test/tests/val-2i/val-2i.i
Comment thread test/tests/val-2g/val-2g.i Outdated
Comment thread test/tests/val-2i/val-2i.i
Comment thread test/tests/val-2i/val-2i_temperature_history.py
@simopier simopier added the V&V Relevant to V&V label Dec 19, 2025
@cticenhour
cticenhour force-pushed the isfnt-val-2g branch 2 times, most recently from ffd05b1 to a9d8db5 Compare January 23, 2026 10:02
@cticenhour
cticenhour force-pushed the isfnt-val-2g branch 2 times, most recently from 64e353e to 71ff949 Compare March 17, 2026 03:05
@cticenhour

cticenhour commented Mar 17, 2026

Copy link
Copy Markdown
Member Author

Rebased on devel to fix conflicts with the current val-2g case. This case is now val-2i. Note that "outdated" or resolved discussion from former val-2g files in this PR are still labeled as val-2g. Currently unresolved comments and discussion auto-magically were updated by GitHub to reference the renamed files.

cticenhour and others added 18 commits March 16, 2026 21:24
Confirmed that temperature and diffusivity profiles over time look reasonable, and there is a reasonably high trapped population, but zero mobile concentration. Convergence fails over only a couple of timesteps.
…timestepper, and lower trap_per_free parameter
…concentration, and other parameter adjustments for clarity
…settings in input file, that did not impact results.
Use random sampling to reduce the density of the scatter plot of the experimental data - similar to what Masa's doing in the paper. Cannot tell what approach he is using the reduce the plot density.

As of this change, 10% of the data will be sampled and shown on the plot using the random sampler.
Co-authored-by: Pierre-Clement Simon <pierreclement.simon@gmail.com>
…ectly from the simulation.

Add temperature function to postprocessor output for use in scripts.

Start output of simulation data from timestep 0 to get the full temperature series.
@cticenhour cticenhour changed the title [WIP] Deuterium retention in neutron-irradiated single-crystal tungsten [WIP] Val 2i - Deuterium retention in neutron-irradiated single-crystal tungsten Mar 17, 2026
@cticenhour cticenhour changed the title [WIP] Val 2i - Deuterium retention in neutron-irradiated single-crystal tungsten Val 2i - Deuterium retention in neutron-irradiated single-crystal tungsten Mar 18, 2026
@moosebuild

Copy link
Copy Markdown

Job Precheck, step Python: black format on 73ff72b wanted to post the following:

Python black formatting

Your 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:

curl -s https://mooseframework.inl.gov/tmap8/docs/PRs/325/black/black.patch | git apply -v

Alternatively, you can run the following at the top level of your repository:

black --config pyproject.toml --workers 1 .

@moosebuild

Copy link
Copy Markdown

Job Build test summary, step Build test summary on b41cfdf wanted to post the following:

Test summary

Compared against c837769 in job civet.inl.gov/job/3665797.

Added tests

Test Time (s) Memory (MB)
test:val-2i.val-2i_673K_light 4.68 204.66
test:val-2i.val-2i_comparison 2.43 149.25
test:val-2i.val-2i_673K SKIP 0.00
test:val-2i.val-2i_873K SKIP 0.00
test:val-2i.val-2i_973K SKIP 0.00

Run time changes

Test Base (s) Head (s) +/- Base (MB) Head (MB)
test:ver-1fb.thermal_transient_physics 4.58 7.14 +55.91% 53.46 59.70
test:ver-1fb.ver-1fb 2.44 3.69 +51.01% 43.90 44.89

@moosebuild

moosebuild commented Mar 18, 2026

Copy link
Copy Markdown

Job Documentation, step Sync to remote on 8a04362 wanted to post the following:

View the site here

This comment will be updated on new commits.

Some of this was needed during debug, but is no longer.

This change also makes it easier to turn off Exodus output for testing.
The MUMPS change will hopefully help with robustness in parallel / distributed mesh

@simopier simopier left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know you are still working on this, but here is a review with comments for you to consider.
Thank you for adding this case!

The light test currently fails:

DIFF test:val-2i.val-2i_673K_light FAILED (CSVDIFF)

Comment thread doc/content/bib/tmap8.bib Outdated
Comment thread doc/content/bib/tmap8.bib Outdated
Comment thread doc/content/verification_and_validation/val-2i.md Outdated
Comment thread doc/content/verification_and_validation/val-2i.md Outdated
Comment thread doc/content/verification_and_validation/val-2i.md Outdated
Comment thread doc/content/verification_and_validation/val-2i.md Outdated
Comment thread test/tests/val-2i/val-2i_temperature_history.py Outdated
Comment thread test/tests/val-2i/val-2i.i Outdated
trapping_site_fraction_1 = 0.002 # (-)
trapping_rate_prefactor = '${fparse ${diffusivity_coefficient} / ${W_lattice_constant}^2}' # (1/s)
release_rate_prefactor = '${units 1e13 1/s}'
trap_per_free_1 = 1e6 # (-)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The trap per free coefficient is not in the equations in the documentation. You should add it and provide its value.

Comment thread test/tests/val-2i/val-2i.i Outdated
[]

[Variables]
[concentration]

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suggest changing this variable name to mobile since concentration could apply to the trapping too.

Comment thread test/tests/val-2i/val-2i.i Outdated
[trapped_1]
order = FIRST
family = LAGRANGE
outputs = none

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why not? I suggest you output it.

Suggested change
outputs = none

@simopier

simopier commented Aug 1, 2026

Copy link
Copy Markdown
Collaborator

@cticenhour, do you need any help with this?

@edbworth

Copy link
Copy Markdown
Contributor

@cticenhour, do you need any help with this?

This is quite close to my current draft PR. If you would like me to help with this, I can after I finish up that work.

@cticenhour

Copy link
Copy Markdown
Member Author

I plan on making good progress on this over this week, so I think I'll be good. Thanks!

cticenhour and others added 2 commits August 17, 2026 12:00
Co-authored-by: Pierre-Clement Simon <pierreclement.simon@gmail.com>
…consistently shifted

Add a note about why we do this to the comparison script
@cticenhour cticenhour changed the title Val 2i - Deuterium retention in neutron-irradiated single-crystal tungsten [WIP] Val 2i - Deuterium retention in neutron-irradiated single-crystal tungsten Aug 18, 2026
- Document use of the `trap_per_free` scaling factor in val-2i.md and
  report its value used in val-2i.i.
- Also in val-2i.md, replace TODO citation placeholders with the actual
  references and consolidate listing in input files section to being
  paragraph-based.
- Simplify variable/parameter naming in val-2i.i since only one
  trapping site is modeled. That is, drop the "_1" suffixes (trapped_1
  -> trapped, trap_per_free_1 -> trap_per_free, trapping_site_fraction_1
  -> trapping_site_fraction, etc.). Also, update the matching `cli_args`
  in the tests file for the renamed trapping_site_fraction parameter.
- Make the mobile species variable naming more clear (concentration -> mobile)
  and enable output of the trapped variable.
- Improve comparison_val-2i.py plot readability: outline the TMAP8 and TMAP4
  curves with a black stroke path effect, and color-match each RMSPE
  annotation to its corresponding curve.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

V&V Relevant to V&V

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add verification case for deuterium transport in neutron-irradiated single-crystal tungsten

4 participants