diff --git a/Core/Export/ExportToPython.cpp b/Core/Export/ExportToPython.cpp index e54b2ace3a3c8885edd23b23323e46ae4f2244a6..87f547ed9e40a57e9ee0d246d346a0229f463c79 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("