SimVascular / svZeroDSolver-Archived

A Python lumped-parameter solver for blood flow and pressure in hemodynamic networks
Other
12 stars 15 forks source link

Use arbitrary combinations of blocks #38

Closed mrp089 closed 3 years ago

mrp089 commented 3 years ago

Currently, we have the elementary building blocks R, C, L. In addition, we also have "combo blocks" that combine two or more elementary 0D blocks like R + stenosis, RC, RL, RCL. However, I see two issues with that:

  1. Redundant code: RC, RL, RCL should consist of the same equations as R, C, L.
  2. Lack of flexibility: Say I want to run RCL + stenosis, I would have to create a new block that does that and c&p the equations from the individual blocks.

Instead of explicitly defining these combinations, can we automatize that in one combo block (based on what parameters are given in the input file)?

@JonathanPham Does that make sense?

JonathanPham commented 3 years ago

@mrp089 I like the idea you suggested. If we do this, then I believe this combo block would be limited to modeling only blood vessels. In this combo block, we could include options to use RCL + stenosis + other elements (e.g. curvature and unsteadiness effects, as discussed in M. Mirramezani and S.C. Shadden. A distributed lumped parameter model of blood flow. Annals of Biomedical Engineering. 2020.)

I'll think about how to implement this.