Lots of changes

This commit is contained in:
2022-10-12 15:56:48 +02:00
parent a61f15df44
commit cb2dad39ec
9 changed files with 227 additions and 43 deletions

View File

@@ -1,12 +1,15 @@
module Main where
import Control.Lens
import Criterion.Main
import Data.Either
import Petzval.Optics
import Petzval.Optics.RTM
import Petzval.System
import Petzval.Trace
import Petzval.Calculations
import Petzval.Optimization
import Petzval.Types
import Linear
import Numeric.AD.Mode (Scalar, Mode)
@@ -23,8 +26,8 @@ n_ssk8 = SellemeierMat [ (1.44857867, 1.17965926e-01)
system1 =
[ Stop{_thickness = 0, _outsideRadius=5}
, Surface{_material = bk7, _thickness = 10, _roc = 100, _outsideRadius=0}
, Surface{_material = air, _thickness = 95, _roc = -100, _outsideRadius=0}
, Surface{_material = bk7, _thickness = 10, _roc = 100, _outsideRadius=10}
, Surface{_material = air, _thickness = 95, _roc = -100, _outsideRadius=10}
]
system2 =
@@ -40,7 +43,7 @@ system2 =
where s_sk16 = ConstMat 1.620408
s_f4 = ConstMat 1.616589
merit :: (Material mat, RealFloat a, Scalar a ~ Double, Epsilon a, Mode a) => [Element mat a] -> a
merit :: (Material mat, Calcuable a) => [Element mat a] -> a
-- merit :: (Material mat) => [Element mat Double] -> Double
merit system = result
where baked = bake 0.587618 system
@@ -53,9 +56,13 @@ merit system = result
. rights
. map fst
. map (raytrace baked . createRay Nothing ep angle)
$ spiralPattern 100)
$ spiralPattern 10)
$ [0, 7.07, 15]
type Id a = a -> a
main :: IO ()
main =
let baked = bake 0.587618 system2
@@ -65,3 +72,10 @@ main =
putStrLn $ show ep
putStrLn $ show $ rearFocalLength $ lensRTM baked
putStrLn $ show $ mconcat (seidel ep fa baked :: [Seidel Double])
defaultMain [
bgroup "merit" [ bench "system1" $ nf merit (system1 :: [Element SellemeierMat Double])
, bench "system2" $ nf merit (system2 :: [Element ConstMat Double])
]
, bgroup "ad" [ bench "system1" $ nf (gradientAt (ix 1.thickness) merit) system1
]
]