From d8ec4bf4343fe0f284396bf4e1755be0cdc4f0f6 Mon Sep 17 00:00:00 2001 From: Udo Eisenbarth <u.eisenbarth@gsi.de> Date: Tue, 22 Oct 2024 16:43:12 +0200 Subject: [PATCH] Update example 'laser_system' to use a ray source in combination with an energy analyzer to repeat the error. Attacking #315 --- opossum/examples/laser_system.rs | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/opossum/examples/laser_system.rs b/opossum/examples/laser_system.rs index eb23c5b0..44db4d3a 100644 --- a/opossum/examples/laser_system.rs +++ b/opossum/examples/laser_system.rs @@ -1,15 +1,16 @@ use std::path::Path; - use num::Zero; use opossum::{ analyzers::{AnalyzerType, RayTraceConfig}, error::OpmResult, - joule, millimeter, + joule, + lightdata::{DataEnergy, LightData}, + millimeter, nodes::{ - round_collimated_ray_source, BeamSplitter, EnergyMeter, IdealFilter, NodeGroup, - ParaxialSurface, SpotDiagram, + round_collimated_ray_source, BeamSplitter, EnergyMeter, IdealFilter, NodeGroup, ParaxialSurface, Source, SpotDiagram }, ray::SplittingConfig, + spectrum_helper::create_he_ne_spec, OpmDocument, }; use uom::si::f64::Length; @@ -17,11 +18,15 @@ use uom::si::f64::Length; fn main() -> OpmResult<()> { let mut scenery = NodeGroup::new("laser system"); // Main beam line - let i_src = scenery.add_node(round_collimated_ray_source( - millimeter!(1.0), - joule!(1.0), - 3, - )?)?; + + // let source = Source::new( + // "Source", + // &LightData::Energy(DataEnergy { + // spectrum: create_he_ne_spec(1.0)?, + // }), + // ); + let source = round_collimated_ray_source(millimeter!(1.0), joule!(1.0), 3)?; + let i_src = scenery.add_node(source)?; let i_l1 = scenery.add_node(ParaxialSurface::new("f=100", millimeter!(100.0))?)?; let i_l2 = scenery.add_node(ParaxialSurface::new("f=200", millimeter!(200.0))?)?; let i_bs = scenery.add_node(BeamSplitter::new("1% BS", &SplittingConfig::Ratio(0.99))?)?; @@ -79,6 +84,7 @@ fn main() -> OpmResult<()> { scenery.connect_nodes(i_f, "rear", i_cam_box, "input", Length::zero())?; let mut doc = OpmDocument::new(scenery); - doc.add_analyzer(AnalyzerType::RayTrace(RayTraceConfig::default())); + // doc.add_analyzer(AnalyzerType::RayTrace(RayTraceConfig::default())); + doc.add_analyzer(AnalyzerType::Energy); doc.save_to_file(Path::new("./opossum/playground/laser_system.opm")) } -- GitLab