1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#include <math.h>
#include "refractive_index.h"
static double A0 = 0.243905091;
static double A1 = 9.53518094e-3;
static double A2 = -3.64358110e-3;
static double A3 = 2.65666426e-4;
static double A4 = 1.59189325e-3;
static double A5 = 2.45733798e-3;
static double A6 = 0.897478251;
static double A7 = -1.63066183e-2;
static double UV = 0.2292020;
static double IR = 5.432937;
double get_index(double p, double wavelength, double T)
{
/* Returns the index of pure water for a given density, wavelength, and
* temperature. The density should be in units of kg/m^3, the wavelength in
* nm, and the temperature in Celsius. */
/* normalize the density, temperature, and pressure */
p = p/1000.0;
wavelength = wavelength/589.0;
T = (T+273.15)/273.15;
/* first we compute the right hand side of Equation 7 */
double c = A0 + A1*p + A2*T + A3*pow(wavelength,2)*T + A4/pow(wavelength,2) + A5/(pow(wavelength,2)-pow(UV,2)) + A6/(pow(wavelength,2)-pow(IR,2)) + A7*pow(p,2);
c *= p;
return sqrt((2*c+1)/(1-c));
}
|