4 import Data
.Map
.Strict
(lookup)
5 import Data
.Maybe (isNothing, fromJust)
7 import Numeric
.Units
.Dimensional
.Prelude
(nano
, meter
, degree
,
10 import Prelude
hiding (lookup)
14 factories
<- factories
15 let mfactory
= lookup "E6C" factories
18 return $ error $ "wrong diffractometer:" ++ show factories
20 let factory
= fromJust mfactory
21 let sample
= Sample
"test" (Cubic
(1.54 *~ nano meter
))
22 let geometry
= Geometry
(Source
(1.54 *~ nano meter
)) [0, 30, 0, 0, 0, 60]
23 let detector
= Detector DetectorType0D
25 -- compute the pseudo axes values
26 pseudoAxes
<- compute factory geometry detector sample
29 -- solve the pseudo axis problem
30 let engine
= Engine
"hkl" [ Parameter
"h" 0.0 (Range
(-1.0) 1.0)
31 , Parameter
"k" 0.0 (Range
(-1.0) 1.0)
32 , Parameter
"l" 1.0 (Range
(-1.0) 1.0)
34 (Mode
"bissector_vertical" [])
35 solutions
<- solve factory geometry detector sample engine
40 main
= replicateM_
1 main
'