First time here? Checkout the FAQ!
x
0 votes
by (120 points)

Hi,

I'm mananged to run a simulation on my biventricular tetrahedral irregular mesh whose median length is 380 µm, using the monodomain equation with Aliev-Panfilov as the ionic model. So, to make sure the conduction velocity in the fibre direction is 0.6 and in tranverse/sheet direction is 0.3. I used tuneCv to get the gi and ge values.

 tuneCV \
    --np 1 \
    --model AlievPanfilov \
    --svinit "$HOME/vuta/calibration/apd/AP_default_BCL600_I100.sv" \
    --resolution 350 \
    --length 2 \
    --velocity 0.6 \
    --gi 0.091491 \
    --ge 0.328632 \
    --sourceModel monodomain \
    --converge True \
    --dt "$dt_us" \
    --ts 1 \
    --lumping False \
    --opsplit True

but it can not converge. I tried to sweep some range and was able to have a close set of gi,ge to get desired CV. But then, when I ran simulation with those gi,ge. The result looked improper wave propagations.

I wonder how I can get gi,ge to run Aliev Panfilov model on different mesh resolution

1 Answer

0 votes
ago by (2.0k points)

Hey!

Thanks for the detailed question. I reproduced your problem with your tuneCV command. In short, the failure to converge comes from the mesh resolution, not from your tuneCV settings.

Why it fails

The Aliev-Panfilov model has a very steep upstroke: over 700 mV/ms in a single-cell bench run, with APD90 of about 318 ms. The wavefront is therefore very thin, and it gets thinner as conductivity drops, because front width is roughly CV × upstroke duration. At 350 µm the front is much narrower than one element, so:

- CV depends strongly on the mesh. With your starting gi=0.0915 / ge=0.3286 I measured 0.68 m/s at 350 µm, 1.06 at 200 µm, and about 1.13 at ≤ 50 µm (the converged value).

- CV no longer scales like √g. tuneCV assumes it does and rescales conductivity by (v_target/v)². On a mesh this coarse that step overshoots, the next run blocks, tuneCV replaces the blocked CV with a placeholder of 0.05 m/s, and it overshoots again. The iterations keep bouncing between block and very fast conduction.

- For 0.3 m/s the conductivity needed is so low that coarse meshes block completely. On an irregular mesh with a median edge of 380 µm, some regions will propagate and others will block. That fits the "improper wave propagation" you saw with your hand-tuned values. 

If you want to keep the 380um mesh, I suggest that you use a different ionic model with a less steep upstroke. If you insist on using Aliev-Panfilov as is, you have to refine the mesh to something closer to 50-100 um.

Welcome to openCARP Q&A. Ask questions and receive answers from other members of the community. For best support, please use appropriate TAGS!
architecture, carputils, documentation, experiments, installation-containers-packages, limpet, slimfem, website, governance
...