Commit Graph

223 Commits

Author SHA1 Message Date
3d3590f02d add c-library interface and export to python 2021-01-12 20:10:47 -05:00
427d037747 Merge pull request #2508 from athomps/mliappy3
Add support for Python based models to the MLIAP package
2020-12-29 09:59:43 -05:00
5dc868ec30 whitespace 2020-12-28 09:37:13 -05:00
cf3ae8cdd2 switch setuptools back to distutils 2020-12-22 09:59:50 -07:00
e7fa0a6bac Changes to MLIAP python
- update lammps python package to use setuptools
- refactor MLIAP classes into lammps python package

lammps.mliap package
- change TorchWrapper to use dtype and device as arguments
- turn activation of mliappy into functions (was a class)
- add a check to see if python interpreter is compatible
  with python lib calls internal to lammps

mliap_model_python_couple.pyx:
- load models ending in '.pt' or '.pth' with pytorch rather than pickle
2020-12-21 11:51:10 -07:00
4c7f71bef3 Merge branch 'master' into mliappy3 2020-12-18 09:16:44 -05:00
de94e28c8b correct path to find liblammps.dll with Windows installer package 2020-12-17 21:48:04 -05:00
511a1a5395 Update comments mentioning lammps.py 2020-12-17 12:13:06 -05:00
ac203b3683 Keep numpy imports inside of functions 2020-12-15 18:50:38 -05:00
33f9a29639 Split core.py into more files 2020-12-15 16:33:21 -05:00
9e188a3818 Clean up imports 2020-12-15 16:19:23 -05:00
b390c1e3d3 Split lammps.py into core.py and pylammps.py 2020-12-15 16:15:16 -05:00
aca2eefce5 Transform LAMMPS Python module into package
- Moves lammps.py into its own package
- Imports entire module in __init__.py
- Changes both how legacy and CMake build systems install
- Added traditional setup.py for Python-only installation

Note: the CMake install target runs setup.py build and install
in a way that produces files in CMAKE_BINARY_DIR/python instead
of python/build. This is to maintain out-of-source compilation
support.
2020-12-15 15:11:21 -05:00
3eb22e2406 cleanup and compilation for python off 2020-12-07 17:47:21 -05:00
664ed0f850 Merge remote-tracking branch 'origin/mliappy2' into mliappy3 2020-12-03 17:37:26 -07:00
35f2c9bdf2 Several improvements to capabilities and build.
- cmake fixed, no longer needs numpy headers.
- models can be loaded from an external interepreter.
2020-11-26 12:40:28 -07:00
875057538f Fix docstring of extract_variable 2020-11-23 12:45:37 -05:00
08d892d0d9 whitespace 2020-10-15 19:56:31 -04:00
99f9a16a25 Update Python docs 2020-10-15 18:19:57 -04:00
8c5da70823 handle the case where the variable type is invalid and thus a null pointer is returned 2020-10-12 06:16:28 -04:00
bafba4235c include versionadded tags 2020-10-09 07:26:01 -04:00
471acb2ef8 add unit tests for added APIs 2020-10-09 07:16:34 -04:00
90d511bc86 add wrappers for new library functions 2020-10-08 22:32:33 -04:00
80a054471d Merge branch 'progguide-updates' into progguide-richard 2020-10-05 19:31:03 -04:00
22cca93603 Add tests for neighbor list API 2020-10-05 17:34:08 -04:00
02b10380bc Create ctypes only neighbor list API variant
This moves the lammps.get_neighlist() method to lammps.numpy.get_neighlist().
lammps.get_neighlist() now returns a NeighList object, while the NumPy variants
returns a NumPyNeighList object. The main difference between the two is that while
the ctypes variant returns neighlist elements as

atom idx (int), numneighs (int), neighbors (POINTER(c_int))

the NumPy variant returns

atom idx (int), neighbors (numpy.array)
2020-10-05 16:21:37 -04:00
4f1ed775e9 Add missing docstrings 2020-10-05 14:03:19 -04:00
d91d8de76d Refactor LammpsNumpyWrapper to numpy_wrapper
LammpsNumpyWrapper was a class that was defined inside of the
lammps.numpy property when it was first accessed. This made it hard
to document the methods of this class.

This commit extracts this utility class into the lammps module and
renames it to 'numpy_wrapper'.
2020-10-02 17:28:25 -04:00
0089a35d95 Remove dead code 2020-10-02 17:27:08 -04:00
7355977819 Add missing exception handling for functions that could cause errors 2020-10-02 17:26:14 -04:00
d9cbb354d2 Move lammps exception code into its own property 2020-10-02 17:22:01 -04:00
fb33a71720 look for liblammps.dll in windows binary dir only if that directory exists 2020-10-01 00:34:03 -04:00
555fba1e4b add special case for windows installer package where the .dll file is in the bin folder 2020-09-29 18:46:32 -04:00
5ce6259632 correct reference to function 2020-09-18 22:35:56 -04:00
897a7d0ed4 only try to broadcast if we have a proper communicator 2020-09-18 21:17:31 -04:00
33a2857b33 Fix whitespace 2020-09-18 17:56:12 -04:00
635b7c04a5 Update docs and docstrings 2020-09-18 14:49:25 -04:00
1afb355d09 Limit int types to LAMMPS_INT and LAMMPS_INT64
Keep LAMMPS_TAGINT and LAMMPS_BIGINT internal to LAMMPS.
An external caller now only needs to distinguish between 32 and 64bit
integers, doubles and C strings.
2020-09-18 12:05:37 -04:00
42aca25a58 Update docs, fix typos 2020-09-17 18:10:08 -04:00
b4a1c9c24c Update examples 2020-09-17 17:08:13 -04:00
cf1ae7afa6 Use wrapper lammps.extract_atom_datatype 2020-09-17 17:04:40 -04:00
ab6b69d6bd Add documentation and better autodetect 2020-09-17 16:39:19 -04:00
b81ad54baa Simplify extract_atom and extract_global in Python interface
Both extract methods now can auto-detect the datatype of both global
and per-atom properties. Callers can still enforce different types
if needed by specifying the now optional dtype argument.

The numpy wrapper now has a new extract_atom function method, which
replace the extract_atom_darray and extract_atom_iarray method and
autodetects both type and size. All parameters can still be forced
to use different values if needed.
2020-09-17 16:16:27 -04:00
d88810f13a Add datatype introspection methods to library
Adds lammps_extract_atom_datatype and lammps_extract_global_datatype functions
to allow extracting type information of properties.
2020-09-17 13:43:43 -04:00
5dacfc47ca Change return type of lammps.get_natoms to int
Closes PR #2370
2020-09-17 10:57:49 -04:00
e6703019bc Update examples to use Python API constants 2020-09-16 16:10:43 -04:00
2270d8f4ec Add PyLammps.atoms test and fix bug with -echo screen/both 2020-09-16 12:48:20 -04:00
ca24806f4c Add tests 2020-09-16 10:11:00 -04:00
38f0a2e24c Fix doc build errors 2020-09-15 19:50:28 -04:00
7611efeea2 Update python docs 2020-09-15 18:03:26 -04:00