Cardinal Elements of an Aging Human Eye Model with a Gradient-Index Crystalline Lens

corneaR1=7.79;corneaR2=6.53; corneaK1[edad_]:=-0.24+0.003*edad;corneaK2[edad_]:= -0.006*edad;

corneathickness=0.579 ;

corneaindex[lambda_]:=1.361594+(6009.687/(lambda^2))-(676076000/(lambda^4))+(59084500000000/(lambda^6));

acuosothickness[edad_]:=3.291-0.01*edad;

acuosoindex[lambda_]:=1.321631+(6070.796/(lambda^2))-(706230500/(lambda^4))+(61478610000000/(lambda^6));

lensR1[edad_]:=12.7-0.058*edad; lensR2[edad_]:=-5.9+0.0015*edad;

lensthickness[edad_]:=2.93+0.0236*edad;

n0[lambda_]:=(Sqrt[1+((-30.121153*(lambda^2))/(-19383097-(lambda^2)))+((-0.809941*(lambda^2))/(17803-(lambda^2)))+((-156.88487*(lambda^2))/(107420080-(lambda^2)))]);

n1[edad_]:=0.0394-0.000355*edad;  n2[edad_]:=1.238-0.00561*edad;

n3[edad_]:=0.1092-0.00077*edad; n4[edad_]:=0.79-0.00312*edad;

n5[edad_]:=-0.00235+0.0000132*edad;

lensindex[lambda_,edad_,x_,y_,z_]:=n0[lambda]+n1[edad]*(Cos[n2[edad]*x]-1)+n3[edad]*Sin[n4[edad]*x]+n5[edad]*((z^2)+(y^2));

vitreothickness[edad_]:=16.79-0.0136*edad;

vitreoindex[lambda_]:=1.322357+(5560.24/(lambda^2))-(581739100/(lambda^4))+(50368100000000/(lambda^6));

R[radio_,nimg_,nobj_]:={{1,0},{-((nimg-nobj)/(radio nimg)),nobj/nimg}};

T[espesor_]:={{1,espesor},{0,1}};

beta[lambda_,edad_]:=Integrate[n5[edad],{x,0,lensthickness[edad]}]/(lensthickness[edad]*lensindex[lambda,edad,lensthickness[edad],0,0] -2*(Integrate[n5[edad]*x^2,{x,0,lensthickness[edad]}]))

elemC[lambda_,edad_]:=2*beta[lambda,edad]* lensthickness[edad]

elemA[lambda_,edad_]:=1+beta[lambda,edad]*lensthickness[edad]^2

elemB[lambda_,edad_]:=(lensthickness[edad]/2)*(1+((lensindex[lambda,edad,0,0,0])/(lensindex[lambda,edad,lensthickness[edad],0,0]))+(beta[lambda,edad]*lensthickness[edad]^2 ))

elemD[lambda_,edad_]:=((lensindex[lambda,edad,0,0,0])/(lensindex[lambda,edad,lensthickness[edad],0,0]))+(beta[lambda,edad]*lensthickness[edad]^2)

FirstOrder[lambda_,edad_,matrix_]:=Module[{ABCD,vphp,vpnp,vn,vh,entpupil,extpupil,cristpupilcong,corneapupilcong,ent,ext,results},ABCD=matrix;phip=-ABCD[[2,1]]*1000*vitreoindex[lambda];vphp=((1-ABCD[[1,1]])/(ABCD[[2,1]]));vpnp=((-1(ABCD[[1,1]]-Det[matrix]))/(ABCD[[2,1]]));vh=(((ABCD[[2,2]]-Det[matrix]))/(ABCD[[2,1]]));vn=(((ABCD[[2,2]]-1))/(ABCD[[2,1]]));corneapupilcong=T[acuosothickness[edad]].ABCDcornea[lambda,edad].T[ent] ;sol=Solve[corneapupilcong[[1,2]]==0,ent]; entpupil=sol[[1,1,2]];cristpupilcong=T[ext].ABCDcrist[lambda,edad].T[0]  ;sol=Solve[cristpupilcong[[1,2]]==0,ext]; extpupil=sol[[1,1,2]];results=Text@Style[Column@{
"","eye ABCD matrix = "MatrixForm[ABCD],
"power = "<>ToString[phip]<>" D","crystalline lens second surface vertex to principal point P' = "<>ToString[vphp]<>" mm","crystalline lens second surface vertex to nodal point N' = "<>ToString[vpnp]<>" mm","distance from crystalline lens second surface vertex to exit pupil E' = "<>ToString[extpupil]<>" mm","cornea first surface vertex to principal point P = "<>ToString[vh]<>" mm","cornea first surface vertex to nodal point N = "<>ToString[vn]<>" mm","distance from cornea second surface vertex to entrance pupil E = "<>ToString[-entpupil]<>" mm"},14]];

ABCDGRIN[lambda_,edad_]:={{elemA[lambda,edad],elemB[lambda,edad]},{elemC[lambda,edad],elemD[lambda,edad]}};

ABCDeye[lambda_,edad_]:=R[lensR2[edad],vitreoindex[lambda],lensindex[lambda,edad,lensthickness[edad],0,0]].ABCDGRIN[lambda,edad] .R[lensR1[edad],lensindex[lambda,edad,0,0,0],acuosoindex[lambda]].T[acuosothickness[edad]].R[corneaR2,acuosoindex[lambda],corneaindex[lambda]].T[corneathickness].R[corneaR1,corneaindex[lambda],1];

ABCDcornea[lambda_,edad_]:=R[corneaR2,acuosoindex[lambda],corneaindex[lambda]].T[corneathickness].R[corneaR1,corneaindex[lambda],1];

ABCDcrist[lambda_,edad_]:=R[lensR2[edad],vitreoindex[lambda],lensindex[lambda,edad,lensthickness[edad],0,0]].ABCDGRIN[lambda,edad] .R[lensR1[edad],lensindex[lambda,edad,0,0,0],acuosoindex[lambda]];

SchematicEye[lambda_,edad_,matrix_]:=Module[{irispos,crist,cornea,retina,Npos,Hpos,Nprimapos,Hprimapos,entpupil,extpupil,cristpupilcong,corneapupilcong,ent,ext},irispos=corneathickness+acuosothickness[edad];Hpos=(((matrix[[2,2]]-Det[matrix]))/(matrix[[2,1]]));Npos=(((matrix[[2,2]]-1))/(matrix[[2,1]]));Nprimapos=((-1(matrix[[1,1]]-Det[matrix]))/(matrix[[2,1]]));Hprimapos=((1-matrix[[1,1]])/(matrix[[2,1]]));corneapupilcong=T[acuosothickness[edad]].ABCDcornea[lambda,edad].T[ent] ;sol=Solve[corneapupilcong[[1,2]]==0,ent]; entpupil=-1*sol[[1,1,2]];cristpupilcong=T[ext].ABCDcrist[lambda,edad].T[0]  ;sol=Solve[cristpupilcong[[1,2]]==0,ext]; extpupil=sol[[1,1,2]];crist=RegionPlot[lensindex[lambda,edad,x-corneathickness-acuosothickness[edad],y,0]-n0[lambda]>0 ,{x,0,lensthickness[edad]+0.025+corneathickness+acuosothickness[edad]},{y,-4.9,4.9}, AspectRatio-> Automatic,PlotStyle->Directive[Lighter[Blue,.5], Opacity[0.2]]] ;cornea= RegionPlot[(y^2)+(1+corneaK1[edad])*(((x))^2)-2 corneaR1*(x)<0 &&  (y^2)+(1+corneaK2[edad])*(((x-corneathickness))^2)-2 corneaR2*(x-corneathickness)>0,{x,0,3.43},{y,-4.5,4.5}, AspectRatio->Automatic,PlotStyle->Directive[Lighter[Blue,.5], Opacity[0.2]]];retina=ContourPlot[(y^2)+1.25*(((x-23.59))^2)+2 12.72 (x-23.59)==0 ,{x,20.16,23.59},{y,-4.9,4.9}, AspectRatio-> Automatic] ;Show[Graphics[{{PointSize[0.009],Point[{{entpupil,0},{extpupil+lensthickness[edad]+corneathickness+acuosothickness[edad],0},{Hpos,0},{Npos,0},{Hprimapos+lensthickness[edad]+corneathickness+acuosothickness[edad],0},{Nprimapos+lensthickness[edad]+corneathickness+acuosothickness[edad],0}}]},Text[Style["cornea"],{1,-6}],Text["iris",{irispos,6}],Text["crystalline lens",{6,-6}],Text["retina",{22,-6}],Text["P",{Hpos,0.5}],Text["F'",{23.09,0.5}],Text["N",{Npos,0.5}],Text["E",{entpupil,-0.6}],Text["E'",{extpupil+lensthickness[edad]+corneathickness+acuosothickness[edad]+0.1,-0.6}],Text["P'",{Hprimapos+lensthickness[edad]+corneathickness+acuosothickness[edad]+0.5,0.5}],Text["N'",{Nprimapos+lensthickness[edad]+corneathickness+acuosothickness[edad]+0.5,0.5}],{Line[{{irispos,-4},{irispos,-3}}]},{Line[{{irispos,3},{irispos,4}}]},{Dashed,Line[{{-2,0},{25,0}}]}}],cornea,crist,retina, PlotRange-> All, Frame-> False,PlotLabel-> Style["Schematic Eye",Bold, Medium],BaseStyle->{Medium,"Label"},ImageSize-> {400,250}]]

Manipulate[
Column[{
SchematicEye[lambda,edad,ABCDeye[lambda,edad]],
Style["Paraxial Data", Bold, "Label"],Pane[FirstOrder[lambda,edad,ABCDeye[lambda,edad]],ImageSize->{500,200}]
},
Center],
{{edad,25,"age (years)"},20,65,1,Appearance-> "Labeled"},{{lambda,555,"wavelength (nm)"},400,700,1,Appearance-> "Labeled"},
 SaveDefinitions-> True,SynchronousUpdating->False]

CAPTION

This Demonstration calculates and graphically illustrates the relevant cardinal elements (as a function of the age and the wavelength) of a relaxed emmetropic human eye model having a GRIN crystalline lens.

DETAILS

The human eye is an optical system with two components: the cornea and the crystalline lens, with a diaphragm (iris) in contact with the lens. Despite the accommodation process, it is well known that the biometrical data of the human eye changes with age, as does the gradient of the refractive index structure. Therefore, the paraxial properties of the human eye as an optical system evolve with aging. The ABCD matrix formalism has proved to be a good tool to characterize the optical system in the paraxial regime. However, when the optical system has a gradient index element, an ABCD matrix for this element needs to be formulated. Gathering information concerning the aging of the biometric ocular data, a model of the human eye has been created, accurate both anatomically and optically. Together with the ABCD matrix for the GRIN crystalline lens, it is possible to determine the relevant paraxial parameters for the eye model. These parameters—which also vary with the wavelength in the visible part of the electromagnetic spectrum, as the ocular media show light dispersion—help us to study and to teach how the relaxed and emmetropic human eye forms an image on the retina.

A. Gerrard and J. Burch, Introduction to Matrix Methods in Optics, New York: Dover Publishing Inc., 1975.

J. A. Díaz, C. Pizarro, and J. Arasa, "Single Dispersive Gradient-Index Profile for the Aging Human Lens," Journal of the Optical Society of America A, 25(1), 2008 pp. 250–261.

J. A. Díaz, "ABCD Matrix of the Human Lens Gradient-Index Profile: Applicability of the
Calculation Methods," Applied Optics, 47(2), 2008 pp. 195–205.

THIS NOTEBOOK IS THE SOURCE CODE FROM

"Cardinal Elements of an Aging Human Eye Model with a Gradient-Index Crystalline Lens" from the Wolfram Demonstrations Project
 http://demonstrations.wolfram.com/CardinalElementsOfAnAgingHumanEyeModelWithAGradientIndexCrys/

Contributed by: José A. Díaz, José Fernández-Dorado, Josep Arasa, and Carles Pizarro

A full-function Wolfram Mathematica system (Version 6 or higher) is required to edit this notebook.
GET WOLFRAM MATHEMATICA »

© Wolfram Demonstrations Project & Contributors   |   Terms of Use   |   Make a new version of this Demonstration »