docs: def grid(self, force_rerun=False):
          """Create the scoring grid within the dummy box.
  
          Args:
              force_rerun (bool): If method should be rerun even if output file exists
  
          """
          log.debug('{}: running grid maker...'.format(self.id))
  
          if not self.receptormol2_path or not self.box_path:
              return ValueError('Please run protein_only_and_noH and showbox')
  
          gridscript = op.join(self.dock_dir, "{}_grid.in".format(self.id))
          out_name = op.join(self.dock_dir, "{}_grid.out".format(self.id))
  
          if ssbio.utils.force_rerun(flag=force_rerun, outfile=out_name):
              with open(gridscript, "w") as f:
                  grid_text = """compute_grids                  yes
  grid_spacing                   0.3
  output_molecule                no
  contact_score                  yes
  contact_cutoff_distance        4.5
  
  energy_score                   yes
  energy_cutoff_distance         9999
  
  atom_model                     all
  attractive_exponent            6
  repulsive_exponent             12
  distance_dielectric            yes
  dielectric_factor              4
  
  bump_filter                    yes
  bump_overlap                   0.75
  
  receptor_file                  {}
  box_file                       {}
  vdw_definition_file            {}
  score_grid_prefix              {}_grid
              """.format(op.basename(self.receptormol2_path), op.basename(self.box_path), self.amb_file, self.id)
  
                  f.write(grid_text)
  
              os.chdir(self.dock_dir)
              cmd = "grid -i {} -o {}".format(op.basename(gridscript), op.basename(out_name))
              os.system(cmd)
  
          if ssbio.utils.is_non_zero_file(out_name):
              self.grid_path = out_name
              log.debug('{}: successful grid creation'.format(self.grid_path))
          else:
              log.critical('{}: grid failed to run on receptor + box file'.format(self.box_path))