updates to use new funcs from Python as well

This commit is contained in:
Steve Plimpton
2022-04-14 10:49:12 -06:00
parent bc2b600f09
commit 5c70f45feb
2 changed files with 35 additions and 12 deletions

View File

@ -290,22 +290,42 @@ if not mdiarg: error()
# world = MPI communicator for just this driver
# invoke perform_tasks() directly
if not plugin:
mdi.MDI_Init(mdiarg)
world = mdi.MDI_MPI_get_world_comm()
#if not plugin:
# mdi.MDI_Init(mdiarg)
# world = mdi.MDI_MPI_get_world_comm()
# connect to engine
mdicomm = mdi.MDI_Accept_Communicator()
# mdicomm = mdi.MDI_Accept_Communicator()
perform_tasks(world,mdicomm,None)
# perform_tasks(world,mdicomm,None)
# LAMMPS engine is a plugin library
# launch plugin
# MDI will call back to perform_tasks()
if plugin:
mdi.MDI_Init(mdiarg)
#if plugin:
# mdi.MDI_Init(mdiarg)
# world = MPI.COMM_WORLD
# plugin_args += " -mdi \"-role ENGINE -name lammps -method LINK\""
# mdi.MDI_Launch_plugin(plugin,plugin_args,world,perform_tasks,None)
# new code to auto-detect whether engine is stand-alone code or plugin library
mdi.MDI_Init(mdiarg)
mdicomm = mdi.MDI_Get_communicator(0)
if mdicomm == mdi.MDI_COMM_NULL:
world = mdi.MDI_MPI_get_world_comm()
mdicomm = mdi.MDI_Accept_Communicator()
if mdicomm == mdi.MDI_COMM_NULL:
error("MDI unable to connect to stand-alone engine")
perform_tasks(world,mdicomm,None)
else:
world = MPI.COMM_WORLD
method = mdi.MDI_Get_method(mdicomm)
if method != mdi.MDI_PLUGIN:
error("MDI internal error for plugin engine")
plugin_args += " -mdi \"-role ENGINE -name lammps -method LINK\""
mdi.MDI_Launch_plugin(plugin,plugin_args,world,perform_tasks,None)