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.
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 ofInitialSolution
,SourceTerm
,Dirichlet
boundary condition andNeumann
boundary condition -
Flux
: definition of theIntegral
boundary condition -
ExactSolution
: definition of the exact solution (if any) to which compare the numerical outcomes -
PostProcess
: definition of exported quantities