-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Xfem 3d mesh cutter refactor and adding stress corrosion cracking #31615
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
base: next
Are you sure you want to change the base?
Conversation
300d96c
to
5c64b34
Compare
Job Documentation, step Docs: sync website on 9c4f14b wanted to post the following: View the site here This comment will be updated on new commits. |
…rObject read fatigue values from this reporter. I think stress corrosion cracking can be created by parsed Reporter. ref idaholab#31615
5c64b34
to
bd9cf11
Compare
…rObject read fatigue values from this reporter. I think stress corrosion cracking can be created by parsed Reporter. ref idaholab#31615
bd9cf11
to
61e2587
Compare
…rObject read fatigue values from this reporter. I think stress corrosion cracking can be created by parsed Reporter. ref idaholab#31615
61e2587
to
f1e28c9
Compare
…rObject read fatigue values from this reporter. I think stress corrosion cracking can be created by parsed Reporter. ref idaholab#31615
f1e28c9
to
b51ba90
Compare
…rObject read fatigue values from this reporter. I think stress corrosion cracking can be created by parsed Reporter. ref idaholab#31615
b51ba90
to
a70c9b5
Compare
Job Precheck, step Clang format on a70c9b5 wanted to post the following: Your code requires style changes. A patch was auto generated and copied here
Alternatively, with your repository up to date and in the top level of your repository:
|
…rObject read fatigue values from this reporter. I think stress corrosion cracking can be created by parsed Reporter. ref idaholab#31615
a70c9b5
to
1367305
Compare
Job Coverage, step Generate coverage on 9c4f14b wanted to post the following: Framework coverage
Modules coverageXfem
Full coverage reportsReports
This comment will be updated on new commits. |
#31621 is a prereq for this. @lynnmunday please bring out of draft once that PR is merged |
1367305
to
09954de
Compare
…as the 2D mesh. Also adding verbosity to some error messages. Cleaning up some other stuff not used. Getting vectorpostprocessors in constructor and adding a param to get them by name.
…rObject read fatigue values from this reporter. I think stress corrosion cracking can be created by parsed Reporter. ref idaholab#31615
builds and tests pass
…chanics part and then seperate files for the mesh cutter part.
…th reporter values.
removing test.i as its not used by anything
…ning ki and kii values
49f5e08
to
e210254
Compare
e210254
to
c4a6907
Compare
Job Python 3.13 (Apptainer) on c4a6907 : invalidated by @lynnmunday |
Job CUDA GPU on c4a6907 : invalidated by @lynnmunday |
Job Python 3.13 (Apptainer) on c4a6907 : invalidated by @lynnmunday |
1 similar comment
Job Python 3.13 (Apptainer) on c4a6907 : invalidated by @lynnmunday |
@bwspenc Will you review? The broken test is not from this. |
@codex |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codex Review
Here are some automated review suggestions for this pull request.
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting
Real max_growth_rate = *std::max_element(growth_rate.begin(), growth_rate.end()); | ||
_corrosion_time_step = _max_growth_size / max_growth_rate; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Guard against zero growth rate in SCC reporter
When every entry in growth_rate
stays at zero (for example when the user supplies growth_rate_low = growth_rate_high = 0
or there are no active crack-front nodes), max_growth_rate
evaluates to 0 and _corrosion_time_step
divides by zero. This produces inf
/NaN
values in _growth_increment
, which will be consumed by the mesh cutter and can corrupt node coordinates. Consider short‑circuiting when the maximum rate is non‑positive and leaving the increments at zero instead of computing a ratio.
Useful? React with 👍 / 👎.
Real _max_k = *std::max_element(effective_k.begin(), effective_k.end()); | ||
_dn = _max_growth_size / (_paris_law_c * std::pow(_max_k, _paris_law_m)); | ||
|
||
for (std::size_t i = 0; i < _ki_vpp.size(); ++i) | ||
if (index[i] != -1) | ||
_growth_increment[i] = _max_growth_size * std::pow(effective_k[i] / _max_k, _paris_law_m); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ParisLaw reports NaNs when fracture integrals are zero
If all KI/KII values are zero for a step, effective_k
remains zeros so _max_k
becomes 0. The subsequent division _max_growth_size / (_paris_law_c * pow(_max_k, _paris_law_m))
and normalization of effective_k[i] / _max_k
therefore divide by zero, yielding infinite or NaN cycle counts and growth increments. This can occur on initial timesteps before loads are applied. A guard for _max_k <= 0
that returns zero growth (and zero cycles) would avoid generating invalid numbers.
Useful? React with 👍 / 👎.
ref #31614