Discontinous Finite Element Approach
Module: devtests.bidomain.dFE.run
Section author: Caroline Mendonca Costa <caroline.mendonca_costa@kcl.ac.uk>
This is a simple example to demonstrate the nodal splitting approach.
The split list is generated with separate software, and must be provided
as a file “meshname.splt”, which must be in the same directory as the mesh
files. The flag -use_splitting
must be set to 1.
Additionally, this example can also be used to test the Robin Boundary Condition
formulation in a nodal splitting context.
Details on the formulation and its implementation can be found in the
developer documentation of CARP.
To run this test, a surface list must be provided in addition to the split list
as a file “meshname.surf”, which must also be in the same directory as the mesh
files. The flag -use_splitting
must be set to 2.
The conductivity across the boundary must also be define with the
flag -robin_cond
. Values range from 0 (fully decoupled) to 10 (fully coupled)
The split list is used to renumber nodes on the surface list provided.
Both lists are generated with separate software.
This example defines a small cube on the domain:
Four experiments can be chosen: dFE_propagation, dFE_shock, robinBC_propagation, robinBC_shock. In the dFE_propagation and robinBC_propagation experiments, a transmembrane current is applied on the face. In the dFE_shock and robinBC_shock experiments, the ground electrode is applied on the face. And an extracellular current is applied on the face. This is illustrated below:
This example specifies two optional arguments, --tend
and --experiment
.
Use --tend
to specify how long to simulate for after stimulus, in milliseconds:
./run.py --tend 10
Use --experiment
to run a dFE_propagation
, dFE_shock
, robinBC_propagation
, or
robin_shock
experiment.
./run.py --tend 10 --experiment dFE_propagation
or
./run.py --tend 10 --experiment dFE_shock
or
./run.py --tend 10 --experiment robinBC_propagation --robin_cond 1.0
or
./run.py --tend 10 --experiment robinBC_shock --robin_cond 1.0
As with other examples, add the --visualize
option to automatically load
the results in meshalyzer:
./run.py --tend 10 --experiment dFE_propagation --visualize
Run propagation experiment with discontinuous grid.
Checks:
Last run: 2024-02-29 00:09:31.005474, revision {‘base’: ‘cbf8efd0’}, dependency revisions {PT_C: 31642c1e,cvsys: 593686bc,eikonal: 5fbbfda3,elasticity: 4d92ddfc}
Runtime: 0:00:03.539516
ALL PASSED
PASS max_error(vm.igb): 7.62939453125e-06
Run shock experiment with discontinuous grid.
Checks:
Last run: 2024-02-29 00:09:34.586289, revision {‘base’: ‘cbf8efd0’}, dependency revisions {PT_C: 31642c1e,cvsys: 593686bc,eikonal: 5fbbfda3,elasticity: 4d92ddfc}
Runtime: 0:00:02.325655
SIMULATION FAILED TO RUN
CalledProcessError: Command '/home/prassl/install/petsc-3.17.1/linux-gnu-fluid-opt/bin/mpiexec' returned non-zero exit status 1. (Operation not permitted)
Last passed: No passes found in history (earliest 2024-02-01 00:09:50.008783)