Skip to content
Snippets Groups Projects
Commit e68b7b9c authored by Udo Eisenbarth's avatar Udo Eisenbarth :speech_balloon:
Browse files

Further extend example.

Attacks #164
parent d0fb21b6
No related branches found
Tags LV2012
1 merge request!126Add further components to hhts model.
......@@ -105,7 +105,7 @@ fn main() -> OpmResult<()> {
Length::new::<millimeter>(7.68327),
&refr_index_hzf2,
)?);
let d6 = scenery.add_node(Propagation::new("d6", Length::new::<millimeter>(50.0))?);
let d6 = scenery.add_node(Propagation::new("d6", Length::new::<millimeter>(100.0))?);
scenery.connect_nodes(src, "out1", d1, "front")?;
scenery.connect_nodes(d1, "rear", t1_l1a, "front")?;
scenery.connect_nodes(t1_l1a, "rear", d2, "front")?;
......@@ -118,9 +118,6 @@ fn main() -> OpmResult<()> {
scenery.connect_nodes(d5, "rear", t1_l2c, "front")?;
scenery.connect_nodes(t1_l2c, "rear", d6, "front")?;
let det_prop = scenery.add_node(RayPropagationVisualizer::new("Ray propgation"));
scenery.connect_nodes(d6, "rear", det_prop, "in1")?;
// Dichroic beam splitter (1w/2w)
let short_pass_spectrum = generate_filter_spectrum(
Length::new::<nanometer>(400.0)..Length::new::<nanometer>(2000.0),
......@@ -131,11 +128,70 @@ fn main() -> OpmResult<()> {
)?;
let short_pass = SplittingConfig::Spectrum(short_pass_spectrum);
let bs = scenery.add_node(BeamSplitter::new("Dichroic Beam Splitter", &short_pass)?);
scenery.connect_nodes(det_prop, "out1", bs, "input1")?;
scenery.connect_nodes(d6, "rear", bs, "input1")?;
// 1w branch
// Distance T1 -> T2 1w 637.5190 (-100.0 because of d6)
let d_1w_7=scenery.add_node(Propagation::new("1w d7", Length::new::<millimeter>(537.5190))?);
let t2_1w_in=scenery.add_node(Lens::new(
"T2 1w In",
Length::new::<millimeter>(405.38435),
Length::new::<millimeter>(-702.52114),
Length::new::<millimeter>(9.5),
&refr_index_hk9l,
)?);
let d_1w_8=scenery.add_node(Propagation::new("1w d8", Length::new::<millimeter>(442.29480))?);
let t2_1w_field=scenery.add_node(Lens::new(
"T2 1w Field",
Length::new::<millimeter>(179.59020),
Length::new::<millimeter>(f64::INFINITY),
Length::new::<millimeter>(9.5),
&refr_index_hk9l,
)?);
let d_1w_9=scenery.add_node(Propagation::new("1w d9", Length::new::<millimeter>(429.20520))?);
let t2_1w_exit=scenery.add_node(Lens::new(
"T2 1w Exit",
Length::new::<millimeter>(f64::INFINITY),
Length::new::<millimeter>(-202.81235),
Length::new::<millimeter>(9.5),
&refr_index_hk9l,
)?);
let d_1w_10=scenery.add_node(Propagation::new("1w d10", Length::new::<millimeter>(664.58900))?);
let t3_1w_input=scenery.add_node(Lens::new(
"T3 1w Input",
Length::new::<millimeter>(f64::INFINITY),
Length::new::<millimeter>(-417.35031),
Length::new::<millimeter>(9.5),
&refr_index_hk9l,
)?);
let d_1w_11=scenery.add_node(Propagation::new("1w d11", Length::new::<millimeter>(1181.0000))?);
let t3_1w_exit=scenery.add_node(Lens::new(
"T3 1w Exit",
Length::new::<millimeter>(156.35054),
Length::new::<millimeter>(f64::INFINITY),
Length::new::<millimeter>(9.5),
&refr_index_hk9l,
)?);
let d_1w_12=scenery.add_node(Propagation::new("1w d12", Length::new::<millimeter>(279.86873))?);
scenery.connect_nodes(bs, "out2_trans2_refl1", d_1w_7, "front")?;
scenery.connect_nodes(d_1w_7, "rear", t2_1w_in, "front")?;
scenery.connect_nodes(t2_1w_in, "rear", d_1w_8, "front")?;
scenery.connect_nodes(d_1w_8, "rear", t2_1w_field, "front")?;
scenery.connect_nodes(t2_1w_field, "rear", d_1w_9, "front")?;
scenery.connect_nodes(d_1w_9, "rear", t2_1w_exit, "front")?;
scenery.connect_nodes(t2_1w_exit, "rear", d_1w_10, "front")?;
scenery.connect_nodes(d_1w_10, "rear", t3_1w_input, "front")?;
scenery.connect_nodes(t3_1w_input, "rear", d_1w_11, "front")?;
scenery.connect_nodes(d_1w_11, "rear", t3_1w_exit, "front")?;
scenery.connect_nodes(t3_1w_exit, "rear", d_1w_12, "front")?;
let det_prop = scenery.add_node(RayPropagationVisualizer::new("Ray propgation 1w"));
scenery.connect_nodes(d_1w_12, "rear", det_prop, "in1")?;
let det_wavefront_1w = scenery.add_node(WaveFront::new("Wavefront 1w"));
scenery.connect_nodes(bs, "out2_trans2_refl1", det_wavefront_1w, "in1")?;
scenery.connect_nodes(det_prop, "out1", det_wavefront_1w, "in1")?;
let det_spot_diagram_1w = scenery.add_node(SpotDiagram::new("Spot diagram 1w"));
scenery.connect_nodes(det_wavefront_1w, "out1", det_spot_diagram_1w, "in1")?;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment