def METHOD_NAME(self):
    """
    Run executes the job as part of a subprocess. The input is written to an input file, then the executable is
    executed and finally the output file is collected and converted to HDF5 format for future processing.
    """
    with open(self.input_file, mode="r") as f:
        input_dict = {}
        for line in f.readlines():
            line = line.strip().split()
            key, value = line[0], line[1]
            # key, value = line.split()
            input_dict[key] = value
            self.logger.info("-> %s %s", key, str(value))
    # parse the input into the correct format
    n_max = 4  # max. order of polynomial describing the potential
    pot_lst = [float(input_dict["a_" + str(i)]) for i in range(n_max, -1, -1)]
    self._alat_0 = pot_lst[n_max]
    pot_lst[4] = 0
    self._potential = np.poly1d(pot_lst)
    self._alpha = float(input_dict["alpha"])
    self._alat = float(input_dict["alat"])
    self._count = int(input_dict["count"])
    # make the executable a bit more real and throw warnings and error messages
    # depending on the input parameters
    self.logger.debug("type: alpha %s", type(input_dict["alpha"]))
    if self._alpha < 0:
        raise ValueError("noise amplitude alpha < 0")
    if self._count < 1:
        raise ValueError("number of energy steps must be larger than 0")
    if self._alat < 1:
        self.logger.warning("lattice constant alat < 1")
    # all values in input_dict are str
    # only the actual code knows which type is needed, i.e., the conversion is done here
    if ast.literal_eval(input_dict["read_restart"]):
        self.logger.info("read restart file")
        self.read_restart()
        self.logger.info("restart file has been successfully read")
    self.logger.info("Execute program")
    energy = self.get_energy(alat=self._alat)
    self.logger.info("Program has been successfully terminated")
    if ast.literal_eval(input_dict["write_restart"]):
        self.logger.info("Write restart file")
        self.write_restart()
    # TODO: use hdf5 output file
    with open(self.output_file, mode="w") as f:
        self.logger.info("Write output file")
        f.write("exampleExecutable logFile \n")
        f.write("alat {0} \n".format(str(self._alat)))
        f.write("count {0} \n".format(str(self._count)))
        for e in energy:
            f.write("energy  {0} \n".format(str(e)))