boundary.py : inner/outer materials and surfaces¶
Boundaries are composed of four parts:
- outer material
- outer surface, relevant to incoming photons
- inner surface, relevant to outgoing photons
- inner material
Boundaries are created from a specification string of form “omat/osur/isur/imat” where outer and inner materials are required but surfaces are optional. For example:
In [2]: b1 = Boundary("Vacuum///GlassSchottF2")
In [3]: wl = np.linspace(100.,730.,10, dtype=np.float32)
In [4]: ri = b1.imat.refractive_index(wl)
In [8]: al = b1.imat.absorption_length(wl)
In [9]: sl = b1.imat.scattering_length(wl)
In [10]: rp = b1.imat.reemission_prob(wl)
In [11]: np.dstack([wl,ri,al,sl,rp])
Out[11]:
array([[[ 100. , 1.685, 1000000. , 1000000. , 0. ],
[ 170. , 1.685, 1000000. , 1000000. , 0. ],
[ 240. , 1.685, 1000000. , 1000000. , 0. ],
[ 310. , 1.685, 1000000. , 1000000. , 0. ],
[ 380. , 1.658, 1000000. , 1000000. , 0. ],
[ 450. , 1.638, 1000000. , 1000000. , 0. ],
[ 520. , 1.626, 1000000. , 1000000. , 0. ],
[ 590. , 1.619, 1000000. , 1000000. , 0. ],
[ 660. , 1.614, 1000000. , 1000000. , 0. ],
[ 730. , 1.611, 1000000. , 1000000. , 0. ]]])