diff --git a/examples/uopa_graph.rs b/examples/uopa_graph.rs index 1862a432eb86690254371ef7f53fa93ce1b2ae1c..e76287dbd3a3adaab3d036158a6b338b0bfbe6b9 100644 --- a/examples/uopa_graph.rs +++ b/examples/uopa_graph.rs @@ -33,11 +33,12 @@ fn main() { scenery.connect_nodes(pump_splitter_node, uOPA_2_node); let mut scenery_2 = OpticScenery::new(); - scenery_2.set_description("PHELIX uOPA Pump Pre-Amplifier".into()); let spm_node = scenery_2.add_node(OpticNode::new("SPM", Box::new(NodeDummy))); - let circ_node = scenery_2.add_node(OpticNode::new("Circulator", Box::new(NodeDummy))); + let circ1_node = scenery_2.add_node(OpticNode::new("Circulator Port 1", Box::new(NodeDummy))); + let circ2_node = scenery_2.add_node(OpticNode::new("Circulator Port 2", Box::new(NodeDummy))); + let circ3_node = scenery_2.add_node(OpticNode::new("Circulator Port 3", Box::new(NodeDummy))); let cfbg_node = scenery_2.add_node(OpticNode::new("CFBG", Box::new(NodeDummy))); let isolator1_node = scenery_2.add_node(OpticNode::new("FI", Box::new(NodeDummy))); let tap1_node = scenery_2.add_node(OpticNode::new("Tap", Box::new(NodeDummy))); @@ -50,9 +51,44 @@ fn main() { let yb_fiber2_node_node = scenery_2.add_node(OpticNode::new("Yb-Fiber 2", Box::new(NodeDummy))); let dichroic_node = scenery_2.add_node(OpticNode::new("DCM", Box::new(NodeDummy))); let diode2_node = scenery_2.add_node(OpticNode::new("Laser Diode", Box::new(NodeDummy))); + let monitor1_node = scenery_2.add_node(OpticNode::new("Monitor", Box::new(NodeDummy))); + let monitor2_node = scenery_2.add_node(OpticNode::new("Monitor", Box::new(NodeDummy))); + let monitor3_node = scenery_2.add_node(OpticNode::new("Monitor", Box::new(NodeDummy))); + + scenery_2.connect_nodes(spm_node, circ1_node); + scenery_2.connect_nodes(circ1_node, circ2_node); + scenery_2.connect_nodes(circ2_node, cfbg_node); + scenery_2.connect_nodes(cfbg_node, circ3_node); + scenery_2.connect_nodes(cfbg_node, monitor1_node); + scenery_2.connect_nodes(circ3_node, isolator1_node); + scenery_2.connect_nodes(isolator1_node, tap1_node); + scenery_2.connect_nodes(tap1_node, monitor2_node); + scenery_2.connect_nodes(tap1_node, wdm_node); + scenery_2.connect_nodes(diode1_node, wdm_node); + scenery_2.connect_nodes(wdm_node, yb_fiber1_node); + scenery_2.connect_nodes(yb_fiber1_node, tap2_node); + scenery_2.connect_nodes(tap2_node, monitor3_node); + scenery_2.connect_nodes(tap2_node, aom_node); + scenery_2.connect_nodes(aom_node, isolator2_node); + scenery_2.connect_nodes(isolator2_node, yb_fiber2_node_node); + scenery_2.connect_nodes(yb_fiber2_node_node, dichroic_node); + scenery_2.connect_nodes(dichroic_node, dichroic_node); + scenery_2.connect_nodes(diode2_node, dichroic_node); + + + let mut scenery_3 = OpticScenery::new(); + scenery_3.set_description("PHELIX uOPA Pump Regenerative Main-Amplifier".into()); - scenery_2.connect_nodes(spm_node, circ_node); - scenery_2.connect_nodes(circ_node, cfbg_node); + let mut pol1_node = scenery_2.add_node(OpticNode::new("Picker Polarizer", Box::new(NodeDummy))); + let mut pc1_node = scenery_2.add_node(OpticNode::new("Pulse Picker PC", Box::new(NodeDummy))); + let mut pol2_node = scenery_2.add_node(OpticNode::new("Cavity Polarizer", Box::new(NodeDummy))); + let mut yb_yag_node = scenery_2.add_node(OpticNode::new("Yb:YAG", Box::new(NodeDummy))); + let mut pc2_node = scenery_2.add_node(OpticNode::new("Cavity PC", Box::new(NodeDummy))); + let mut qwp_node = scenery_2.add_node(OpticNode::new("Quarter Waveplate", Box::new(NodeDummy))); + let mut mirror1_node = scenery_2.add_node(OpticNode::new("Curved Mirror 1", Box::new(NodeDummy))); + + + let mut mirror2_node = scenery_2.add_node(OpticNode::new("Curved Mirror 1", Box::new(NodeDummy))); // scenery_2.connect_nodes(spm_node, circ_node); // let mira_node1 =scenery.add_node(OpticNode::new("Mira", Box::new(NodeDummy))); @@ -105,5 +141,9 @@ fn main() { let path = "uOPA.dot"; let mut output = File::create(path).unwrap(); - write!(output, "{}\n{}", scenery.to_dot()).unwrap(); + write!(output, "{}", scenery.to_dot()).unwrap(); + + let path = "uOPA_PreAmp.dot"; + let mut output = File::create(path).unwrap(); + write!(output, "{}", scenery_2.to_dot()).unwrap(); } \ No newline at end of file