Add Regazzoni active stress model - #596
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #596 +/- ##
==========================================
+ Coverage 72.54% 72.73% +0.18%
==========================================
Files 252 255 +3
Lines 39032 39290 +258
Branches 6678 6731 +53
==========================================
+ Hits 28317 28576 +259
+ Misses 10480 10472 -8
- Partials 235 242 +7 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
@samibismar May I suggest using a more meaningful name than |
|
@ktbolt Would I would retain “RDQ20-MF” in the documentation and citations to identify the specific Regazzoni–Dedè–Quarteroni formulation being implemented. |
|
@samibismar I think |
|
@samibismar @ktbolt Sorry to comment on this this late, but: I'm not sure that As far as I know, the standard way of referring to these cellular models is by the name of the author (and sometimes year, if the same authors have published multiple models), since (I think) it is often impossible to come up with a unique descriptive name. This is the same as with ionic models (and indeed we have the classes If you feel the acronym |
|
@michelebucelli That makes sense, thanks. I agree that I think @ktbolt, would that naming approach work for you as well? |
michelebucelli
left a comment
There was a problem hiding this comment.
Thanks @samibismar! Please see my comments below.
|
@samibismar Using |
|
@samibismar As we discussed, this model needs some kind of stabilization to enable force-strain-rate feedback. I think this can and should be addressed in a follow-up PR, but in the meantime I suggest the following:
Having done this, I think this is good to merge! |
|
@michelebucelli I added the |
javijv4
left a comment
There was a problem hiding this comment.
Hey @samibismar, this looks good to me! Just left a small comment regarding the test. Not super important though.
|
@michelebucelli, @samibismar, I don't think this is an issue for this PR, but I was playing around with the test and saw noticeably different results when using 3 or 4 processors when I let it run longer (below is timestep 50). I checked using Nash Panfilov, and the same occurs. Then I tried changing GMRES to CG (just because, in my experience, CG works better for EP), and the differences became much smaller. Here are tables quantifying the differences.
=== CG: 3 vs 4 ranks at t=50 (max abs diff) ===
I do not really know what is causing this. I can open an independent issue if you think that is a good idea. |
|
@javijv4 Aren't the matrices produced by |
|
Thanks @javijv4 for running these experiments! I agree with @ktbolt that the However, for nonlinear hyperelasticity the matrix is not symmetric in general, I think (I'm not sure whether this holds fror the generalized Having said that, GMRES should still work, and should work consistently when varying the number of cores. So I agree with @javijv4 that it is quite suspicious that the results change so much between 3 and 4 processes. I think this might be another hint that something, somewhere is very sensitive to the order of operations. I have encountered other clues to this in #584 (fast math optimization broke all the tests) and #577 (using @javijv4 if you want to open an issue about this I'll be happy to add more details about the similar problems I've found, and we can investigate further. I suspect this to be independent of the changes in this PR, so I suggest merging this PR regardless. |
|
Sounds good! I'll open a new issue. |


Current situation
This PR adds the
RegazzoniActiveStressmodel, implementing the RDQ20-MF formulation described by Regazzoni, Dedè, and Quarteroni (2020), using the ActiveStress framework introduced in PR #578.The implementation includes:
ActiveStressmodel factory;The local active-stress interface is extended to provide fiber stretch to each model. RDQ20-MF first computes the paper tension
then returns
This normalization is required because svMultiPhysics assembles the returned coefficient as a second Piola–Kirchhoff stress contribution:
After conversion to first Piola–Kirchhoff stress, this gives
consistent with the RDQ20 paper convention.
Related to #594.
Release Notes
slab_RDQ20MFelectromechanics regression case.Documentation
The RDQ20-MF class documentation describes:
The
slab_RDQ20MFREADME documents:Active_tension_*fieldsTesting
slab_RDQ20MFpytest case passed for all three configured process-count variants.26f05df.was compared node-by-node against the same reference implementation and agreed to approximately machine precision.
to floating-point precision.
svZeroDSolvershared library was unavailable. The same twelve tests fail with the same missing-library error onmainin the same environment.References
Regazzoni, F., Dede', L., & Quarteroni, A.
“Biophysically detailed mathematical models of multiscale cardiac active mechanics.”
PLOS Computational Biology, 2020.
https://doi.org/10.1371/journal.pcbi.1008294
Code of Conduct & Contributing Guidelines