制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗A software for assigning myocardial fiber orientations with Laplace-Dirichlet rule-based algorithms, based on FEniCSx. Two methods are implemented:
ldrb.dolfinx_ldrb: the method of Bayer et al. (2012), for left ventricular and biventricular geometries with a single base
Bayer, J.D., Blake, R.C., Plank, G. and Trayanova, N.A., 2012. A novel rule-based algorithm for assigning myocardial fiber orientation to computational heart models. Annals of biomedical engineering, 40(10), pp.2243-2254. https://doi.org/10.1007/s10439-012-0593-5
ldrb.dolfinx_doste: the method of Doste et al. (2019), for biventricular geometries with outflow tracts and four valves (see Geometries with outflow tracts)
Doste, R., Soto-Iglesias, D., Bernardino, G., Alcaine, A., Sebastian, R., Giffard-Roisin, S., Sermesant, M., Berruezo, A., Sanchez-Quintana, D. and Camara, O., 2019. A rule-based method to model myocardial fiber orientation in cardiac biventricular geometries with outflow tracts. International Journal for Numerical Methods in Biomedical Engineering, 35(4), e3185. https://doi.org/10.1002/cnm.3185
For example if you have a bi-ventricular geometry (e.g from cardiac-geometries), you can generate fibers as follows
import cardiac_geometries
import ldrb
import dolfinx
# Generate an idealized BiV geometry
geo = cardiac_geometries.mesh.biv_ellipsoid(outdir=geodir)
# Generate fibers with 60/-60 fibers angles on the endo- and epicardium
system = ldrb.dolfinx_ldrb(
mesh=geo.mesh,
ffun=geo.ffun,
markers=geo.markers,
alpha_endo_lv=60,
alpha_epi_lv=-60,
beta_endo_lv=0,
beta_epi_lv=0,
fiber_space="P_2",
)
# Visualize fibers in Paraview
with dolfinx.io.VTXWriter(
geo.mesh.comm,
outdir / f"microstructure-viz.bp",
[system.f0, system.s0, system.n0],
engine="BP4",
) as vtx:
vtx.write(0.0)
If you now open the file microstructure-viz.bp in Paraview (using the ADIOS2VTXReader), select Glyph and choose f0 as orientation array you can see the fiber orientations similar to the following figure (here I have also added a Calculator to compute the fiber angle)
Note that you can achieve the the same results using the command line interface
ldrb mesh.xdmf --markers-file markers.json --fiber-space P_2 --alpha-endo-lv 60 --alpha-epi-lv -60 --beta-endo-lv 0 --beta-epi-lv 0
Note that if you don't specify a different angle for the RV or Septum, then the same angle as the LV will be used.
The mesh file can be an XDMF file (.xdmf) or a file written by io4dolfinx with the adios2 (.bp) or h5py (.h5) backend, e.g. the geometry.bp written by cardiac-geometriesx. Use the latter for meshes of order higher than 2, which XDMF does not support
ldrb geometry.bp --markers-file markers.json
Both methods work on meshes of any order. The Laplace problems are solved with Lagrange elements of the same degree as the geometry, so with a curved, higher order mesh the scalar fields, and hence the fibers, are as accurate as the geometry. The fibers can still be represented in any space with fiber_space, e.g. P_2 for a quadratic mesh.
以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗