From 0e3f6a8c625ed0dc04d782adc2fa82b7e6fe1ada Mon Sep 17 00:00:00 2001 From: Walter Van Herck <w.van.herck@fz-juelich.de> Date: Tue, 24 Oct 2017 16:01:13 +0200 Subject: [PATCH] Export polarization of Beam to Python and use scientific double for external field in Python --- Core/Export/ExportToPython.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/Core/Export/ExportToPython.cpp b/Core/Export/ExportToPython.cpp index e54b2ace3a3..87f547ed9e4 100644 --- a/Core/Export/ExportToPython.cpp +++ b/Core/Export/ExportToPython.cpp @@ -658,9 +658,9 @@ std::string ExportToPython::defineMultiLayers() const if (external_field.mag()>0.0) { std::string field_name = it->second + "_external_field"; result << indent() << field_name << " = kvector_t(" - << printDouble(external_field.x()) << ", " - << printDouble(external_field.y()) << ", " - << printDouble(external_field.z()) << ")\n"; + << printScientificDouble(external_field.x()) << ", " + << printScientificDouble(external_field.y()) << ", " + << printScientificDouble(external_field.z()) << ")\n"; result << indent() << it->second << ".setExternalField(" << field_name << ")\n"; } @@ -815,6 +815,16 @@ std::string ExportToPython::defineBeam(const GISASSimulation* simulation) const << printNm(beam.getWavelength()) << ", " << printDegrees(beam.getAlpha()) << ", " << printDegrees(beam.getPhi()) << ")\n"; + auto bloch_vector = beam.getBlochVector(); + if (bloch_vector.mag()>0.0) { + std::string beam_polarization = "beam_polarization"; + result << indent() << beam_polarization << " = kvector_t(" + << printDouble(bloch_vector.x()) << ", " + << printDouble(bloch_vector.y()) << ", " + << printDouble(bloch_vector.z()) << ")\n"; + result << indent() << "simulation.setBeamPolarization(" + << beam_polarization << ")\n"; + } double beam_intensity = beam.getIntensity(); if(beam_intensity > 0.0) result << indent() << "simulation.setBeamIntensity(" -- GitLab