Skip to content

Commit

Permalink
Fix: Python Reference Lifetime
Browse files Browse the repository at this point in the history
  • Loading branch information
ax3l committed Aug 31, 2022
1 parent 0dd09fd commit 9ab0898
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 6 deletions.
4 changes: 2 additions & 2 deletions src/initialization/InitDistribution.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ namespace impactx
auto const & ref = m_particle_container->GetRefParticle();
AMREX_ASSERT_WITH_MESSAGE(ref.charge_qe() != 0.0,
"add_particles: Reference particle charge not yet set!");
AMREX_ASSERT_WITH_MESSAGE(ref.energy_MeV() != 0.0,
"add_particles: Reference particle energy not yet set!");
AMREX_ASSERT_WITH_MESSAGE(ref.mass_MeV() != 0.0,
"add_particles: Reference particle mass not yet set!");
AMREX_ASSERT_WITH_MESSAGE(ref.energy_MeV() != 0.0,
"add_particles: Reference particle energy not yet set!");

Expand Down
14 changes: 10 additions & 4 deletions src/python/ReferenceParticle.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,17 @@ void init_refparticle(py::module& m)
.def_property_readonly("beta", &RefPart::beta, "Get reference particle relativistic beta")
.def_property_readonly("beta_gamma", &RefPart::beta_gamma, "Get reference particle beta*gamma")
.def_property_readonly("mass_MeV", &RefPart::mass_MeV, "Get reference particle rest mass (MeV/c^2)")
.def("set_charge_qe", &RefPart::set_mass_MeV, "Set reference particle charge (positive elementary charge)", py::arg("charge_qe"))
.def_property_readonly("charge_qe", &RefPart::energy_MeV, "Get reference particle charge (positive elementary charge)")
.def("set_mass_MeV", &RefPart::set_mass_MeV, "Set reference particle rest mass (MeV/c^2)", py::arg("mass_MeV"))
.def("set_charge_qe", &RefPart::set_charge_qe,
py::return_value_policy::reference_internal,
"Set reference particle charge (positive elementary charge)", py::arg("charge_qe"))
.def_property_readonly("charge_qe", &RefPart::charge_qe, "Get reference particle charge (positive elementary charge)")
.def("set_mass_MeV", &RefPart::set_mass_MeV,
py::return_value_policy::reference_internal,
"Set reference particle rest mass (MeV/c^2)", py::arg("mass_MeV"))
.def_property_readonly("energy_MeV", &RefPart::energy_MeV, "Get reference particle energy (MeV)")
.def("set_energy_MeV", &RefPart::set_energy_MeV, "Set reference particle energy (MeV)", py::arg("energy_MeV"))
.def("set_energy_MeV", &RefPart::set_energy_MeV,
py::return_value_policy::reference_internal,
"Set reference particle energy (MeV)", py::arg("energy_MeV"))
.def_property_readonly("qm_qeeV", &RefPart::qm_qeeV, "Get reference particle charge to mass ratio (charge/eV)")
;
}

0 comments on commit 9ab0898

Please sign in to comment.