Пример #1
0
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)
Пример #2
0
    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
        )
Пример #3
0
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)
Пример #4
0
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)
Пример #5
0
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")
Пример #6
0
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)
Пример #7
0
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)
Пример #8
0
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)
Пример #9
0
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)
Пример #10
0
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)