Files
lammps/tools/swig/run_lua_example.sh.in
2020-10-21 14:22:06 -04:00

66 lines
2.4 KiB
Bash
Executable File

#!/bin/sh
if [ ! -f lualammps.so ]
then \
echo "Need to compile 'lualammps.so' first for this script to work"
exit 1
fi
cat > example.lua <<EOF
require("lualammps")
-- Lua does not seem to support %cstring_output_maxsize so this
-- currently does not work and complains about a missing argument.
--
-- osinfo = lualammps.lammps_get_os_info(512)
-- print(osinfo)
lmp = lualammps.lammps_open_no_mpi(0,nil,nil)
ver = lualammps.lammps_version(lmp)
npair_styles = lualammps.lammps_style_count(lmp, "pair")
print("LAMMPS includes ", npair_styles, " pair styles")
-- this also does not work (see above)
-- for i = 0, 10, 1 do
-- res = lualammps.lammps_style_name(lmp, 'pair', i, 128)
-- print("Pair style ",i, ': ', res[1])
-- end
lualammps.lammps_command(lmp, "units real")
lualammps.lammps_command(lmp, "lattice fcc 2.5")
lualammps.lammps_command(lmp, "region box block -5 5 -5 5 -5 5")
lualammps.lammps_command(lmp, "create_box 1 box")
lualammps.lammps_command(lmp, "create_atoms 1 box")
boxlo_p = lualammps.new_double_1d(3)
boxhi_p = lualammps.new_double_1d(3)
xy_p = lualammps.new_double_p()
yz_p = lualammps.new_double_p()
xz_p = lualammps.new_double_p()
pflags_p = lualammps.new_int_1d(3)
boxflag_p = lualammps.new_int_p()
lualammps.lammps_extract_box(lmp, boxlo_p, boxhi_p, xy_p, yz_p, xz_p, pflags_p, boxflag_p)
print('boxlo: ', lualammps.double_1d_getitem(boxlo_p, 0), ' ', lualammps.double_1d_getitem(boxlo_p, 1), ' ', lualammps.double_1d_getitem(boxlo_p, 2))
print('boxhi: ', lualammps.double_1d_getitem(boxhi_p, 0), ' ', lualammps.double_1d_getitem(boxhi_p, 1), ' ', lualammps.double_1d_getitem(boxhi_p, 2))
print('xy/yz/xz: ', lualammps.double_p_value(xy_p), ' ', lualammps.double_p_value(yz_p), ' ', lualammps.double_p_value(xz_p))
print('periodicity: ', lualammps.int_1d_getitem(pflags_p, 0), ' ', lualammps.int_1d_getitem(pflags_p, 1), ' ', lualammps.int_1d_getitem(pflags_p, 2))
print('boxflag: ', lualammps.int_p_value(boxflag_p))
lualammps.delete_double_1d(boxlo_p)
lualammps.delete_double_1d(boxhi_p)
lualammps.delete_int_1d(pflags_p)
lualammps.delete_double_p(xy_p)
lualammps.delete_double_p(yz_p)
lualammps.delete_double_p(xz_p)
lualammps.delete_int_p(boxflag_p)
print("LAMMPS version ", ver)
print("Number of created atoms: ", lualammps.lammps_get_natoms(lmp))
print("Current size of timestep: ", lualammps.double_p_value(lualammps.void_p_to_double_p(lualammps.lammps_extract_global(lmp,"dt"))))
lualammps.lammps_close(lmp)
EOF
lua example.lua