-
Notifications
You must be signed in to change notification settings - Fork 47
Increase val-2f/val-2c reproducibility #385
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
Merged
Merged
Changes from all commits
Commits
Show all changes
78 commits
Select commit
Hold shift + click to select a range
9141968
Fix light tests
lin-yang-ly 54f0f4a
update val-2f HPC and local MacOS mismatch
lin-yang-ly 01adb18
update petsc hyperparameters to solve the multi-cores mismatch
lin-yang-ly 745ddf4
update for multi-cores runs on HPC
lin-yang-ly 562d5c3
avoid recover issue in this PR
lin-yang-ly 3ad6b55
update val-2c_immediate_injection_exodus for failure with 2 threads
lin-yang-ly 303045c
solve the multi-core issue for yttrium_hydrogen_system
lin-yang-ly 8780a32
keep multi-core issue of val-2f for future
lin-yang-ly a1b7fee
MacOS faulure of heavy tests will be solved in another PR
lin-yang-ly 9151669
move val-2f parameters to test file
lin-yang-ly 5cbba6d
leave the recover issue and val-2f multi-core issue for now
lin-yang-ly 7d0c2f3
Apply suggestions from code review
lin-yang-ly 150c67d
update test checks for solved recover and multi-core issue
lin-yang-ly 3a765b6
update documentation
lin-yang-ly 484f9a9
solve one recover failure for yttrium_hydrogen_system
lin-yang-ly 9dae4e6
ignore recover issue due to current PR focusing on OS and multi-core …
lin-yang-ly b0bf4d0
Update moose submodule
loganharbour 0f0c001
solve failure for val-2c_delay_csv with moose update
lin-yang-ly 1f0a889
Nondimensionalize val-2f
lindsayad bf6bf19
Remove nondimensionalization doc
lindsayad b45e478
Simplify dimensionless physics/kernel logic
lindsayad a1c5994
Clarify trapping_prefactor
lindsayad f01815d
Robustify physics exception testing after parameter check reordering …
lindsayad 2d7ecdb
Ignore temporary testharness_time files
lindsayad 95aa871
Skip dimensional val-2f
lindsayad f2bbd02
Remove extraneous exodus output from csv test
lindsayad 1a8f9d5
Bump abs_tol back up for val-2c delay test
lindsayad 665e9dc
Set bounds to 0 not negative
lindsayad 18bc8ae
Add some postprocessors for viewing concentration magnitudes
lindsayad cd15982
val-2c delay robustness upgrades
lindsayad 1957cf5
Regold other tests
lindsayad b89dcb1
Remove parallel restriction from stochastic tools test
lindsayad ca29026
Remove cruft
lindsayad cb243bf
Add component-physics example of shared-occupancy use of TrappingNoda…
lindsayad 18f8087
Revert changes made to val-2f tests spec
lindsayad ec189d5
Add parameters for nondimensionalization val-2f params
lindsayad 2f1e06b
make val-2f dimensionless
lindsayad 7549dde
Remove dimensionless directory
lindsayad 167df2a
bump tolerances more
lindsayad 8d41469
Add more sensible testing of the heavy val-2f cases
lindsayad 2c3ef8b
Ask user what conda env is
lindsayad 56f55d2
Remove redundant FactoredCoupledTimeDerivative
lindsayad c4a7f74
Add missing doc pages
lindsayad d997bd4
Ignore checkpoint directories
lindsayad 6a4086e
Normalize recent non-ASCII text
lindsayad af29870
Remove reverted scaling references
lindsayad d0d473f
Revert unnecessary changes related to variable scaling in SpeciesTrap…
lindsayad d17213f
Fix ReleasingNodalKernelDimesionless doxygen
lindsayad e8a6758
Remove unused timeReference
lindsayad ea81512
Remove unnecessary scripts
lindsayad 09e7cdf
Cosmetic changes to residual return in dimensionless kernels
lindsayad 72cd0b0
Change MooseIndex to make_range
lindsayad 8fb26e4
Further reduce SpeciesTrappingPhysics diff
lindsayad 939966b
Reduce code duplication by creating releasing/trapping nodal kernel b…
lindsayad c80aa68
Clean up val-2f params file
lindsayad fd24053
Add missing doxygen
lindsayad 2c0e137
Remove extraneous diff in val-2f.i
lindsayad aba9b3c
Remove yttrium tests that aren't adding any value
lindsayad 9d47079
Allow brittle yttrium tests to run in recover mode
lindsayad 67ab91b
Switch val-2f RMSPE tests over to RecoverableRunCommand
lindsayad f4b52c8
Apply suggestions from code review: round 1 with maximum of 50
lin-yang-ly 5422deb
Apply suggestions from code review: round 2
lin-yang-ly e28b7c8
quick test only for val-2c
lin-yang-ly 45fa6e0
quick test only for val-2c: update formats
lin-yang-ly ab9e876
fix physics test case
lin-yang-ly 4ef6a28
Apply suggestions from code review
lin-yang-ly 3fdbb02
revert YHx tests
lin-yang-ly 25d0d83
quick test for val-2f:light case
lin-yang-ly fa79738
quick tests for val-2f:heavy
lin-yang-ly 400bbb3
update YHx failure tests
lin-yang-ly df7679f
update val-2f-heavy tests
lin-yang-ly 9a3a2f5
Add the two versions of accuracy for val-2c and val-2f
lin-yang-ly 6699bcf
Apply suggestions from code review
lin-yang-ly 991b650
Add val-2c bdf2 tests: quick test
lin-yang-ly 28fa0d7
val-2f heavy tests: including both schemes quick test
lin-yang-ly 06b6e92
update submodule
lin-yang-ly 4a7917a
update heavy tests rel_err
lin-yang-ly d6906cb
Apply suggestions from code review
lin-yang-ly File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
186 changes: 186 additions & 0 deletions
186
doc/content/agent/200/rollout-2026-03-27T11-05-04-019d3078-9ee5-78f0-838a-4a4a79175713.jsonl
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
30 changes: 30 additions & 0 deletions
30
doc/content/source/nodal_kernels/ReleasingNodalKernelDimensionless.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,30 @@ | ||
| # ReleasingNodalKernelDimensionless | ||
|
|
||
| !syntax description /NodalKernels/ReleasingNodalKernelDimensionless | ||
|
|
||
| ## Overview | ||
|
|
||
| `ReleasingNodalKernelDimensionless` is the dimensionless analogue of | ||
| [ReleasingNodalKernel](ReleasingNodalKernel.md). It applies the release source term | ||
| to a dimensionless trapped-species variable, $\hat{C}_t = C_t / C_{t,\mathrm{ref}}$ | ||
| with $C_t$ the trapped-species variable and $C_{t,\mathrm{ref}}$ the characteristic trapped-species scale in the same unit as $C_t$. | ||
|
|
||
| This object implements the residual | ||
|
|
||
| \begin{equation} | ||
| \hat{k}_r \exp(-\epsilon / T) \hat{C}_t | ||
| \end{equation} | ||
|
|
||
| where $\hat{C}_t$ is the dimensionless trapped-species concentration, $\hat{k}_r$ is | ||
| the dimensionless release rate, $\epsilon$ is the detrapping activation energy in | ||
| Kelvin, and $T$ is the temperature in Kelvin. | ||
|
|
||
| Compared with [ReleasingNodalKernel](ReleasingNodalKernel.md), the form is the same | ||
| except that the trapped concentration variable is nondimensionalized and the rate | ||
| coefficient is provided directly as a dimensionless quantity. | ||
|
|
||
| !syntax parameters /NodalKernels/ReleasingNodalKernelDimensionless | ||
|
|
||
| !syntax inputs /NodalKernels/ReleasingNodalKernelDimensionless | ||
|
|
||
| !syntax children /NodalKernels/ReleasingNodalKernelDimensionless | ||
49 changes: 49 additions & 0 deletions
49
doc/content/source/nodal_kernels/TrappingNodalKernelDimensionless.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,49 @@ | ||
| # TrappingNodalKernelDimensionless | ||
|
|
||
| !syntax description /NodalKernels/TrappingNodalKernelDimensionless | ||
|
|
||
| ## Overview | ||
|
|
||
| `TrappingNodalKernelDimensionless` is the dimensionless analogue of | ||
| [TrappingNodalKernel](TrappingNodalKernel.md). It applies the trapping source term | ||
| to a dimensionless trapped-species variable, $\hat{C}_t = C_t / C_{t,\mathrm{ref}}$ | ||
| with $C_t$ the trapped-species variable and $C_{t,\mathrm{ref}}$ the characteristic trapped-species scale in the same unit as $C_t$. | ||
|
|
||
| This object implements the residual | ||
|
|
||
| \begin{equation} | ||
| \hat{k}_t \exp(-\epsilon / T) | ||
| \left( | ||
| \frac{N C_{t0} - C_{t,\mathrm{ref}} \hat{C}_t - \sum_j C_{t,\mathrm{ref},j} \hat{C}_{t,j}} | ||
| {C_{t,\mathrm{ref}}} | ||
| \right) | ||
| \hat{C}_m | ||
| \end{equation} | ||
|
|
||
| where $\hat{k}_t$ is the dimensionless trapping rate, $\epsilon$ is the trapping | ||
| activation energy in Kelvin, $T$ is the temperature in Kelvin, $N$ is the atomic | ||
| number density of the host material, $C_{t0}$ is the fraction of host sites that can | ||
| trap the species, $\hat{C}_t$ is the dimensionless concentration of this trapped | ||
| species, $\hat{C}_{t,j}$ are optional competing trapped-species variables, and | ||
| $\hat{C}_m$ is the coupled mobile concentration variable. | ||
|
|
||
| The implementation computes the available trapping sites in physical units, | ||
|
|
||
| \begin{equation} | ||
| N C_{t0} - C_{t,\mathrm{ref}} \hat{C}_t - \sum_j C_{t,\mathrm{ref},j} \hat{C}_{t,j}, | ||
| \end{equation} | ||
|
|
||
| and then divides by $C_{t,\mathrm{ref}}$ so that the residual is written for the | ||
| dimensionless unknown $\hat{C}_t$. Unlike [TrappingNodalKernel](TrappingNodalKernel.md), | ||
| this object does not use the `trap_per_free` scaling factor that the dimensional | ||
| kernel uses to convert between trapped-species and mobile-species concentration | ||
| scales. Here, the conversion is handled explicitly through | ||
| `trap_concentration_reference` ($C_{t,\mathrm{ref}}$) and `other_trap_concentration_references` ($C_{t,\mathrm{ref},j}$), so the | ||
| residual is expected to remain $O(\hat{k}_t)$ when the variables are scaled with | ||
| appropriate reference values. | ||
|
|
||
| !syntax parameters /NodalKernels/TrappingNodalKernelDimensionless | ||
|
|
||
| !syntax inputs /NodalKernels/TrappingNodalKernelDimensionless | ||
|
|
||
| !syntax children /NodalKernels/TrappingNodalKernelDimensionless |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,36 @@ | ||
| /************************************************************/ | ||
| /* DO NOT MODIFY THIS HEADER */ | ||
| /* TMAP8: Tritium Migration Analysis Program, Version 8 */ | ||
| /* */ | ||
| /* Copyright 2021 - 2025 Battelle Energy Alliance, LLC */ | ||
| /* ALL RIGHTS RESERVED */ | ||
| /************************************************************/ | ||
|
|
||
| #pragma once | ||
|
|
||
| #include "NodalKernel.h" | ||
|
|
||
| /** | ||
| * Shared implementation for trapped-species release nodal kernels. | ||
| * | ||
| * This base class factors the common Arrhenius release residual and Jacobian | ||
| * used by both the dimensional and dimensionless releasing kernels. | ||
| */ | ||
| class ReleasingNodalKernelBase : public NodalKernel | ||
| { | ||
| public: | ||
| ReleasingNodalKernelBase(const InputParameters & parameters, Real release_rate_coefficient); | ||
|
|
||
| static InputParameters validParams(); | ||
|
|
||
| protected: | ||
| Real computeQpResidual() override; | ||
| Real computeQpJacobian() override; | ||
|
|
||
| /// Effective release-rate coefficient multiplying the Arrhenius factor and variable value. | ||
| const Real _release_rate_coefficient; | ||
| /// Detrapping activation energy, expressed in Kelvin. | ||
| const Real _detrapping_energy; | ||
| /// Coupled temperature field. | ||
| const VariableValue & _temperature; | ||
| }; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,31 @@ | ||
| /************************************************************/ | ||
| /* DO NOT MODIFY THIS HEADER */ | ||
| /* TMAP8: Tritium Migration Analysis Program, Version 8 */ | ||
| /* */ | ||
| /* Copyright 2021 - 2025 Battelle Energy Alliance, LLC */ | ||
| /* ALL RIGHTS RESERVED */ | ||
| /************************************************************/ | ||
|
|
||
| #pragma once | ||
|
|
||
| #include "ReleasingNodalKernelBase.h" | ||
|
|
||
| /** | ||
| * Releasing NodalKernel for a dimensionless trapped-species variable | ||
| * Ct_hat = C_t / C_t_ref. | ||
| * | ||
| * The residual is: | ||
| * R = +k_r_hat * exp(-E_r / T) * Ct_hat | ||
| * | ||
| * where k_r_hat = t_ref * alpha_r. | ||
| * | ||
| * The quadrature point residual should be dimensionless and O(k_r_hat) because Ct_hat should be | ||
| * dimensionless and O(1). | ||
| */ | ||
| class ReleasingNodalKernelDimensionless : public ReleasingNodalKernelBase | ||
| { | ||
| public: | ||
| ReleasingNodalKernelDimensionless(const InputParameters & parameters); | ||
|
|
||
| static InputParameters validParams(); | ||
| }; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,84 @@ | ||
| /************************************************************/ | ||
| /* DO NOT MODIFY THIS HEADER */ | ||
| /* TMAP8: Tritium Migration Analysis Program, Version 8 */ | ||
| /* */ | ||
| /* Copyright 2021 - 2025 Battelle Energy Alliance, LLC */ | ||
| /* ALL RIGHTS RESERVED */ | ||
| /************************************************************/ | ||
|
|
||
| #pragma once | ||
|
|
||
| #include "NodalKernel.h" | ||
|
|
||
| #include "metaphysicl/dualdynamicsparsenumberarray.h" | ||
|
|
||
| using MetaPhysicL::DualNumber; | ||
| using MetaPhysicL::DynamicSparseNumberArray; | ||
|
|
||
| class Function; | ||
|
|
||
| /// Local AD number type used to assemble manual Jacobians for trapping kernels. | ||
| typedef DualNumber<Real, DynamicSparseNumberArray<Real, unsigned int>> LocalDN; | ||
|
|
||
| /** | ||
| * Shared implementation for trapped-species trapping nodal kernels. | ||
| * | ||
| * This base class owns the common occupancy bookkeeping, empty-site assembly, | ||
| * and manual Jacobian logic used by both dimensional and dimensionless | ||
| * trapping kernels. | ||
| */ | ||
| class TrappingNodalKernelBase : public NodalKernel | ||
| { | ||
| public: | ||
| /** | ||
| * Build the shared trapping kernel state from the supplied rate and residual scaling. | ||
| */ | ||
| TrappingNodalKernelBase(const InputParameters & parameters, | ||
| Real trapping_rate_coefficient, | ||
| Real residual_denominator); | ||
|
|
||
| static InputParameters validParams(); | ||
|
|
||
| protected: | ||
| /** | ||
| * Initialize the trapped-species variables that contribute to site occupancy. | ||
| * @param other_weights Physical occupancy weight for each coupled trapped species | ||
| * @param self_weight Physical occupancy weight for this kernel's primary variable | ||
| */ | ||
| void initializeOccupancyTracking(const std::vector<Real> & other_weights, Real self_weight); | ||
|
|
||
| Real computeQpResidual() override; | ||
| Real computeQpJacobian() override; | ||
| Real computeQpOffDiagJacobian(unsigned int jvar) override; | ||
|
|
||
| /// Effective trapping-rate coefficient multiplying the Arrhenius factor. | ||
| const Real _trapping_rate_coefficient; | ||
| /// Trapping activation energy, expressed in Kelvin. | ||
| const Real _trapping_energy; | ||
| /// Atomic number density of the host material. | ||
| const Real _N; | ||
| /// Fraction of host sites available for trapping as a function of position. | ||
| const Function & _Ct0; | ||
| /// Coupled mobile-species concentration. | ||
| const VariableValue & _mobile_concentration; | ||
| /// Number of additional trapped concentrations coupled into the occupancy calculation. | ||
| unsigned int _n_other_concs; | ||
| /// Coupled concentration fields that consume trapping sites, including this kernel's variable. | ||
| std::vector<const VariableValue *> _occupancy_concentrations; | ||
| /// Physical occupancy weight associated with each trapped concentration. | ||
| std::vector<Real> _occupancy_weights; | ||
| /// Variable numbers corresponding to occupancy concentrations plus the mobile concentration. | ||
| std::vector<unsigned int> _var_numbers; | ||
| /// Most recent node for which the cached Jacobian state was assembled. | ||
| const Node * _last_node; | ||
| /// Coupled temperature field. | ||
| const VariableValue & _temperature; | ||
| /// Denominator used to scale the residual after empty-site assembly. | ||
| const Real _residual_denominator; | ||
| /// Cached AD residual used to extract diagonal and off-diagonal Jacobian entries. | ||
| LocalDN _jacobian; | ||
|
|
||
| private: | ||
| /// Rebuild the cached AD residual when the active node changes. | ||
| void ADHelper(); | ||
| }; |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.