One of the first elements I’ll be writing about on this site is nuclear binding energy, and the energy that is released when two light nuclei ‘fuse’ together. To illustrate this and step through the physics, I will walk through the calculations and formulae in a post. To do that however, I wanted to pull together a data set on nuclear isotopes that a) I could run the calculations on, and b) that I could source and share.
Two sources I found here and here have two data files I combined which include the fields of: name, symbol, observed mass (important for our upcoming calculations), number of protons, number of nucleons (otherwise known as Atomic number), whether radioactive or stable, spin quantum number, nuclear g factor gn, nautral abundance, and electric quadrupole moment.
You can download the resulting data file here, and the source code for the combination in r is below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# Script to build a clean isotope database that can be used for calculations such as nuclear binding energy. install.packages("data.table") library(data.table) # Load the Symbols and Observed Weights into a data table # Sourcefile for weights here: http://www.sisweb.com/referenc/source/exactmas.htm DF <- fread("C:/Users/Nick/Documents/Projects/Project - FirstPrinciples.Energy/R/Learning R/Weights.txt") # Set the symbol field to be the key setkey(DF, Symbol) # Split the 2 char string out from the symbol column DF$StrSymbol = as.character(lapply(strsplit(as.character(DF$Symbol), split="\\("), "[", 1)) DF$A_tmp = as.character(lapply(strsplit(as.character(DF$Symbol), split="\\("), "[", 2)) DF$A = as.character(lapply(strsplit(as.character(DF$A_tmp), split="\\)"), "[", 1)) DF[, A_tmp:=NULL] # Load the 2nd data set on isotopes including protons, stability, spin, gn, abundance and quadrupole moment # http://easyspin.org/documentation/isotopetable.html # Note: I removed the % lines in the field to give a r a clean import set DTT <- fread("C:/Users/Nick/Documents/Projects/Project - FirstPrinciples.Energy/R/Learning R/Nuclear_Isotope_Table") DTT$neutrons = DTT$nucleons - DTT$protons DTT$Symbol <- paste(DTT$symbol, "(", DTT$nucleons, ")", sep="") setkey(DTT, Symbol) IsotopeTable = merge(DF, DTT) IsotopeTable[, A:=NULL] IsotopeTable[, Abund.:=NULL] write.table (IsotopeTable, file = "C:/Users/Nick/Documents/Projects/Project - FirstPrinciples.Energy/R/Learning R/IsoTope_Database") |