Skip to content

generic cluster dynamics derived from array nodal kernel. #434

Open
lynnmunday wants to merge 8 commits into
idaholab:develfrom
lynnmunday:cdArrayNodal
Open

generic cluster dynamics derived from array nodal kernel. #434
lynnmunday wants to merge 8 commits into
idaholab:develfrom
lynnmunday:cdArrayNodal

Conversation

@lynnmunday

Copy link
Copy Markdown
Collaborator

closes #429

@lynnmunday lynnmunday force-pushed the cdArrayNodal branch 2 times, most recently from 197406d to 5d530d1 Compare February 24, 2026 20:10
@lynnmunday

Copy link
Copy Markdown
Collaborator Author

needs idaholab/moose#32230 merged

@moosebuild

Copy link
Copy Markdown

All jobs on 2c7f397 : invalidated by @lynnmunday

@moosebuild

moosebuild commented Mar 24, 2026

Copy link
Copy Markdown

Job Documentation, step Sync to remote on 3a13fb9 wanted to post the following:

View the site here

This comment will be updated on new commits.

@moosebuild

Copy link
Copy Markdown

Job Precheck, step Clang format on 05921d6 wanted to post the following:

Your code requires style changes.

A patch was auto generated and copied here
You can directly apply the patch by running, in the top level of your repository:

curl -s https://mooseframework.inl.gov/blackbear/docs/PRs/434/clang_format/style.patch | git apply -v

Alternatively, with your repository up to date and in the top level of your repository:

git clang-format 43501f77e7b7ebb65fe13d324d740a261b7393a0

@moosebuild

Copy link
Copy Markdown

Job Coverage, step Generate coverage on 3a13fb9 wanted to post the following:

Coverage

38a85d #434 3a13fb
Total Total +/- New
Rate 93.14% 93.50% +0.36% 100.00%
Hits 2199 2403 +204 209
Misses 162 167 +5 0

Diff coverage report

Full coverage report

This comment will be updated on new commits.

+Component 0 (monomer, $n=1$):+

!equation
\frac{dC_1}{dt} = G_1 - k_s C_1 - 2\beta_1 C_1^2 - \sum_{n=2}^{N} \beta_n C_1 C_n + 2\alpha_2 C_2 + \sum_{n=3}^{N} \alpha_n C_n

@jhke01 jhke01 Mar 31, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The terms G_1 and k_s represent the generation and sink rates for specific monomer species. G_1 and k_s primarily apply to point defects, such as vacancies and interstitials generated by irradiation, and are not applicable to chemical species. G_1 and k_s should be ignored for modeling solute clustering such as Cu precipitation. This has been confirmed by comparing against the paper by Bai etal (2017).
https://doi.org/10.1016/j.jnucmat.2017.08.042

where the growth-in term is:

!equation
\dot{C}_n^{\text{in}} = \begin{cases} \tfrac{1}{2}\beta_1 C_1^2 & n = 2 \\ \beta_{n-1} C_1 C_{n-1} & n > 2 \end{cases}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

For n>2, the expression is correct, but I think the expression for n>2 also applies the same to n=2. I don't quite understand why there is a 1/2 for n=2, since c1 x c1 should be the opportunity to form a dimer multiplied by a rate constant. I'll need to figure this out. It seems the 1/2 is to avoid double counting of identical monomer–monomer collisions.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

I think you are right. I think each monomer forms a dimer so the divide by two gets rid of the extra dimer

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

However this will violate mass conservation since we have - 2 * β1 * C_1^2 in equation one for monomer, that means the change in C_2 should be half the magnitude of 2 * β1 * C_1^2, which is β1 * C_1^2.

Absorption and emission rate coefficients scale with the cluster surface area:

!equation
\beta_n = \beta_0 n^{1/3}, \qquad \alpha_n = \alpha_0 n^{1/3}

@jhke01 jhke01 Apr 6, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

We may need to rewrite this since the emission (alpha) and absorption (beta) coefficients are exponentially related by the binding energy of the cluster formation due to detail balance.

Absorption coefficient:

\beta_n = \frac{4\pi (r_1 + r_n) D_1}{V_{\mathrm{at}}},

where r_n is the radius of the cluster:
r_n = \left(\frac{3 n V_{\mathrm{at}}}{4\pi}\right)^{1/3}.

where V_at is the atomic volume (m^3/atom)

Detailed-balance relation between emission and absorption:
\alpha_{n+1} = \beta_n \exp!\left(-\frac{E_b(n+1)}{k_B T}\right).

where binding energy is defined as
E_b(n+1) = G_1 + G_n - G_{n+1}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

we can use the same expression in Bai's paper so the user can define the binding energy based on formation enthalpy and interface energy.
https://doi.org/10.1016/j.jnucmat.2017.08.042

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Generic cluster dynamics kernels

3 participants