File: in.fix_python_invoke_neighlist

package info (click to toggle)
lammps 20251210%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 465,808 kB
  • sloc: cpp: 1,031,565; python: 26,771; ansic: 8,808; f90: 7,302; sh: 5,316; perl: 4,171; fortran: 2,442; xml: 1,613; makefile: 1,119; objc: 238; lisp: 188; yacc: 58; csh: 16; awk: 14; tcl: 6; javascript: 2
file content (72 lines) | stat: -rw-r--r-- 2,063 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# 3d Lennard-Jones melt

units           lj
atom_style      atomic

lattice         fcc 0.8442
region          box block 0 2 0 2 0 2
create_box      1 box
create_atoms    1 box
mass            1 1.0

velocity        all create 3.0 87287

pair_style      lj/cut 2.5
pair_coeff      1 1 1.0 1.0 2.5

neighbor        0.1 bin

neigh_modify    every 20 delay 0 check no

python         post_force_callback here """
from __future__ import print_function
from lammps import lammps

def post_force_callback(lmp, v):
  try:
    import os
    pid = os.getpid()
    pid_prefix = "[{}] ".format(pid)

    L = lammps(ptr=lmp)
    t = L.extract_global("ntimestep", 0)
    print(pid_prefix, "### POST_FORCE ###", t)

    #mylist = L.numpy.get_neighlist(0)
    idx = L.find_pair_neighlist("lj/cut", reqid=0)
    mylist = L.numpy.get_neighlist(idx)
    print(pid_prefix, mylist)
    nlocal = L.extract_global("nlocal")
    nghost = L.extract_global("nghost")
    mass = L.numpy.extract_atom("mass")
    atype = L.numpy.extract_atom("type", nelem=nlocal+nghost)
    x = L.numpy.extract_atom("x", nelem=nlocal+nghost, dim=3)
    v = L.numpy.extract_atom("v", nelem=nlocal+nghost, dim=3)
    f = L.numpy.extract_atom("f", nelem=nlocal+nghost, dim=3)

    for iatom, neighs in mylist:
      print(pid_prefix, "- {}".format(iatom), x[iatom], v[iatom], f[iatom], " : ",  len(neighs), "Neighbors")
      for jatom in neighs:
        if jatom < nlocal:
            print(pid_prefix, "    *  ", jatom, x[jatom], v[jatom], f[jatom])
        else:
            print(pid_prefix, "    * [GHOST]", jatom, x[jatom], v[jatom], f[jatom])
  except Exception as e:
    print(e)
"""

fix             1 all nve
fix     3 all python/invoke 50 post_force post_force_callback

#dump           id all atom 1 dump.melt

#dump           2 all image 1 image.*.jpg type type &
#               axes yes 0.8 0.02 view 60 -30
#dump_modify    2 pad 3

#dump           3 all movie 1 movie.mpg type type &
#               axes yes 0.8 0.02 view 60 -30
#dump_modify    3 pad 3

thermo          1
run             100