Eye2Brain Level 1 Application

Eye2brain Level 1 is a porous-media model solved in the lamina cribrosa, coupled with the retinal blood circulation developed in OpenModelica.

1. Model

The circuit is the same as Level 0, however in this case the lamina cribrosa resistance has been replaced by the three-dimensional porous-media model. The coupling is realized employing an operator splitting method in the spirit of [Carichino2018].

The integral interface condition thorugh which the splitting operates at the 3D level, represents the nourish of the lamina cribrosa by the circle of Zihn Haller, which branches from the short posterior ciliary arteries, which branch from the ophthalmic artery before the central retinal artery (CRA).

The input data are the intraocular pressure (IOP), the retrolamina tissue pressure (RLTp), the blood pressure standard measurements and the material properties of the lamina cribrosa. The simulation domain is a simple geometrical description of the lamina cribrosa realized with Gmsh, where the dimensions are taken from baseline values present in literature.

From a modellistic viewpoint the model is well depicted by Darcy equation for porous media. The system is discretized using the hybridizable discontinuous Galerkin (HDG) method and it is solved numerically adopting a static condensation technique to the computational performances.

2. Input

The input of this model are

  • the intraocular pressure (IOP) that is modelled as a ramp voltage source;

  • the retrolaminar tissue pressure (RLTp) that is represented by a constant voltage source;

  • the central retina artery (CRA) pressure that is characterized by a voltage source and it is univocally defined by the heart rate (HR), the systolic blood pressure (SBP) and diastolic blood pressure (DBP).

  • the CRV pressure that infer on the internal lateral boundary for the Darcy problem (CRVp)

[eye2brain]
level1=true
# circuit data
IOP=15.0
RLTp=7.0
HR=60
SBP=120
DBP=80
# Poisson data
CRVp=19
CRVp_marker=Hole
  • the material properties

    "Materials":
    {
        "Lamina":
        {
            "name":"tissue",
            "k":"0.015192",
            "Lamina_Sclera-buffer":"C5.p.v",
            "Cbuffer_name":"C5",
            "Rbuffer_name":"lcRin"
        }
    },
  • the simulation geometry

h=0.1;


Point(1) = {0.095, 0, -0.015, h};
Point(2) = {0, 0, -0.015, h};
Point(3) = {0.04750000000000001, 0.08227241335952167, -0.015, h};
Point(4) = {-0.08227241335952169, -0.04749999999999997, -0.015, h};
Point(5) = {0.008, 0, -0.015, h};
Point(6) = {0, 0.008, -0.015, h};
Point(7) = {-0.008, 0, -0.015, h};
Point(8) = {0, -0.008, -0.015, h};
Point(9) = {0.095, 0, 0.015, h};
Point(10) = {0, 0, 0.015, h};
Point(11) = {0.04750000000000001, 0.08227241335952167, 0.015, h};
Point(14) = {-0.08227241335952169, -0.04749999999999997, 0.015, h};
Point(15) = {0, 0.008, 0.015, h};
Point(17) = {0.008, 0, 0.015, h};
Point(20) = {0, -0.008, 0.015, h};
Point(23) = {-0.008, 0, 0.015, h};
Circle(1) = {1, 2, 3};
Circle(2) = {3, 2, 4};
Circle(3) = {4, 2, 1};
Circle(5) = {5, 2, 6};
Circle(6) = {6, 2, 7};
Circle(7) = {7, 2, 8};
Circle(8) = {8, 2, 5};
Circle(9) = {9, 10, 11};
Line(10) = {1, 9};
Line(11) = {3, 11};
Circle(13) = {11, 10, 14};
Line(15) = {4, 14};
Circle(17) = {14, 10, 9};
Circle(21) = {15, 10, 17};
Line(22) = {6, 15};
Line(23) = {5, 17};
Circle(25) = {17, 10, 20};
Line(27) = {8, 20};
Circle(29) = {20, 10, 23};
Line(31) = {7, 23};
Circle(33) = {23, 10, 15};
Line Loop(12) = {1, 11, -9, -10};
Ruled Surface(12) = {12};
Line Loop(16) = {2, 15, -13, -11};
Ruled Surface(16) = {16};
Line Loop(20) = {3, 10, -17, -15};
Ruled Surface(20) = {20};
Line Loop(24) = {-5, 23, -21, -22};
Ruled Surface(24) = {24};
Line Loop(28) = {-8, 27, -25, -23};
Ruled Surface(28) = {28};
Line Loop(32) = {-7, 31, -29, -27};
Ruled Surface(32) = {32};
Line Loop(36) = {-6, 22, -33, -31};
Ruled Surface(36) = {36};
Line Loop(1000) = {1, 2, 3, 6, 7, 8, 5};
Plane Surface(1000) = {1000};
Line Loop(1001) = {9, 13, 17, -33, -29, -25, -21};
Plane Surface(1001) = {1001};
Surface Loop(3000) = {12, 16, 20, 24, 28, 32, 36, 1000, 1001};
Volume(3000) = {3000};

// Physical labels
Physical Surface("Lamina_Sclera") = {12, 16, 20}; // Integral
Physical Surface("Out") = {1000} ; // Neumann
Physical Surface("Lamina_Retina") = {1001} ; // Neumann
Physical Surface("Hole") = {24, 28, 32, 36}; // Dirichlet
Physical Volume("Lamina") = {3000};

3. Outputs

Currently available outputs in Feel model:

  • blood velocities in retinal circulation. Those values are exported in a [time,value] .csv file. For example the blood velocity in CRA/CRV.

  • 3D visualization (though Paraview) of the discharge velocity and pressure fields. From those fields, all derived quantities can be retrieved, for example the mean pressure on the interface between lamina and sclera.

4. Running the case

mpirun -np 4 feelpp_e2b_omvs --config-file eye2brain/level1.cfg

5. Advanced Usage

5.1. Advanced Numerical Inputs

The configuration of the model is made through 3 input files :

  • the .cfg file contains the configuration of the model (tipe step, mesh size, solver configuration, …​)

  • the .json file contains the physical parameters and a description of the boundary conditions of the model

  • the .geo or .msh file contains the geometry description or the mesh of the computation domain.

Here is a non-exhaustive list of inputs that can be modified in the .cfg file :

  • gmsh.filename : the .geo, .msh or .json/.h5 file used to describe the domain

  • gmsh.hsize : characteristic length used to generate the mesh from .geo file

  • mixedpoisson.filename : the .json file used to describe the model

  • bdf.order : order of the time discretization method

  • bdf.ts.time-step : time step of the time discretization algorithm

Here is a list of the principal features defined in the .json file :

  • Materials: definition of domain properties (e.g. k is the permeability coefficient)

  • Potential: definition of InitialSolution, SourceTerm, Dirichlet boundary condition and Neumann boundary condition

  • Flux: definition of the Integral boundary condition

  • ExactSolution: definition of the exact solution (if any) to which compare the numerical outcomes

  • PostProcess: definition of exported quantities

6. Bibliography

References for this application
  • Carichino L, Guidoboni G, Szopos M. Energy-based operator splitting approach for the time discretization of coupled systems of partial and ordinary differential equations for fluid flows: The Stokes case. Journal of Computational Physics. 2018 Jul 1;364:235-56.