SimVascular / SimVascular/svMultiPhysics
Extend CANN implementation for additional invariants, fiber recruitment and dispersion
@divya-adil is already working on this.
Since Jun 2, 2026.
- Dominant language
- C++
- Stars
- 45
- Forks
- 60
- Avg merge
- 5d 23h
- Merged PRs (30d)
- 11
Description
Problem
The original CANN implementation in svMultiPhysics supports a useful legacy <Add_row> table format, but it is missing several terms needed for newer vein/soft-tissue material models. In particular, it currently has limited support for additional directional invariants, fiber dispersion, and fiber recruitment.
This limits the ability to represent anisotropic vessel wall mechanics where fiber families may have dispersed orientations and may gradually recruit over a slack-stretch distribution rather than engaging all at once.
Solution
Extend the existing CANN implementation while preserving the legacy <Add_row> XML format.
The feature should add support for:
- Additional invariant rows, including directional strain terms such as
EthetaandEz - The second fiber family invariant, e.g.
I4_D2, through the existing invariant table - Optional GOH-style fiber dispersion on fiber rows
- Optional fiber recruitment parameters for row-local recruited fiber response
Example direction for dispersion:
<Add_row row_name="hgo_D1">
<Invariant_num> 4 </Invariant_num>
<Activation_functions> (1, 2, 2) </Activation_functions>
(1.0, 1.0, 2.5e3)
0.0231
</Add_row>
Example direction for dispersion:
<Add_row row_name="recruited_D1">
<Invariant_num> 4 </Invariant_num>
<Activation_functions> (1, 2, 2) </Activation_functions>
(1.0, 1.0, 2.5e3)
0.0231
lognormal
<Lambda_lb> 1.28 </Lambda_lb>
<Lambda_ub> 1.75 </Lambda_ub>
</Add_row>
Additional context
This is motivated by fitted vein mechanics models that include anisotropic fiber families, GOH-style dispersion, and recruitment-weighted fiber activation.
For validation, the implementation should include parser tests and material-model tests checking stress and tangent consistency. It would also be useful to compare CANN rows against hardcoded HGO behavior for aligned and dispersed cases.
I am currently implementing this in my branch cann_vein_mechanics
Code of Conduct
- I agree to follow this project's Code of Conduct and Contributing Guidelines
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.