File: funcs.py

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 (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)