diff --git a/modelling/pymod/_pipeline.py b/modelling/pymod/_pipeline.py index f7c3e2ec89a16ae3784e5b51297089db42d1cd87..9871d1a58fcb24bdd251465ab7523b36ba71690c 100644 --- a/modelling/pymod/_pipeline.py +++ b/modelling/pymod/_pipeline.py @@ -121,23 +121,22 @@ def _SetupMmSimulation(model, force_fields): if lig_ent.residue_count > 0: _AddLigands(ent, top, lig_ent, settings, force_fields) - # finally set up the simulation - try: - # use fast CPU platform by default - # NOTE: settings.platform only relevant for mm.Simulation! - settings.platform = mm.Platform.CPU + # use fast CPU platform by default + # NOTE: settings.platform only relevant for mm.Simulation! + settings.platform = mm.Platform.CPU + if mm.Simulation.IsPlatformAvailable(settings): num_cpu_threads = os.getenv('PM3_OPENMM_CPU_THREADS') if num_cpu_threads is None: settings.cpu_properties["CpuThreads"] = "1" else: settings.cpu_properties["CpuThreads"] = num_cpu_threads - sim = mm.Simulation(top, ent, settings) - except RuntimeError as ex: - ost.LogWarning("OpenMM failed to initialize with error: %s" % str(ex)) + else: # switch to "mm.Platform.Reference" as fallback settings.platform = mm.Platform.Reference - sim = mm.Simulation(top, ent, settings) ost.LogWarning("Switched to slower reference platform of OpenMM!") + # finally set up the simulation + sim = mm.Simulation(top, ent, settings) + return sim def _GetSimEntity(sim):