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

Add NodeBeamSplitter.

Add port information for NodeDummy & NodeBeamSplitter
parent 2bed0cb1
No related branches found
No related tags found
No related merge requests found
use opossum::optic_scenery::OpticScenery; use opossum::optic_scenery::OpticScenery;
use opossum::nodes::NodeDummy; use opossum::nodes::{NodeDummy, NodeBeamSplitter};
use std::fs::File; use std::fs::File;
use std::io::Write; use std::io::Write;
...@@ -19,7 +19,7 @@ fn main() { ...@@ -19,7 +19,7 @@ fn main() {
let pump_main_amplifier_node = scenery.add_element("Pump Main-Amplifier", NodeDummy); let pump_main_amplifier_node = scenery.add_element("Pump Main-Amplifier", NodeDummy);
let pump_compressor_node = scenery.add_element("Pump Compressor", NodeDummy); let pump_compressor_node = scenery.add_element("Pump Compressor", NodeDummy);
let pump_shg_node = scenery.add_element("Pump SHG", NodeDummy); let pump_shg_node = scenery.add_element("Pump SHG", NodeDummy);
let pump_splitter_node = scenery.add_element("Pump Beam Splitter", NodeDummy); let pump_splitter_node = scenery.add_element("Pump Beam Splitter", NodeBeamSplitter);
scenery.connect_nodes(pulse_generation_split_node, uOPA_1_node); scenery.connect_nodes(pulse_generation_split_node, uOPA_1_node);
scenery.connect_nodes(pulse_generation_split_node, pump_pre_amplifier_node); scenery.connect_nodes(pulse_generation_split_node, pump_pre_amplifier_node);
......
...@@ -2,7 +2,9 @@ ...@@ -2,7 +2,9 @@
mod node_dummy; mod node_dummy;
mod node_reference; mod node_reference;
mod node_group; mod node_group;
mod node_beam_splitter;
pub use node_dummy::NodeDummy; pub use node_dummy::NodeDummy;
pub use node_reference::NodeReference; pub use node_reference::NodeReference;
pub use node_group::NodeGroup; pub use node_group::NodeGroup;
\ No newline at end of file pub use node_beam_splitter::NodeBeamSplitter;
\ No newline at end of file
use crate::{optic_node::Optical, optic_ports::OpticPorts};
pub struct NodeBeamSplitter;
impl Optical for NodeBeamSplitter {
fn node_type(&self) -> &str {
"ideal beam splitter"
}
fn ports(&self) -> OpticPorts {
let mut ports=OpticPorts::new();
ports.add_input("input").unwrap();
ports.add_output("transmitted").unwrap();
ports.add_output("reflected").unwrap();
ports
}
}
use crate::optic_node::Optical; use crate::optic_node::Optical;
use crate::optic_ports::OpticPorts;
/// A fake / dummy component without any functions. It is mainly used for development and debugging purposes. /// A fake / dummy component without any functions. It is mainly used for development and debugging purposes.
pub struct NodeDummy; pub struct NodeDummy;
...@@ -8,4 +9,10 @@ impl Optical for NodeDummy { ...@@ -8,4 +9,10 @@ impl Optical for NodeDummy {
fn node_type(&self) -> &str { fn node_type(&self) -> &str {
"dummy" "dummy"
} }
} fn ports(&self) -> OpticPorts {
\ No newline at end of file let mut ports=OpticPorts::new();
ports.add_input("front").unwrap();
ports.add_output("rear").unwrap();
ports
}
}
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