SimVascular / SimVascular/svMultiPhysics

Arbitrary function & ODE parser

Open
#218 11 comments 0 reactions 1 assignee View on GitHub

@zasexton is already working on this.

Since Jul 23, 2024.

enhancement
Dominant language
C++
Stars
45
Forks
60
Avg merge
5d 23h
Merged PRs (30d)
11

Description

Use Case

Often for perfusion and metabolic modeling, different systems of differential algebraic equations are included as reaction terms to represent kinetic components of overall metabolism. Often hypotheses about metabolic functionality require the form of these equations to be changed substantially (e.g. the inclusion of fatty acid oxidation in a cardiomyocyte model versus glucose oxidation alone). Therefore, users interested in simulating multiple models for tissue perfusion may require a flexible framework to easily change governing reaction equations.

Problem

Currently, any changes to governing equations require recompiling svFSIplus to integrate. Futhermore, the lack of modularity hinders incorporation of complex reaction terms in more complex advection-diffusion-reaction systems.

Solution

We shall introduce flexible string parser to allow for inclusion of arbitrary algebraic and ordinary differential equations into on-demand c++ functions. Such an approach is attractive for general purpose uses and computational efficiency (as opposed to symbolic solvers which may be large third party packages or too slow for integration in a governing PDE equation).

Alternatives considered

Symbolic approaches may be considered if direct construction of c++ functions cannot easily be accomplished (although this is not desirable).

Additional context

Specifically this will be important for perfusion and metabolic modeling although there are many more general use cases.

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.