code: def formation_energy(self, chemical_potentials=None, fermi_level=0):
          
          chemical_potentials = chemical_potentials if chemical_potentials else {}
  
          chempot_correction = sum([
              chem_pot * (self.bulk_structure.composition[el] - self.defect.defect_composition[el])
              for el, chem_pot in chemical_potentials.items()
          ])
  
          formation_energy = self.energy + chempot_correction
  
          if "vbm" in self.parameters:
              formation_energy += self.charge * (self.parameters["vbm"] + fermi_level)
          else:
              formation_energy += self.charge * fermi_level
  
          return formation_energy
docs: Computes the formation energy for a defect taking into account a given chemical potential and fermi_level