docs: def decay_indexpointer(self):
          '''
          This private method provides decay indexpointers which allow to
          instantaneously decay an abundance vector. These are attributes
          are.
  
  		Parameters
  		=================
  
          decay_idp : list
              points in the iso_to_plot (i.e. the undecayed abundance
              vector index space) to the decay target.
          idp_to_stables_in_isostoplot : list
              points to the stable isotopes in the undecayed abundance
              vector index space.
  
          Notes
          -----
          For an application example see ppn.py-abu_vector-_getcycle.
  
          '''
          a_iso_to_plot   =self.a_iso_to_plot
          isotope_to_plot =self.isotope_to_plot
          z_iso_to_plot   =self.z_iso_to_plot
          el_iso_to_plot  =self.el_iso_to_plot
          abunds          =self.abunds
          isom            =self.isom
  
          z_db, a_db, el_db, stable_a_db,logic_db,charge_from_element_name=\
              self._read_isotopedatabase()
          # find out which species  beta+ and which beta- decay:
          beta=np.sign(stable_a_db-a_db) # if a species is unstable and if beta < 0 => beta- decay
                                      # else beta > 0 => beta+ decay
  
          # now we need an index array on the scale of the abundance
          # distribution to be plotted that points to itself for stable species,
          # and to the stable element to which it decays in case of an unstable
          # species
          decay_index_pointer=np.zeros(len(isotope_to_plot), dtype='int')-1
          idp_to_stables_in_isostoplot=[]
          for i in range(len(isotope_to_plot)):
              element_name=isotope_to_plot[i].split('-')[0]
              try:
                  stable_a=stable_a_db[np.where(el_db==element_name)][0] # 4th column for that element in isotopedatabase.txt
              except IndexError:
                  print("Can't find element "+element_name+" in isotopedatabase.txt")
              if a_iso_to_plot[i] <= 209 and stable_a <=209:  # Bi209 is last stable element
                  stable_mass_numbers=self.stable_el[self.stable_names.index(element_name)][1:]
                  iso_db_index_range_el=np.where(el_db==element_name)
                  beta_for_this_species=\
                      int(beta[iso_db_index_range_el][np.where(a_db[iso_db_index_range_el]==a_iso_to_plot[i])])
                  if beta_for_this_species == 0:  # if there are no stable species for an element (Tc,Pm) the cutoff specifies
                      beta_for_this_species = -1  # the lowest mass beta- isotope
                  if a_iso_to_plot[i] in stable_mass_numbers:
                      # print isotope_to_plot[i]+" is stable"
                      decay_index_pointer[i]=i
                      idp_to_stables_in_isostoplot.append(i)
                  elif  a_iso_to_plot[i]==8: # Be8 -> He4
                      decay_index_pointer[i]=isotope_to_plot.index('He-4')
                  else: # beta decay
                      found_decay_target=False
                      i_search=-1*beta_for_this_species
                      while not found_decay_target:
                          try:
                              try_target_el=self.stable_names[charge_from_element_name[element_name]+i_search]
                          except TypeError:
                              print("Maybe information about species "+isotope_to_plot[i]+" is not available in isotopedatabase.txt")
                              decay_index_pointer[i]=-1
                              break
                          # print try_target_el
                          try:
                              stable_mass_numbers=self.stable_el[self.stable_names.index(try_target_el)][1:]
                          except ValueError:
                              print("Can not find decay target for "+isotope_to_plot[i])
                          if a_iso_to_plot[i] in stable_mass_numbers:
                              ind_range=np.where(np.array(el_iso_to_plot)==try_target_el)[0]
                              if a_iso_to_plot[i] in np.array(a_iso_to_plot)[ind_range]:
                                  this_ind=\
                                      ind_range[np.where(np.array(a_iso_to_plot)[ind_range]==a_iso_to_plot[i])[0]]
                                  # print isotope_to_plot[i]+" is unstable and decays to "+isotope_to_plot[this_ind]
                                  decay_index_pointer[i]=this_ind
                              else:
                                  print("It seems unstable species "+isotope_to_plot[i]+" wants to decay to " \
                                      +try_target_el+"-"+str(a_iso_to_plot[i])+", however this species is not in this run." \
                                      +" This points to an inconsistency in the network build. Here we will ignore the abundance of " \
                                      +isotope_to_plot[i]+'.')
                                  decay_index_pointer[i]=-1
                              found_decay_target=True
                          else:
                              i_search += -1*beta_for_this_species
          if self.debug:
              print("Decay rules:")
              for i in range(len(isotope_to_plot)):
                  if decay_index_pointer[i]>= 0:
                      print(isotope_to_plot[i]+" -> "+isotope_to_plot[decay_index_pointer[i]])
          ind_tmp=idp_to_stables_in_isostoplot
          #ind_tmp=utils.strictly_monotonic(decay_index_pointer)  # this would do the same, but the method above is more straight forward
  
          self.decay_idp=decay_index_pointer
          self.idp_to_stables_in_isostoplot=ind_tmp