docs: def _read_isotopedatabase(self, ffname='isotopedatabase.txt'):
          '''
          This private method reads the isotopedatabase.txt file in sldir
          run dictory and returns z, a, elements, the cutoff mass for each
          species that delineate beta+ and beta- decay and the logical in
          the last column. Also provides charge_from_element dictionary
          according to isotopedatabase.txt.
  
          '''
          name=self.sldir+ffname
          z_db, a_db, el_db, stable_a_db,logic_db=\
              np.loadtxt(name,unpack=True,dtype='str')
          z_db=np.array(z_db,dtype='int')
          a_db=np.array(a_db,dtype='int')
          stable_a_db=np.array(stable_a_db,dtype='int')
  
          # charge number for element name from dictionary in isotopedatabase.txt
          charge_from_element_name={}
          for name in self.stable_names:
              if name=='Neutron' or name=='Neut' or name=='NEUT' or name=='N-1':
                  name='nn'
              try:
                  zz=z_db[np.where(el_db==name)][0]
                  charge_from_element_name[name]=zz
              except IndexError:
                  print(name+" does not exist in this run")
          return z_db, a_db, el_db, stable_a_db,logic_db,charge_from_element_name