SimVascular / SimVascular/svMultiPhysics

Extend CANN implementation for additional invariants, fiber recruitment and dispersion

Open
#560 5 comments 0 reactions 2 assignees View on GitHub

@divya-adil is already working on this.

Since Jun 2, 2026.

enhancement
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 Etheta and Ez
  • 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.