def test_nuclear_reaction_energy_triple_alpha(): triple_alpha1 = "alpha + He-4 --> Be-8" triple_alpha2 = "Be-8 + alpha --> carbon-12" energy_triplealpha1 = nuclear_reaction_energy(triple_alpha1) energy_triplealpha2 = nuclear_reaction_energy(triple_alpha2) assert np.isclose(energy_triplealpha1.to(u.keV).value, -91.8, atol=0.1) assert np.isclose(energy_triplealpha2.to(u.MeV).value, 7.367, atol=0.1) reactants = ["He-4", "alpha"] products = ["Be-8"] energy = nuclear_reaction_energy(reactants=reactants, products=products) assert np.isclose(energy.to(u.keV).value, -91.8, atol=0.1)
def __gt__(self, other): from plasmapy.particles.nuclear import nuclear_reaction_energy other_as_particle_list = self._cast_other_as_particle_list(other) return nuclear_reaction_energy( reactants=self.symbols, products=other_as_particle_list.symbols )
def test_particle_gt_as_radioactive_decay(): """ Test a nuclear reaction where a `Particle` instance is the sole reactant on the left side. """ tritium = Particle("T") expected_energy = nuclear_reaction_energy("T -> He-3 + e") actual_energy = tritium > Particle("He-3") + "e" assert u.allclose(expected_energy, actual_energy)
def test_particle_list_gt_as_nuclear_reaction_energy(): """ Test that `ParticleList.__gt__` can be used to get the same result as `nuclear_reaction_energy`. """ reactants = ParticleList(["D+", "T+"]) products = ParticleList(["alpha", "n"]) expected_energy = nuclear_reaction_energy("D + T --> alpha + n") actual_energy = reactants > products assert u.allclose(expected_energy, actual_energy)
def test_nuclear_reaction_energy(): reaction1 = "D + T --> alpha + n" reaction2 = "T + D -> n + alpha" released_energy1 = nuclear_reaction_energy(reaction1) released_energy2 = nuclear_reaction_energy(reaction2) assert np.isclose((released_energy1.to(u.MeV)).value, 17.58, rtol=0.01) assert released_energy1 == released_energy2 assert nuclear_reaction_energy( "n + p+ --> n + p+ + p- + p+") == nuclear_reaction_energy( "n + p+ --> n + 2*p+ + p-") nuclear_reaction_energy("neutron + antineutron --> neutron + antineutron")
def test_nuclear_reaction_energy_kwargs(reactants, products, expectedMeV, tol): energy = nuclear_reaction_energy(reactants=reactants, products=products).si expected = (expectedMeV * u.MeV).si assert np.isclose(expected.value, energy.value, atol=tol)
def test_nuclear_reaction_energy_beta(): energy1 = nuclear_reaction_energy(reactants=["n"], products=["p", "e-"]) assert np.isclose(energy1.to(u.MeV).value, 0.78, atol=0.01) energy2 = nuclear_reaction_energy(reactants=["Mg-23"], products=["Na-23", "e+"]) assert np.isclose(energy2.to(u.MeV).value, 3.034591, atol=1e-5)
def test_nuclear_reaction_energy_triple_alpha_r(): triple_alpha1_r = "4*He-4 --> 2*Be-8" energy_triplealpha1_r = nuclear_reaction_energy(triple_alpha1_r) assert np.isclose(energy_triplealpha1_r.to(u.keV).value, -91.8 * 2, atol=0.1)
def test_nuclear_reaction_energy_alpha_decay(): alpha_decay_example = "U-238 --> Th-234 + alpha" energy_alpha_decay = nuclear_reaction_energy(alpha_decay_example) assert np.isclose(energy_alpha_decay.to(u.MeV).value, 4.26975, atol=1e-5)
def test_nuclear_reaction_energy(): reactants = ["D", "T"] products = ["alpha", "n"] expected = 17.6 * u.MeV actual = nuclear_reaction_energy(reactants=reactants, products=products) assert u.isclose(actual, expected, rtol=1e-3)