duartegroup / autodE

automated reaction profile generation
https://duartegroup.github.io/autodE/
MIT License
161 stars 49 forks source link

ORCA error ? CouldNotGetProperty: Could not get energy #315

Closed dwbaron closed 6 months ago

dwbaron commented 6 months ago

I' have installed orca and xtb, but when I run the example code, it gives the error as below

Python 3.8.13 | packaged by conda-forge | (default, Mar 25 2022, 06:04:10) 
Type 'copyright', 'credits' or 'license' for more information
IPython 8.5.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import autode as ade
   ...: ade.Config.n_cores = 8
   ...: 
   ...: r = ade.Reactant(name='reactant', smiles='CC[C]([H])[H]')
   ...: p = ade.Product(name='product', smiles='C[C]([H])C')
   ...: 
   ...: reaction = ade.Reaction(r, p, name='1-2_shift')
   ...: reaction.calculate_reaction_profile()  # creates 1-2_shift/ and saves profile
autode.log.log: WARNING  STDERR: 'normal termination of xtb\n'
autode.log.log: WARNING  STDERR: 'Note: The following floating-point exceptions are signalling: IEEE_UNDERFLOW_FLAG IEEE_DENORMAL\n'
autode.log.log: WARNING  Unknown method
autode.log.log: WARNING  STDERR: '[acemap:2245125] *** Process received signal ***\n'
autode.log.log: WARNING  STDERR: '[acemap:2245125] Signal: Segmentation fault (11)\n'
autode.log.log: WARNING  STDERR: '[acemap:2245125] Signal code: Address not mapped (1)\n'
autode.log.log: WARNING  STDERR: '[acemap:2245125] Failing at address: (nil)\n'
autode.log.log: WARNING  STDERR: '[acemap:2245125] [ 0] /lib/x86_64-linux-gnu/libc.so.6(+0x43090)[0x14f49df92090]\n'
autode.log.log: WARNING  STDERR: '[acemap:2245125] *** End of error message ***\n'
autode.log.log: WARNING  STDERR: 'Segmentation fault (core dumped)\n'
autode.log.log: WARNING  STDERR: '[file orca_tools/qcmsg.cpp, line 465]: \n'
autode.log.log: WARNING  STDERR: '  .... aborting the run\n'
autode.log.log: WARNING  STDERR: '\n'
---------------------------------------------------------------------------
_RemoteTraceback                          Traceback (most recent call last)
_RemoteTraceback: 
"""
Traceback (most recent call last):
  File "/home/acemap/miniconda3/envs/rapids-22.08/lib/python3.8/concurrent/futures/process.py", line 239, in _process_worker
    r = call_item.fn(*call_item.args, **call_item.kwargs)
  File "/home/acemap/miniconda3/envs/rapids-22.08/lib/python3.8/site-packages/autode/conformers/conformers.py", line 25, in _calc_conformer
    getattr(conformer, calc_type)(
  File "/home/acemap/miniconda3/envs/rapids-22.08/lib/python3.8/site-packages/autode/conformers/conformer.py", line 108, in optimise
    super().optimise(
  File "/home/acemap/miniconda3/envs/rapids-22.08/lib/python3.8/site-packages/autode/utils.py", line 373, in wrapped_function
    return func(*args, **kwargs)
  File "/home/acemap/miniconda3/envs/rapids-22.08/lib/python3.8/site-packages/autode/species/species.py", line 1231, in optimise
    calc.run()
  File "/home/acemap/miniconda3/envs/rapids-22.08/lib/python3.8/site-packages/autode/calculations/calculation.py", line 122, in run
    self._executor.run()
  File "/home/acemap/miniconda3/envs/rapids-22.08/lib/python3.8/site-packages/autode/calculations/executors.py", line 84, in run
    self.set_properties()
  File "/home/acemap/miniconda3/envs/rapids-22.08/lib/python3.8/site-packages/autode/utils.py", line 466, in wrapped_function
    return func(*args, **kwargs)
  File "/home/acemap/miniconda3/envs/rapids-22.08/lib/python3.8/site-packages/autode/calculations/executors.py", line 157, in set_properties
    self.molecule.energy = self.method.energy_from(self)
  File "/home/acemap/miniconda3/envs/rapids-22.08/lib/python3.8/site-packages/autode/wrappers/methods.py", line 213, in energy_from
    energy = self._energy_from(calc)
  File "/home/acemap/miniconda3/envs/rapids-22.08/lib/python3.8/site-packages/autode/wrappers/ORCA.py", line 267, in _energy_from
    raise CouldNotGetProperty(name="energy")
autode.exceptions.CouldNotGetProperty: Could not get energy
"""

The above exception was the direct cause of the following exception:

CouldNotGetProperty                       Traceback (most recent call last)
Cell In [1], line 8
      5 p = ade.Product(name='product', smiles='C[C]([H])C')
      7 reaction = ade.Reaction(r, p, name='1-2_shift')
----> 8 reaction.calculate_reaction_profile()

File ~/miniconda3/envs/rapids-22.08/lib/python3.8/site-packages/autode/utils.py:433, in requires_hl_level_methods.<locals>.wrapped_function(*args, **kwargs)
    426 except MethodUnavailable:
    427     raise MethodUnavailable(
    428         f"Function *{func.__name__}* requires both"
    429         f" a high and low-level method but "
    430         f"{suffix}"
    431     )
--> 433 return func(*args, **kwargs)

File ~/miniconda3/envs/rapids-22.08/lib/python3.8/site-packages/autode/reactions/reaction.py:168, in Reaction.calculate_reaction_profile(self, units, with_complexes, free_energy, enthalpy)
    165     reaction.print_output()
    166     return None
--> 168 calculate(self)
    170 if not with_complexes:
    171     plot_reaction_profile(
    172         [self],
    173         units=units,
   (...)
    176         enthalpy=enthalpy,
    177     )

File ~/miniconda3/envs/rapids-22.08/lib/python3.8/site-packages/autode/utils.py:239, in work_in.<locals>.func_decorator.<locals>.wrapped_function(*args, **kwargs)
    237 os.chdir(dir_path)
    238 try:
--> 239     result = func(*args, **kwargs)
    240 finally:
    241     os.chdir(here)

File ~/miniconda3/envs/rapids-22.08/lib/python3.8/site-packages/autode/reactions/reaction.py:156, in Reaction.calculate_reaction_profile.<locals>.calculate(reaction)
    154 @work_in(self.name)
    155 def calculate(reaction):
--> 156     reaction.find_lowest_energy_conformers()
    157     reaction.optimise_reacs_prods()
    158     reaction.locate_transition_state()

File ~/miniconda3/envs/rapids-22.08/lib/python3.8/site-packages/autode/utils.py:668, in checkpoint_rxn_profile_step.<locals>.func_decorator.<locals>.wrapped_function(reaction)
    665     return
    667 start_time = time()
--> 668 result = func(reaction)
    670 if (
    671     time() - start_time < 1.0
    672 ):  # If execution is < 1s don't checkpoint
    673     return result

File ~/miniconda3/envs/rapids-22.08/lib/python3.8/site-packages/autode/reactions/reaction.py:622, in Reaction.find_lowest_energy_conformers(self)
    619 h_method = get_hmethod() if Config.hmethod_conformers else None
    620 for mol in self.reacs + self.prods:
    621     # .find_lowest_energy_conformer works in conformers/
--> 622     mol.find_lowest_energy_conformer(hmethod=h_method)
    624 return None

File ~/miniconda3/envs/rapids-22.08/lib/python3.8/site-packages/autode/utils.py:239, in work_in.<locals>.func_decorator.<locals>.wrapped_function(*args, **kwargs)
    237 os.chdir(dir_path)
    238 try:
--> 239     result = func(*args, **kwargs)
    240 finally:
    241     os.chdir(here)

File ~/miniconda3/envs/rapids-22.08/lib/python3.8/site-packages/autode/species/species.py:1443, in Species.find_lowest_energy_conformer(self, lmethod, hmethod, allow_connectivity_changes)
   1438         self.conformers.single_point(
   1439             method=hmethod, keywords=hmethod.keywords.low_sp
   1440         )
   1441     else:
   1442         # Otherwise run a full optimisation
-> 1443         self.conformers.optimise(hmethod)
   1445 if not allow_connectivity_changes:
   1446     assert self.graph is not None, "Must have a graph"

File ~/miniconda3/envs/rapids-22.08/lib/python3.8/site-packages/autode/conformers/conformers.py:306, in Conformers.optimise(self, method, keywords)
    292 def optimise(
    293     self,
    294     method: "Method",
    295     keywords: Optional["Keywords"] = None,
    296 ) -> None:
    297     """
    298     Optimise a set of conformers in parallel
    299 
   (...)
    304         keywords (autode.wrappers.keywords.Keywords):
    305     """
--> 306     return self._parallel_calc("optimise", method, keywords)

File ~/miniconda3/envs/rapids-22.08/lib/python3.8/site-packages/autode/conformers/conformers.py:288, in Conformers._parallel_calc(self, calc_type, method, keywords)
    275     jobs = [
    276         pool.submit(
    277             _calc_conformer,
   (...)
    284         for conf in self
    285     ]
    287     for idx, res in enumerate(jobs):
--> 288         self[idx] = res.result()
    290 return None

File ~/miniconda3/envs/rapids-22.08/lib/python3.8/concurrent/futures/_base.py:444, in Future.result(self, timeout)
    442     raise CancelledError()
    443 elif self._state == FINISHED:
--> 444     return self.__get_result()
    445 else:
    446     raise TimeoutError()

File ~/miniconda3/envs/rapids-22.08/lib/python3.8/concurrent/futures/_base.py:389, in Future.__get_result(self)
    387 if self._exception:
    388     try:
--> 389         raise self._exception
    390     finally:
    391         # Break a reference cycle with the exception in self._exception
    392         self = None

CouldNotGetProperty: Could not get energy
t-young31 commented 6 months ago

Hi @dwbaron, this looks like an ORCA error (autode.log.log: WARNING STDERR: '[acemap:2245125] Signal: Segmentation fault (11)\n'). Maybe there's some more helpful messages in the ORCA output file (1-2_shift/conformers/*.out)? It's probably worth checking if a parallel ORCA job works on its own too

dwbaron commented 6 months ago

@t-young31 it seems the problem comes from mpi with orca, I try to use ash to do some quantum molecular dynamic simulation, and with multi cpu core the orca will crash and quit, after I change the core to only 1 finally I get the results.

image2