File: funcs.py

package info (click to toggle)
lammps 20220106.git7586adbb6a%2Bds1-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 348,064 kB
  • sloc: cpp: 831,421; python: 24,896; xml: 14,949; f90: 10,845; ansic: 7,967; sh: 4,226; perl: 4,064; fortran: 2,424; makefile: 1,501; objc: 238; lisp: 163; csh: 16; awk: 14; tcl: 6
file content (28 lines) | stat: -rw-r--r-- 951 bytes parent folder | download | duplicates (5)
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
# Python function that implements a loop of short runs
# calls back to LAMMPS via "lmp" instance
# lammps() must be called with ptr=lmpptr for this to work
from __future__ import print_function

def loop(N,cut0,thresh,lmpptr):
  print("LOOP ARGS",N,cut0,thresh,lmpptr)
  from lammps import lammps
  lmp = lammps(ptr=lmpptr)
  natoms = lmp.get_natoms()

  try:
    for i in range(N):
      cut = cut0 + i*0.1

      lmp.set_variable("cut",cut)                 # set a variable in LAMMPS

      lmp.command("pair_style lj/cut ${cut}")     # LAMMPS command
      #lmp.command("pair_style lj/cut %d" % cut)  # LAMMPS command option

      lmp.command("pair_coeff * * 1.0 1.0")       # ditto
      lmp.command("run 10")                       # ditto
      pe = lmp.extract_compute("thermo_pe",0,0)   # extract total PE from LAMMPS
      print("PE",pe/natoms,thresh)
      if pe/natoms < thresh: return
  except Exception as e:
    print("LOOP error:", e)