Skip to content

Commit

Permalink
tidy up spacing
Browse files Browse the repository at this point in the history
  • Loading branch information
shimwell committed Jan 14, 2025
1 parent d833714 commit a6ddf43
Showing 1 changed file with 66 additions and 31 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"# Simulating Displacements Per Atom (DPA)\n",
"# Simulating Displacements Per Atom (DPA) with the NRT and ARC method\n",
"\n",
"Displacements per atom (DPA) is one measure of damage within materials exposed to neutron irradiation. Damage energy can be tallied in OpenMC with MT reaction number 444 and DPA can be estimated.\n",
"Displacements per atom (DPA) is one measure of damage within materials exposed to neutron irradiation. Damage energy can be tallied in OpenMC with MT reaction number 444 or score \"damage-energy\" and DPA can be estimated.\n",
"\n",
"In the case of DPA a neutronics code alone can't fully calculate the value as material science techniques are needed to account for the material and recombination effects. For example, after a displacement there is a chance that the atom relocates to it's original lattice position (recombination) and different atoms require different amounts of energy to [displace](https://fispact.ukaea.uk/wiki/Output_interpretation#DPA_and_KERMA). The DPA tally from neutronics is therefore only an estimate of the DPA.\n",
"\n",
Expand All @@ -32,7 +32,7 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
Expand Down Expand Up @@ -107,7 +107,7 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
Expand All @@ -124,7 +124,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"This runs the simulation."
"Then runs the simulation."
]
},
{
Expand All @@ -145,6 +145,11 @@
"This extracts the simulation results and displays the damage-energy (444 MT number tally) for each nuclide"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
},
{
"cell_type": "code",
"execution_count": null,
Expand Down Expand Up @@ -187,11 +192,18 @@
"\n",
"print('Damage energy deposited per source neutron = ', f\"{damage_energy_in_ev:.2f}\", 'eV\\n')\n",
"\n",
"print('Two times the threshold energy of 40eV is needed to displace an atom')\n",
"print('Two times the threshold energy of 40eV is needed to displace an atom\\n')\n",
"displacements_per_source_neutron = 0.8*damage_energy_in_ev / (2*E_D)\n",
"print('(NRT) Displacements per source neutron = ', f\"{displacements_per_source_neutron:.2f}\", '\\n')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To scale the simulation result we need to know the number of neutrons emitted"
]
},
{
"cell_type": "code",
"execution_count": null,
Expand All @@ -202,22 +214,50 @@
"energy_per_fusion_reaction = 17.6e6 # units eV\n",
"eV_to_Joules = 1.60218e-19 # multiplication factor to convert eV to Joules\n",
"number_of_neutrons_per_second = fusion_power / (energy_per_fusion_reaction * eV_to_Joules)\n",
"print('Number of neutrons per second', f\"{number_of_neutrons_per_second:.2e}\", '\\n')\n",
"print(f'Number of neutrons per second {number_of_neutrons_per_second:.2e}\\n')\n",
"\n",
"number_of_neutrons_per_year = number_of_neutrons_per_second * 60 * 60 * 24 * 365.25\n",
"print('Number of neutrons per full power year ', f\"{number_of_neutrons_per_year:.2e}\")\n",
"\n",
"print(f\"Number of neutrons per full power year {number_of_neutrons_per_year:.2e}\")\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we can find the total number of displacements"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"displacements_for_all_atoms = number_of_neutrons_per_year * displacements_per_source_neutron\n",
"print('(NRT) Displacements for all atoms in the volume ', f\"{displacements_for_all_atoms:.2e}\", '\\n')\n",
"\n",
"print('Now the number of atoms in the volume must be found to find displacements per atom (DPA)')\n",
"\n",
"print(f'(NRT) Displacements for all atoms in the volume {displacements_for_all_atoms:.2e}')\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now the number of atoms in the volume must be found to find displacements per atom (DPA)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"volume_of_firstwall_cell = 4.18879e6 # 4/3PiR^3 with R=100\n",
"\n",
"iron_atomic_mass_in_g = 55.845*1.66054E-24 # molar mass multiplier by the atomic mass unit (u)\n",
"number_of_iron_atoms = volume_of_firstwall_cell * density_of_iron_in_g_per_cm3 / (iron_atomic_mass_in_g)\n",
"\n",
"print('Number of iron atoms in the firstwall ', f\"{number_of_iron_atoms:.2e}\")"
"number_of_iron_atoms = volume_of_firstwall_cell * density_of_iron_in_g_per_cm3 / iron_atomic_mass_in_g\n",
"\n",
"print(f'Number of iron atoms in the firstwall {number_of_iron_atoms:.2e}')"
]
},
{
Expand All @@ -242,7 +282,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Recently, a new method [3] was proposed in 2018 to solve the limitations of NRT equation. Namely, experiments have shown that \"the number of radiation defects produced in energetic cascades in metals is only ~1/3 the NRT-DPA prediction\". The arc-DPA (athermal recombination corrected) extends the NRT-DPA approach by assuming that, after the so-called 'thermal spike', \"almost all atoms regain positions in the perfect lattice sites [...] only interstitials transported to the cascade outer periphery will result in stable defects\". \n",
"Recently, a new method of simulating DPA [3] was proposed in 2018 to solve the limitations of NRT equation (covered in previous task).\n",
"\n",
"Namely, experiments have shown that \"the number of radiation defects produced in energetic cascades in metals is only ~1/3 the NRT-DPA prediction\".\n",
"\n",
"The arc-DPA (athermal recombination corrected) extends the NRT-DPA approach by assuming that, after the so-called 'thermal spike', \"almost all atoms regain positions in the perfect lattice sites [...] only interstitials transported to the cascade outer periphery will result in stable defects\". \n",
"\n",
"Hence, in order to account for this behaviour, the authors modified the original NRT equation as follows:\n",
"\n",
Expand All @@ -259,7 +303,7 @@
"metadata": {},
"outputs": [],
"source": [
"b = -0.568 # constant for Fe\n",
"b = -0.568 # constant for Fe from the paper referenced\n",
"c = 0.286\n",
"\n",
"surviving_defect_fraction_factor = (1-c)*(displacements_per_source_neutron)**b+c\n",
Expand All @@ -274,31 +318,22 @@
"\n",
"print('arc-DPA =', f\"{arc_NRT:.2f}\", '\\n')\n",
"\n",
"DPA_NRT = displacements_for_all_atoms / number_of_iron_atoms\n",
"\n",
"print('arc/NRT =', f\"{arc_NRT/DPA_NRT:.2f}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this task we knew the volume of the cell as it was a sphere of radius 100. If you don't know the volume of the cell there is a stochastic volume task that might be of interest as it shows you how OpenMC can find the volume of more complex cells.\n",
"\n",
"**Extra topics\n",
"There are better methods of predicting DPA, further reading https://www.nature.com/articles/s41467-018-03415-5/\n",
"\n",
"**Learning Outcomes for Task 6:**\n",
"\n",
"- Damage energy deposited can be found with the OpenMC MT 444 tally.\n",
"- Post tally calculations are sometimes required to convert neutronics numbers into something more useful."
"As a follow up task compare this value to estimated DPA limits in literature to see if the firstwall DPA is above or below the limits in this case"
]
}
],
"metadata": {
"interpreter": {
"hash": "388a69045c46a6cab693fa82e98fd7f2d33e04d9f9ebcb2c17dde5f00932fece"
},
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"display_name": "paramak-dev",
"language": "python",
"name": "python3"
},
Expand All @@ -312,9 +347,9 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.2"
"version": "3.12.7"
}
},
"nbformat": 4,
"nbformat_minor": 4
"nbformat_minor": 2
}

0 comments on commit a6ddf43

Please sign in to comment.