Distributed-memory EMI in openCARP
The starting point is a continuous cardiac tissue input mesh. To represent the Extracellular-Membrane-Intracellular (EMI) model, the mesh is transformed into a computational representation in which membrane interfaces are explicitly identified and the volume topology is decoupled across those interfaces.
Material and region tags provide the first partitioning information. The implementation derives the EMI mesh, reconstructs two-sided membrane-face links, assigns global and local indices on the decoupled interfaces, and builds the volume and surface data structures needed for assembly. From these structures, it constructs the mass, stiffness, membrane-coupling, and transfer operators, assembles the coupled system, and advances the solution with a semi-implicit time-integration workflow.
The openCARP EMI implementation integrates both the PETSc and Ginkgo solver libraries. PETSc provides a mature distributed-memory framework for sparse systems, Krylov methods, and multilevel preconditioning, while Ginkgo provides a modern C++ linear-algebra backend suited to manycore and GPU-oriented experiments. This dual-backend design lets the same EMI formulation be evaluated across different solver and hardware environments.
The work is part of the MICROCARD-2 project and is developed as an open-source contribution to openCARP.
Distributed-memory EMI implementation report · MICROCARD group meeting slides · MICROCARD project · openCARP · openCARP profile
