git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@8649 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
@ -3,41 +3,25 @@ and allows the LAMMPS library interface to be invoked from Python,
|
|||||||
either from a script or interactively.
|
either from a script or interactively.
|
||||||
|
|
||||||
Details on the Python interface to LAMMPS and how to build LAMMPS as a
|
Details on the Python interface to LAMMPS and how to build LAMMPS as a
|
||||||
shared library for use with Python are given in
|
shared library, for use with Python, are given in
|
||||||
doc/Section_python.html.
|
doc/Section_python.html and in doc/Section_start.html#start_5.
|
||||||
|
|
||||||
Basically you need to follow these 3 steps:
|
Basically you need to follow these steps in the src directory:
|
||||||
|
|
||||||
a) Add paths to environment variables in your shell script
|
% make makeshlib # creates Makefile.shlib
|
||||||
|
% make -f Makefile.shlib g++ # or whatever machine target you wish
|
||||||
|
% make install-python # may need to do this via sudo
|
||||||
|
|
||||||
For example, for csh or tcsh, add something like this to ~/.cshrc:
|
You can then launch Python and instantiate an instance of
|
||||||
|
LAMMPS:
|
||||||
setenv PYTHONPATH ${PYTHONPATH}:/home/sjplimp/lammps/python
|
|
||||||
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:/home/sjplimp/lammps/src
|
|
||||||
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:/home/sjplimp/lammps/src/STUBS
|
|
||||||
|
|
||||||
The latter is only necessary if you will use the MPI stubs library
|
|
||||||
instead of an MPI installed on your machine.
|
|
||||||
|
|
||||||
b) Build LAMMPS as a dynamic library, including dynamic versions of
|
|
||||||
any libraries it includes for the packages you have installed,
|
|
||||||
e.g. STUBS, MPI, FFTW, JPEG, package libs.
|
|
||||||
|
|
||||||
From the src directory:
|
|
||||||
|
|
||||||
% make makeshlib
|
|
||||||
% make -f Makefile.shlib g++
|
|
||||||
|
|
||||||
If successful, this results in the file src/liblmp_g++.so
|
|
||||||
|
|
||||||
c) Launch Python and import the LAMMPS wrapper
|
|
||||||
|
|
||||||
% python
|
% python
|
||||||
>>> from lammps import lammps
|
>>> from lammps import lammps
|
||||||
>>> lmp = lammps()
|
>>> lmp = lammps()
|
||||||
|
|
||||||
If that gives no errors, you have succesfully wrapped LAMMPS with
|
If that gives no errors, you have succesfully wrapped LAMMPS with
|
||||||
Python.
|
Python. See doc/Section_python.html#py_5 for tests you can then use
|
||||||
|
to run LAMMPS both in serial or parallel thru Python.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
|
|
||||||
|
|||||||
25
python/install.py
Normal file
25
python/install.py
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
#!/usr/local/bin/python
|
||||||
|
|
||||||
|
# copy lammps.py and LAMMPS shared library src/liblmp.so to
|
||||||
|
# Python site-packages dir
|
||||||
|
|
||||||
|
import sys,commands
|
||||||
|
|
||||||
|
# find this Python's site-packages dir in sys.path list
|
||||||
|
|
||||||
|
paths = sys.path
|
||||||
|
for i,path in enumerate(paths):
|
||||||
|
index = path.rfind("site-packages")
|
||||||
|
if index < 0: continue
|
||||||
|
if index == len(path) - len("site-packages"): break
|
||||||
|
sitedir = paths[i]
|
||||||
|
|
||||||
|
str = "cp ../python/lammps.py %s" % sitedir
|
||||||
|
print str
|
||||||
|
outstr = commands.getoutput(str)
|
||||||
|
if len(outstr.strip()): print outstr
|
||||||
|
|
||||||
|
str = "cp ../src/liblmp.so %s" % sitedir
|
||||||
|
print str
|
||||||
|
outstr = commands.getoutput(str)
|
||||||
|
if len(outstr.strip()): print outstr
|
||||||
Reference in New Issue
Block a user