Merge branch 'develop' into fix_wall_flow
This commit is contained in:
@ -1,7 +1,7 @@
|
||||
.TH LAMMPS "1" "21 November 2023" "2023-11-21"
|
||||
.TH LAMMPS "1" "7 February 2024" "2024-02-07"
|
||||
.SH NAME
|
||||
.B LAMMPS
|
||||
\- Molecular Dynamics Simulator. Version 21 November 2023
|
||||
\- Molecular Dynamics Simulator. Version 7 February 2024
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B lmp
|
||||
|
||||
@ -44,7 +44,7 @@ require use of an FFT library to compute 1d FFTs. The KISS FFT
|
||||
library is included with LAMMPS, but other libraries can be faster.
|
||||
LAMMPS can use them if they are available on your system.
|
||||
|
||||
.. versionadded:: TBD
|
||||
.. versionadded:: 7Feb2024
|
||||
|
||||
Alternatively, LAMMPS can use the `heFFTe
|
||||
<https://icl-utk-edu.github.io/heffte/>`_ library for the MPI
|
||||
|
||||
@ -129,7 +129,7 @@ USER-REAXC.
|
||||
USER-REAXC package
|
||||
------------------
|
||||
|
||||
.. deprecated:: TBD
|
||||
.. deprecated:: 7Feb2024
|
||||
|
||||
The USER-REAXC package has been renamed to :ref:`REAXFF <PKG-REAXFF>`.
|
||||
In the process also the pair style and related fixes were renamed to use
|
||||
|
||||
@ -1402,7 +1402,7 @@ Procedures Bound to the :f:type:`lammps` Derived Type
|
||||
|
||||
Set the value of a string-style variable.
|
||||
|
||||
.. deprecated:: TBD
|
||||
.. deprecated:: 7Feb2024
|
||||
|
||||
This function assigns a new value from the string *str* to the string-style
|
||||
variable *name*\ . If *name* does not exist or is not a string-style
|
||||
@ -1423,7 +1423,7 @@ Procedures Bound to the :f:type:`lammps` Derived Type
|
||||
|
||||
Set the value of a string-style variable.
|
||||
|
||||
.. versionadded:: TBD
|
||||
.. versionadded:: 7Feb2024
|
||||
|
||||
This function assigns a new value from the string *str* to the string-style
|
||||
variable *name*\ . If *name* does not exist or is not a string-style
|
||||
@ -1439,7 +1439,7 @@ Procedures Bound to the :f:type:`lammps` Derived Type
|
||||
|
||||
Set the value of a internal-style variable.
|
||||
|
||||
.. versionadded:: TBD
|
||||
.. versionadded:: 7Feb2024
|
||||
|
||||
This function assigns a new value from the floating-point number *val* to
|
||||
the internal-style variable *name*\ . If *name* does not exist or is not
|
||||
|
||||
@ -51,7 +51,7 @@ angle coefficient. For example `"200.0*theta^2"` represents a
|
||||
|
||||
U_{angle,i} = K (\theta_i - \theta_0)^2 = K \theta^2 \qquad \theta = \theta_i - \theta_0
|
||||
|
||||
.. versionchanged:: TBD
|
||||
.. versionchanged:: 7Feb2024
|
||||
|
||||
By default the potential energy U is shifted so that the value U is 0.0
|
||||
for $theta = theta_0$. This is equivalent to using the optional keyword
|
||||
|
||||
@ -50,7 +50,7 @@ constant *K* of 200.0 energy units:
|
||||
|
||||
U_{bond,i} = K (r_i - r_0)^2 = K r^2 \qquad r = r_i - r_0
|
||||
|
||||
.. versionchanged:: TBD
|
||||
.. versionchanged:: 7Feb2024
|
||||
|
||||
By default the potential energy U is shifted so that he value U is 0.0
|
||||
for $r = r_0$. This is equivalent to using the optional keyword
|
||||
|
||||
@ -36,7 +36,7 @@ Examples
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
.. versionadded:: TBD
|
||||
.. versionadded:: 7Feb2024
|
||||
|
||||
This compute calculates a set of quantities related to the atomic
|
||||
cluster expansion (ACE) descriptors of the atoms in a group. ACE
|
||||
|
||||
@ -32,7 +32,7 @@ Examples
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
.. versionadded:: TBD
|
||||
.. versionadded:: 7Feb2024
|
||||
|
||||
Define a compute that identifies rattlers in a system. Rattlers are often
|
||||
identified in granular or glassy packings as under-coordinated atoms that
|
||||
|
||||
@ -40,7 +40,7 @@ Examples
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
.. versionadded:: TBD
|
||||
.. versionadded:: 7Feb2024
|
||||
|
||||
Define a computation that extracts bond information computed by the ReaxFF
|
||||
potential specified by :doc:`pair_style reaxff <pair_reaxff>`.
|
||||
|
||||
@ -32,7 +32,7 @@ Examples
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
.. versionadded:: TBD
|
||||
.. versionadded:: 7Feb2024
|
||||
|
||||
Define a computation that performs the Supervised Learning Crystal
|
||||
Structure Analysis (SL-CSA) from :ref:`(Lafourcade) <Lafourcade2023_1>`
|
||||
|
||||
@ -44,7 +44,7 @@ Examples
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
.. versionadded:: TBD
|
||||
.. versionadded:: 7Feb2024
|
||||
|
||||
This fix computes different metrics of the nonaffine displacement of
|
||||
particles. The first metric, *d2min* calculates the :math:`D^2_\mathrm{min}`
|
||||
|
||||
@ -92,7 +92,7 @@ The *accelerator* category prints out information about compile time
|
||||
settings of included accelerator support for the GPU, KOKKOS, INTEL,
|
||||
and OPENMP packages.
|
||||
|
||||
.. versionadded:: TBD
|
||||
.. versionadded:: 7Feb2024
|
||||
|
||||
The *fft* category prints out information about the included 3d-FFT
|
||||
support. This lists the 3d-FFT engine, FFT precision, FFT library
|
||||
|
||||
@ -376,7 +376,7 @@ not listed, the default diameter of each atom in the molecule is 1.0.
|
||||
|
||||
----------
|
||||
|
||||
.. versionadded:: TBD
|
||||
.. versionadded:: 7Feb2024
|
||||
|
||||
*Dipoles* section:
|
||||
|
||||
|
||||
@ -706,7 +706,7 @@ library. Ceil() is the smallest integer not less than its argument.
|
||||
Floor() if the largest integer not greater than its argument. Round()
|
||||
is the nearest integer to its argument.
|
||||
|
||||
.. versionadded:: TBD
|
||||
.. versionadded:: 7Feb2024
|
||||
|
||||
The ternary(x,y,z) function is the equivalent of the ternary operator
|
||||
(? and :) in C or C++. It takes 3 arguments. The first argument is a
|
||||
@ -1155,7 +1155,7 @@ variable by using the :doc:`compute property/atom
|
||||
Custom atom properties
|
||||
----------------------
|
||||
|
||||
.. versionadded:: TBD
|
||||
.. versionadded:: 7Feb2024
|
||||
|
||||
Custom atom properties refer to per-atom integer and floating point
|
||||
vectors or arrays that have been added via the :doc:`fix property/atom
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
# script for mgpt t=0 eos in bulk bcc structure
|
||||
|
||||
echo screen
|
||||
|
||||
units electron
|
||||
atom_style atomic
|
||||
units electron
|
||||
atom_style atomic
|
||||
|
||||
# Atomic volume for MGPT potential in a.u.
|
||||
variable atomic_vol equal 121.6
|
||||
@ -12,10 +10,10 @@ variable atomic_vol equal 121.6
|
||||
variable lattice_constant equal (${atomic_vol}*2.0)^(1.0/3.0)
|
||||
|
||||
# Create bcc lattice with 5x5x5 unit cells (250 atoms)
|
||||
lattice bcc ${lattice_constant}
|
||||
region box block 0 5 0 5 0 5
|
||||
create_box 1 box
|
||||
create_atoms 1 box
|
||||
lattice bcc ${lattice_constant}
|
||||
region box block 0 5 0 5 0 5
|
||||
create_box 1 box
|
||||
create_atoms 1 box
|
||||
|
||||
# Define potential for use in simulation
|
||||
pair_style mgpt
|
||||
@ -26,20 +24,20 @@ pair_style mgpt
|
||||
pair_coeff * * Ta6.8x.mgpt.parmin Ta6.8x.mgpt.potin ${atomic_vol}
|
||||
|
||||
# Create velocities at 0 K
|
||||
velocity all create 0.0 87287
|
||||
velocity all create 0.0 87287
|
||||
|
||||
# Set neighbor list parameters
|
||||
neighbor 0.1 bin
|
||||
neigh_modify every 1 delay 0 check yes
|
||||
neighbor 0.1 bin
|
||||
neigh_modify every 1 delay 0 check yes
|
||||
|
||||
# Set up microcanonical integrator
|
||||
fix 1 all nve
|
||||
fix 1 all nve
|
||||
|
||||
# Dump coordinates to file every 50 timesteps
|
||||
dump id all atom 50 dump.bcc0
|
||||
#dump id all atom 50 dump.bcc0
|
||||
|
||||
# Output thermodynamical data every 10 timesteps
|
||||
thermo 10
|
||||
thermo 10
|
||||
|
||||
# Set output quantities and output format
|
||||
thermo_style custom step vol temp pe etotal press
|
||||
@ -48,7 +46,7 @@ thermo_style custom step vol temp pe etotal press
|
||||
#thermo_modify format float %15.5e
|
||||
|
||||
# Run 0 timesteps
|
||||
run 0
|
||||
run 0
|
||||
|
||||
# Convert energy to rydbergs and pressure to gpa
|
||||
|
||||
|
||||
@ -1,10 +1,8 @@
|
||||
# script for mgpt t=0 eos with unrelaxed vacancy in bcc lattice:
|
||||
# input for unrelaxed vacancy formation energy at constant atomic volume
|
||||
|
||||
echo screen
|
||||
|
||||
units electron
|
||||
atom_style atomic
|
||||
units electron
|
||||
atom_style atomic
|
||||
|
||||
# Atomic volume for MGPT potential in a.u.
|
||||
variable atomic_vol equal 121.6
|
||||
@ -16,10 +14,10 @@ variable lat_vol equal ${atomic_vol}*249/250
|
||||
variable lattice_constant equal (${lat_vol}*2.0)^(1.0/3.0)
|
||||
|
||||
# Create bcc lattice with 5x5x5 unit cells (250 atoms)
|
||||
lattice bcc ${lattice_constant}
|
||||
region box block 0 5 0 5 0 5
|
||||
create_box 1 box
|
||||
create_atoms 1 box
|
||||
lattice bcc ${lattice_constant}
|
||||
region box block 0 5 0 5 0 5
|
||||
create_box 1 box
|
||||
create_atoms 1 box
|
||||
|
||||
# Remove central atom from bcc lattice to create vacancy
|
||||
region vacancy sphere 2.5 2.5 2.5 0.1 units lattice
|
||||
@ -34,20 +32,20 @@ pair_style mgpt
|
||||
pair_coeff * * Ta6.8x.mgpt.parmin Ta6.8x.mgpt.potin ${atomic_vol}
|
||||
|
||||
# Create velocities at 0 K
|
||||
velocity all create 0.0 87287
|
||||
velocity all create 0.0 87287
|
||||
|
||||
# Set neighbor list parameters
|
||||
neighbor 0.1 bin
|
||||
neigh_modify every 1 delay 0 check yes
|
||||
neighbor 0.1 bin
|
||||
neigh_modify every 1 delay 0 check yes
|
||||
|
||||
# Set up microcanonical integrator
|
||||
fix 1 all nve
|
||||
fix 1 all nve
|
||||
|
||||
# Dump coordinates to file every 50 timesteps
|
||||
dump id all atom 50 dump.vac0-bcc
|
||||
# dump id all atom 50 dump.vac0-bcc
|
||||
|
||||
# Output thermodynamical data every 10 timesteps
|
||||
thermo 10
|
||||
thermo 10
|
||||
|
||||
# Set output quantities and output format
|
||||
thermo_style custom step vol temp pe etotal press
|
||||
@ -56,7 +54,7 @@ thermo_style custom step vol temp pe etotal press
|
||||
#thermo_modify format float %15.5e
|
||||
|
||||
# Run 0 timesteps
|
||||
run 0
|
||||
run 0
|
||||
|
||||
# Convert energy to rydbergs and pressure to gpa
|
||||
|
||||
|
||||
@ -1,10 +1,8 @@
|
||||
# script for mgpt t=0 eos with relaxed vacancy in bcc structure:
|
||||
# input for relaxed vacancy formation energy at constant pressure
|
||||
|
||||
echo screen
|
||||
|
||||
units electron
|
||||
atom_style atomic
|
||||
units electron
|
||||
atom_style atomic
|
||||
|
||||
# Atomic volume for MGPT potential
|
||||
variable atomic_vol equal 121.863
|
||||
@ -16,10 +14,10 @@ variable lat_vol equal ${atomic_vol}*249/250
|
||||
variable lattice_constant equal (${lat_vol}*2.0)^(1.0/3.0)
|
||||
|
||||
# Create bcc lattice with 5x5x5 unit cells (250 atoms)
|
||||
lattice bcc ${lattice_constant}
|
||||
region box block 0 5 0 5 0 5
|
||||
create_box 1 box
|
||||
create_atoms 1 box
|
||||
lattice bcc ${lattice_constant}
|
||||
region box block 0 5 0 5 0 5
|
||||
create_box 1 box
|
||||
create_atoms 1 box
|
||||
|
||||
# Remove central atom from bcc lattice to create vacancy
|
||||
region vacancy sphere 2.5 2.5 2.5 0.1 units lattice
|
||||
@ -34,14 +32,14 @@ pair_style mgpt
|
||||
pair_coeff * * Ta6.8x.mgpt.parmin Ta6.8x.mgpt.potin ${atomic_vol}
|
||||
|
||||
# Set neighbor list parameters
|
||||
neighbor 0.1 bin
|
||||
neigh_modify every 1 delay 0 check yes
|
||||
neighbor 0.1 bin
|
||||
neigh_modify every 1 delay 0 check yes
|
||||
|
||||
# Dump coordinates to file every 50 timesteps
|
||||
dump id all atom 50 dump.vacmin-bcc
|
||||
# dump id all atom 50 dump.vacmin-bcc
|
||||
|
||||
# Output thermodynamical data every 10 timesteps
|
||||
thermo 10
|
||||
thermo 10
|
||||
|
||||
# Set output quantities and output format
|
||||
thermo_style custom step vol temp pe etotal press
|
||||
|
||||
134
examples/PACKAGES/mgpt/log.7Feb24.bcc0.g++.1
Normal file
134
examples/PACKAGES/mgpt/log.7Feb24.bcc0.g++.1
Normal file
@ -0,0 +1,134 @@
|
||||
LAMMPS (21 Nov 2023 - Development - patch_21Nov2023-744-g031cef558e-modified)
|
||||
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
|
||||
using 1 OpenMP thread(s) per MPI task
|
||||
# script for mgpt t=0 eos in bulk bcc structure
|
||||
|
||||
units electron
|
||||
atom_style atomic
|
||||
|
||||
# Atomic volume for MGPT potential in a.u.
|
||||
variable atomic_vol equal 121.6
|
||||
|
||||
# Derive lattice constant from volume
|
||||
variable lattice_constant equal (${atomic_vol}*2.0)^(1.0/3.0)
|
||||
variable lattice_constant equal (121.6*2.0)^(1.0/3.0)
|
||||
|
||||
# Create bcc lattice with 5x5x5 unit cells (250 atoms)
|
||||
lattice bcc ${lattice_constant}
|
||||
lattice bcc 6.24196300283154
|
||||
Lattice spacing in x,y,z = 6.241963 6.241963 6.241963
|
||||
region box block 0 5 0 5 0 5
|
||||
create_box 1 box
|
||||
Created orthogonal box = (0 0 0) to (31.209815 31.209815 31.209815)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
create_atoms 1 box
|
||||
Created 250 atoms
|
||||
using lattice units in orthogonal box = (0 0 0) to (31.209815 31.209815 31.209815)
|
||||
create_atoms CPU = 0.000 seconds
|
||||
|
||||
# Define potential for use in simulation
|
||||
pair_style mgpt
|
||||
|
||||
# Set parameters for potential:
|
||||
# parameter files atomic volume
|
||||
#pair_coeff * * parmin potin ${atomic_vol}
|
||||
pair_coeff * * Ta6.8x.mgpt.parmin Ta6.8x.mgpt.potin ${atomic_vol}
|
||||
pair_coeff * * Ta6.8x.mgpt.parmin Ta6.8x.mgpt.potin 121.6
|
||||
Reading potential file Ta6.8x.mgpt.potin with DATE: 2015-07-30
|
||||
|
||||
# Create velocities at 0 K
|
||||
velocity all create 0.0 87287
|
||||
|
||||
# Set neighbor list parameters
|
||||
neighbor 0.1 bin
|
||||
neigh_modify every 1 delay 0 check yes
|
||||
|
||||
# Set up microcanonical integrator
|
||||
fix 1 all nve
|
||||
|
||||
# Dump coordinates to file every 50 timesteps
|
||||
#dump id all atom 50 dump.bcc0
|
||||
|
||||
# Output thermodynamical data every 10 timesteps
|
||||
thermo 10
|
||||
|
||||
# Set output quantities and output format
|
||||
thermo_style custom step vol temp pe etotal press
|
||||
|
||||
## Example: Output floating point number with 5 digits exponential notation.
|
||||
#thermo_modify format float %15.5e
|
||||
|
||||
# Run 0 timesteps
|
||||
run 0
|
||||
Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
|
||||
Neighbor list info ...
|
||||
update: every = 1 steps, delay = 0 steps, check = yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 13.161827
|
||||
ghost atom cutoff = 13.161827
|
||||
binsize = 6.5809134, bins = 5 5 5
|
||||
2 neighbor lists, perpetual/occasional/extra = 2 0 0
|
||||
(1) pair mgpt, perpetual
|
||||
attributes: full, newton on, ghost
|
||||
pair build: full/bin/ghost
|
||||
stencil: full/ghost/bin/3d
|
||||
bin: standard
|
||||
(2) pair mgpt, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/atomonly/newton
|
||||
stencil: half/bin/3d
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 3.755 | 3.755 | 3.755 Mbytes
|
||||
Step Volume Temp PotEng TotEng Press
|
||||
0 30400 0 -74.412503 -74.412503 -1.1594626e+09
|
||||
Loop time of 1.019e-06 on 1 procs for 0 steps with 250 atoms
|
||||
|
||||
98.1% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Comm | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Output | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Modify | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Other | | 1.019e-06 | | |100.00
|
||||
|
||||
Nlocal: 250 ave 250 max 250 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 1479 ave 1479 max 1479 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 8000 ave 8000 max 8000 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
FullNghs: 16000 ave 16000 max 16000 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 16000
|
||||
Ave neighs/atom = 64
|
||||
Neighbor list builds = 0
|
||||
Dangerous builds = 0
|
||||
|
||||
# Convert energy to rydbergs and pressure to gpa
|
||||
|
||||
variable natoms equal "count(all)"
|
||||
variable voltot equal "vol"
|
||||
variable atvol equal "v_voltot/v_natoms"
|
||||
variable etot equal "2.0*pe"
|
||||
variable etotry equal "v_etot/v_natoms"
|
||||
variable ptot equal "press"
|
||||
variable ptotgpa equal "v_ptot/1.0e+09"
|
||||
|
||||
print "number of atoms = ${natoms}"
|
||||
number of atoms = 250
|
||||
print "atomic volume (a.u.) = ${atvol}"
|
||||
atomic volume (a.u.) = 121.6
|
||||
print "total energy (ry/atom) = ${etotry}"
|
||||
total energy (ry/atom) = -0.59530002488734
|
||||
print "pressure (gpa) = ${ptotgpa}"
|
||||
pressure (gpa) = -1.15946260887554
|
||||
print "${natoms} ${atvol} ${etot} ${ptotgpa}"
|
||||
250 121.6 -148.825006221835 -1.15946260887554
|
||||
print "${atvol} ${etotry} ${ptotgpa}"
|
||||
121.6 -0.59530002488734 -1.15946260887554
|
||||
Total wall time: 0:00:00
|
||||
134
examples/PACKAGES/mgpt/log.7Feb24.bcc0.g++.4
Normal file
134
examples/PACKAGES/mgpt/log.7Feb24.bcc0.g++.4
Normal file
@ -0,0 +1,134 @@
|
||||
LAMMPS (21 Nov 2023 - Development - patch_21Nov2023-744-g031cef558e-modified)
|
||||
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
|
||||
using 1 OpenMP thread(s) per MPI task
|
||||
# script for mgpt t=0 eos in bulk bcc structure
|
||||
|
||||
units electron
|
||||
atom_style atomic
|
||||
|
||||
# Atomic volume for MGPT potential in a.u.
|
||||
variable atomic_vol equal 121.6
|
||||
|
||||
# Derive lattice constant from volume
|
||||
variable lattice_constant equal (${atomic_vol}*2.0)^(1.0/3.0)
|
||||
variable lattice_constant equal (121.6*2.0)^(1.0/3.0)
|
||||
|
||||
# Create bcc lattice with 5x5x5 unit cells (250 atoms)
|
||||
lattice bcc ${lattice_constant}
|
||||
lattice bcc 6.24196300283154
|
||||
Lattice spacing in x,y,z = 6.241963 6.241963 6.241963
|
||||
region box block 0 5 0 5 0 5
|
||||
create_box 1 box
|
||||
Created orthogonal box = (0 0 0) to (31.209815 31.209815 31.209815)
|
||||
1 by 2 by 2 MPI processor grid
|
||||
create_atoms 1 box
|
||||
Created 250 atoms
|
||||
using lattice units in orthogonal box = (0 0 0) to (31.209815 31.209815 31.209815)
|
||||
create_atoms CPU = 0.000 seconds
|
||||
|
||||
# Define potential for use in simulation
|
||||
pair_style mgpt
|
||||
|
||||
# Set parameters for potential:
|
||||
# parameter files atomic volume
|
||||
#pair_coeff * * parmin potin ${atomic_vol}
|
||||
pair_coeff * * Ta6.8x.mgpt.parmin Ta6.8x.mgpt.potin ${atomic_vol}
|
||||
pair_coeff * * Ta6.8x.mgpt.parmin Ta6.8x.mgpt.potin 121.6
|
||||
Reading potential file Ta6.8x.mgpt.potin with DATE: 2015-07-30
|
||||
|
||||
# Create velocities at 0 K
|
||||
velocity all create 0.0 87287
|
||||
|
||||
# Set neighbor list parameters
|
||||
neighbor 0.1 bin
|
||||
neigh_modify every 1 delay 0 check yes
|
||||
|
||||
# Set up microcanonical integrator
|
||||
fix 1 all nve
|
||||
|
||||
# Dump coordinates to file every 50 timesteps
|
||||
#dump id all atom 50 dump.bcc0
|
||||
|
||||
# Output thermodynamical data every 10 timesteps
|
||||
thermo 10
|
||||
|
||||
# Set output quantities and output format
|
||||
thermo_style custom step vol temp pe etotal press
|
||||
|
||||
## Example: Output floating point number with 5 digits exponential notation.
|
||||
#thermo_modify format float %15.5e
|
||||
|
||||
# Run 0 timesteps
|
||||
run 0
|
||||
Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
|
||||
Neighbor list info ...
|
||||
update: every = 1 steps, delay = 0 steps, check = yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 13.161827
|
||||
ghost atom cutoff = 13.161827
|
||||
binsize = 6.5809134, bins = 5 5 5
|
||||
2 neighbor lists, perpetual/occasional/extra = 2 0 0
|
||||
(1) pair mgpt, perpetual
|
||||
attributes: full, newton on, ghost
|
||||
pair build: full/bin/ghost
|
||||
stencil: full/ghost/bin/3d
|
||||
bin: standard
|
||||
(2) pair mgpt, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/atomonly/newton
|
||||
stencil: half/bin/3d
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 3.73 | 3.73 | 3.73 Mbytes
|
||||
Step Volume Temp PotEng TotEng Press
|
||||
0 30400 0 -74.412503 -74.412503 -1.1594626e+09
|
||||
Loop time of 3.56525e-06 on 4 procs for 0 steps with 250 atoms
|
||||
|
||||
119.2% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Comm | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Output | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Modify | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Other | | 3.565e-06 | | |100.00
|
||||
|
||||
Nlocal: 62.5 ave 65 max 60 min
|
||||
Histogram: 2 0 0 0 0 0 0 0 0 2
|
||||
Nghost: 868.5 ave 871 max 866 min
|
||||
Histogram: 2 0 0 0 0 0 0 0 0 2
|
||||
Neighs: 2000 ave 2110 max 1890 min
|
||||
Histogram: 2 0 0 0 0 0 0 0 0 2
|
||||
FullNghs: 4000 ave 4160 max 3840 min
|
||||
Histogram: 2 0 0 0 0 0 0 0 0 2
|
||||
|
||||
Total # of neighbors = 16000
|
||||
Ave neighs/atom = 64
|
||||
Neighbor list builds = 0
|
||||
Dangerous builds = 0
|
||||
|
||||
# Convert energy to rydbergs and pressure to gpa
|
||||
|
||||
variable natoms equal "count(all)"
|
||||
variable voltot equal "vol"
|
||||
variable atvol equal "v_voltot/v_natoms"
|
||||
variable etot equal "2.0*pe"
|
||||
variable etotry equal "v_etot/v_natoms"
|
||||
variable ptot equal "press"
|
||||
variable ptotgpa equal "v_ptot/1.0e+09"
|
||||
|
||||
print "number of atoms = ${natoms}"
|
||||
number of atoms = 250
|
||||
print "atomic volume (a.u.) = ${atvol}"
|
||||
atomic volume (a.u.) = 121.6
|
||||
print "total energy (ry/atom) = ${etotry}"
|
||||
total energy (ry/atom) = -0.595300024887348
|
||||
print "pressure (gpa) = ${ptotgpa}"
|
||||
pressure (gpa) = -1.15946260887575
|
||||
print "${natoms} ${atvol} ${etot} ${ptotgpa}"
|
||||
250 121.6 -148.825006221837 -1.15946260887575
|
||||
print "${atvol} ${etotry} ${ptotgpa}"
|
||||
121.6 -0.595300024887348 -1.15946260887575
|
||||
Total wall time: 0:00:00
|
||||
144
examples/PACKAGES/mgpt/log.7Feb24.vac0-bcc.g++.1
Normal file
144
examples/PACKAGES/mgpt/log.7Feb24.vac0-bcc.g++.1
Normal file
@ -0,0 +1,144 @@
|
||||
LAMMPS (21 Nov 2023 - Development - patch_21Nov2023-744-g031cef558e-modified)
|
||||
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
|
||||
using 1 OpenMP thread(s) per MPI task
|
||||
# script for mgpt t=0 eos with unrelaxed vacancy in bcc lattice:
|
||||
# input for unrelaxed vacancy formation energy at constant atomic volume
|
||||
|
||||
units electron
|
||||
atom_style atomic
|
||||
|
||||
# Atomic volume for MGPT potential in a.u.
|
||||
variable atomic_vol equal 121.6
|
||||
|
||||
# Derive effective lattice volume from atomic volume for 249-site cell
|
||||
variable lat_vol equal ${atomic_vol}*249/250
|
||||
variable lat_vol equal 121.6*249/250
|
||||
|
||||
# Derive lattice constant from lattice volume
|
||||
variable lattice_constant equal (${lat_vol}*2.0)^(1.0/3.0)
|
||||
variable lattice_constant equal (121.1136*2.0)^(1.0/3.0)
|
||||
|
||||
# Create bcc lattice with 5x5x5 unit cells (250 atoms)
|
||||
lattice bcc ${lattice_constant}
|
||||
lattice bcc 6.23362926394575
|
||||
Lattice spacing in x,y,z = 6.2336293 6.2336293 6.2336293
|
||||
region box block 0 5 0 5 0 5
|
||||
create_box 1 box
|
||||
Created orthogonal box = (0 0 0) to (31.168146 31.168146 31.168146)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
create_atoms 1 box
|
||||
Created 250 atoms
|
||||
using lattice units in orthogonal box = (0 0 0) to (31.168146 31.168146 31.168146)
|
||||
create_atoms CPU = 0.000 seconds
|
||||
|
||||
# Remove central atom from bcc lattice to create vacancy
|
||||
region vacancy sphere 2.5 2.5 2.5 0.1 units lattice
|
||||
delete_atoms region vacancy
|
||||
Deleted 1 atoms, new total = 249
|
||||
|
||||
# Define potential for use in simulation
|
||||
pair_style mgpt
|
||||
|
||||
# Set parameters for potential:
|
||||
# parameter files atomic volume
|
||||
#pair_coeff * * parmin potin ${atomic_vol}
|
||||
pair_coeff * * Ta6.8x.mgpt.parmin Ta6.8x.mgpt.potin ${atomic_vol}
|
||||
pair_coeff * * Ta6.8x.mgpt.parmin Ta6.8x.mgpt.potin 121.6
|
||||
Reading potential file Ta6.8x.mgpt.potin with DATE: 2015-07-30
|
||||
|
||||
# Create velocities at 0 K
|
||||
velocity all create 0.0 87287
|
||||
|
||||
# Set neighbor list parameters
|
||||
neighbor 0.1 bin
|
||||
neigh_modify every 1 delay 0 check yes
|
||||
|
||||
# Set up microcanonical integrator
|
||||
fix 1 all nve
|
||||
|
||||
# Dump coordinates to file every 50 timesteps
|
||||
# dump id all atom 50 dump.vac0-bcc
|
||||
|
||||
# Output thermodynamical data every 10 timesteps
|
||||
thermo 10
|
||||
|
||||
# Set output quantities and output format
|
||||
thermo_style custom step vol temp pe etotal press
|
||||
|
||||
## Example: Output floating point number with 5 digits exponential notation.
|
||||
#thermo_modify format float %15.5e
|
||||
|
||||
# Run 0 timesteps
|
||||
run 0
|
||||
Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
|
||||
Neighbor list info ...
|
||||
update: every = 1 steps, delay = 0 steps, check = yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 13.161827
|
||||
ghost atom cutoff = 13.161827
|
||||
binsize = 6.5809134, bins = 5 5 5
|
||||
2 neighbor lists, perpetual/occasional/extra = 2 0 0
|
||||
(1) pair mgpt, perpetual
|
||||
attributes: full, newton on, ghost
|
||||
pair build: full/bin/ghost
|
||||
stencil: full/ghost/bin/3d
|
||||
bin: standard
|
||||
(2) pair mgpt, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/atomonly/newton
|
||||
stencil: half/bin/3d
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 3.755 | 3.755 | 3.755 Mbytes
|
||||
Step Volume Temp PotEng TotEng Press
|
||||
0 30278.4 0 -73.996387 -73.996387 -6.3426731e+08
|
||||
Loop time of 1.016e-06 on 1 procs for 0 steps with 249 atoms
|
||||
|
||||
98.4% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Comm | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Output | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Modify | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Other | | 1.016e-06 | | |100.00
|
||||
|
||||
Nlocal: 249 ave 249 max 249 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 1479 ave 1479 max 1479 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 7936 ave 7936 max 7936 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
FullNghs: 15872 ave 15872 max 15872 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 15872
|
||||
Ave neighs/atom = 63.742972
|
||||
Neighbor list builds = 0
|
||||
Dangerous builds = 0
|
||||
|
||||
# Convert energy to rydbergs and pressure to gpa
|
||||
|
||||
variable natoms equal "count(all)"
|
||||
variable voltot equal "vol"
|
||||
variable atvol equal "v_voltot/v_natoms"
|
||||
variable etot equal "2.0*pe"
|
||||
variable etotry equal "v_etot/v_natoms"
|
||||
variable ptot equal "press"
|
||||
variable ptotgpa equal "v_ptot/1.0e+09"
|
||||
|
||||
print "number of atoms = ${natoms}"
|
||||
number of atoms = 249
|
||||
print "atomic volume (a.u.) = ${atvol}"
|
||||
atomic volume (a.u.) = 121.6
|
||||
print "total energy (ry/atom) = ${etotry}"
|
||||
total energy (ry/atom) = -0.594348488796036
|
||||
print "pressure (gpa) = ${ptotgpa}"
|
||||
pressure (gpa) = -0.634267307139553
|
||||
print "${natoms} ${atvol} ${etot} ${ptotgpa}"
|
||||
249 121.6 -147.992773710213 -0.634267307139553
|
||||
print "${atvol} ${etotry} ${ptotgpa}"
|
||||
121.6 -0.594348488796036 -0.634267307139553
|
||||
Total wall time: 0:00:00
|
||||
144
examples/PACKAGES/mgpt/log.7Feb24.vac0-bcc.g++.4
Normal file
144
examples/PACKAGES/mgpt/log.7Feb24.vac0-bcc.g++.4
Normal file
@ -0,0 +1,144 @@
|
||||
LAMMPS (21 Nov 2023 - Development - patch_21Nov2023-744-g031cef558e-modified)
|
||||
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
|
||||
using 1 OpenMP thread(s) per MPI task
|
||||
# script for mgpt t=0 eos with unrelaxed vacancy in bcc lattice:
|
||||
# input for unrelaxed vacancy formation energy at constant atomic volume
|
||||
|
||||
units electron
|
||||
atom_style atomic
|
||||
|
||||
# Atomic volume for MGPT potential in a.u.
|
||||
variable atomic_vol equal 121.6
|
||||
|
||||
# Derive effective lattice volume from atomic volume for 249-site cell
|
||||
variable lat_vol equal ${atomic_vol}*249/250
|
||||
variable lat_vol equal 121.6*249/250
|
||||
|
||||
# Derive lattice constant from lattice volume
|
||||
variable lattice_constant equal (${lat_vol}*2.0)^(1.0/3.0)
|
||||
variable lattice_constant equal (121.1136*2.0)^(1.0/3.0)
|
||||
|
||||
# Create bcc lattice with 5x5x5 unit cells (250 atoms)
|
||||
lattice bcc ${lattice_constant}
|
||||
lattice bcc 6.23362926394575
|
||||
Lattice spacing in x,y,z = 6.2336293 6.2336293 6.2336293
|
||||
region box block 0 5 0 5 0 5
|
||||
create_box 1 box
|
||||
Created orthogonal box = (0 0 0) to (31.168146 31.168146 31.168146)
|
||||
1 by 2 by 2 MPI processor grid
|
||||
create_atoms 1 box
|
||||
Created 250 atoms
|
||||
using lattice units in orthogonal box = (0 0 0) to (31.168146 31.168146 31.168146)
|
||||
create_atoms CPU = 0.000 seconds
|
||||
|
||||
# Remove central atom from bcc lattice to create vacancy
|
||||
region vacancy sphere 2.5 2.5 2.5 0.1 units lattice
|
||||
delete_atoms region vacancy
|
||||
Deleted 1 atoms, new total = 249
|
||||
|
||||
# Define potential for use in simulation
|
||||
pair_style mgpt
|
||||
|
||||
# Set parameters for potential:
|
||||
# parameter files atomic volume
|
||||
#pair_coeff * * parmin potin ${atomic_vol}
|
||||
pair_coeff * * Ta6.8x.mgpt.parmin Ta6.8x.mgpt.potin ${atomic_vol}
|
||||
pair_coeff * * Ta6.8x.mgpt.parmin Ta6.8x.mgpt.potin 121.6
|
||||
Reading potential file Ta6.8x.mgpt.potin with DATE: 2015-07-30
|
||||
|
||||
# Create velocities at 0 K
|
||||
velocity all create 0.0 87287
|
||||
|
||||
# Set neighbor list parameters
|
||||
neighbor 0.1 bin
|
||||
neigh_modify every 1 delay 0 check yes
|
||||
|
||||
# Set up microcanonical integrator
|
||||
fix 1 all nve
|
||||
|
||||
# Dump coordinates to file every 50 timesteps
|
||||
# dump id all atom 50 dump.vac0-bcc
|
||||
|
||||
# Output thermodynamical data every 10 timesteps
|
||||
thermo 10
|
||||
|
||||
# Set output quantities and output format
|
||||
thermo_style custom step vol temp pe etotal press
|
||||
|
||||
## Example: Output floating point number with 5 digits exponential notation.
|
||||
#thermo_modify format float %15.5e
|
||||
|
||||
# Run 0 timesteps
|
||||
run 0
|
||||
Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
|
||||
Neighbor list info ...
|
||||
update: every = 1 steps, delay = 0 steps, check = yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 13.161827
|
||||
ghost atom cutoff = 13.161827
|
||||
binsize = 6.5809134, bins = 5 5 5
|
||||
2 neighbor lists, perpetual/occasional/extra = 2 0 0
|
||||
(1) pair mgpt, perpetual
|
||||
attributes: full, newton on, ghost
|
||||
pair build: full/bin/ghost
|
||||
stencil: full/ghost/bin/3d
|
||||
bin: standard
|
||||
(2) pair mgpt, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/atomonly/newton
|
||||
stencil: half/bin/3d
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 3.73 | 3.73 | 3.73 Mbytes
|
||||
Step Volume Temp PotEng TotEng Press
|
||||
0 30278.4 0 -73.996387 -73.996387 -6.3426731e+08
|
||||
Loop time of 2.64725e-06 on 4 procs for 0 steps with 249 atoms
|
||||
|
||||
37.8% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Comm | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Output | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Modify | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Other | | 2.647e-06 | | |100.00
|
||||
|
||||
Nlocal: 62.25 ave 65 max 60 min
|
||||
Histogram: 2 0 0 0 0 0 0 0 1 1
|
||||
Nghost: 867.75 ave 870 max 865 min
|
||||
Histogram: 1 0 1 0 0 0 0 0 0 2
|
||||
Neighs: 1984 ave 2099 max 1875 min
|
||||
Histogram: 2 0 0 0 0 0 0 0 0 2
|
||||
FullNghs: 3968 ave 4149 max 3825 min
|
||||
Histogram: 2 0 0 0 0 0 0 1 0 1
|
||||
|
||||
Total # of neighbors = 15872
|
||||
Ave neighs/atom = 63.742972
|
||||
Neighbor list builds = 0
|
||||
Dangerous builds = 0
|
||||
|
||||
# Convert energy to rydbergs and pressure to gpa
|
||||
|
||||
variable natoms equal "count(all)"
|
||||
variable voltot equal "vol"
|
||||
variable atvol equal "v_voltot/v_natoms"
|
||||
variable etot equal "2.0*pe"
|
||||
variable etotry equal "v_etot/v_natoms"
|
||||
variable ptot equal "press"
|
||||
variable ptotgpa equal "v_ptot/1.0e+09"
|
||||
|
||||
print "number of atoms = ${natoms}"
|
||||
number of atoms = 249
|
||||
print "atomic volume (a.u.) = ${atvol}"
|
||||
atomic volume (a.u.) = 121.6
|
||||
print "total energy (ry/atom) = ${etotry}"
|
||||
total energy (ry/atom) = -0.594348488795831
|
||||
print "pressure (gpa) = ${ptotgpa}"
|
||||
pressure (gpa) = -0.634267307088164
|
||||
print "${natoms} ${atvol} ${etot} ${ptotgpa}"
|
||||
249 121.6 -147.992773710162 -0.634267307088164
|
||||
print "${atvol} ${etotry} ${ptotgpa}"
|
||||
121.6 -0.594348488795831 -0.634267307088164
|
||||
Total wall time: 0:00:00
|
||||
162
examples/PACKAGES/mgpt/log.7Feb24.vacmin-bcc.g++.1
Normal file
162
examples/PACKAGES/mgpt/log.7Feb24.vacmin-bcc.g++.1
Normal file
@ -0,0 +1,162 @@
|
||||
LAMMPS (21 Nov 2023 - Development - patch_21Nov2023-744-g031cef558e-modified)
|
||||
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
|
||||
using 1 OpenMP thread(s) per MPI task
|
||||
# script for mgpt t=0 eos with relaxed vacancy in bcc structure:
|
||||
# input for relaxed vacancy formation energy at constant pressure
|
||||
|
||||
units electron
|
||||
atom_style atomic
|
||||
|
||||
# Atomic volume for MGPT potential
|
||||
variable atomic_vol equal 121.863
|
||||
|
||||
# Derive effective lattice volume from atomic volume for 249-site cell
|
||||
variable lat_vol equal ${atomic_vol}*249/250
|
||||
variable lat_vol equal 121.863*249/250
|
||||
|
||||
# Derive lattice constant from lattice volume
|
||||
variable lattice_constant equal (${lat_vol}*2.0)^(1.0/3.0)
|
||||
variable lattice_constant equal (121.375548*2.0)^(1.0/3.0)
|
||||
|
||||
# Create bcc lattice with 5x5x5 unit cells (250 atoms)
|
||||
lattice bcc ${lattice_constant}
|
||||
lattice bcc 6.23812011912273
|
||||
Lattice spacing in x,y,z = 6.2381201 6.2381201 6.2381201
|
||||
region box block 0 5 0 5 0 5
|
||||
create_box 1 box
|
||||
Created orthogonal box = (0 0 0) to (31.190601 31.190601 31.190601)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
create_atoms 1 box
|
||||
Created 250 atoms
|
||||
using lattice units in orthogonal box = (0 0 0) to (31.190601 31.190601 31.190601)
|
||||
create_atoms CPU = 0.000 seconds
|
||||
|
||||
# Remove central atom from bcc lattice to create vacancy
|
||||
region vacancy sphere 2.5 2.5 2.5 0.1 units lattice
|
||||
delete_atoms region vacancy
|
||||
Deleted 1 atoms, new total = 249
|
||||
|
||||
# Define potential for use in simulation
|
||||
pair_style mgpt
|
||||
|
||||
# Set parameters for potential:
|
||||
# parameter files atomic volume
|
||||
#pair_coeff * * parmin potin ${atomic_vol}
|
||||
pair_coeff * * Ta6.8x.mgpt.parmin Ta6.8x.mgpt.potin ${atomic_vol}
|
||||
pair_coeff * * Ta6.8x.mgpt.parmin Ta6.8x.mgpt.potin 121.863
|
||||
Reading potential file Ta6.8x.mgpt.potin with DATE: 2015-07-30
|
||||
|
||||
# Set neighbor list parameters
|
||||
neighbor 0.1 bin
|
||||
neigh_modify every 1 delay 0 check yes
|
||||
|
||||
# Dump coordinates to file every 50 timesteps
|
||||
# dump id all atom 50 dump.vacmin-bcc
|
||||
|
||||
# Output thermodynamical data every 10 timesteps
|
||||
thermo 10
|
||||
|
||||
# Set output quantities and output format
|
||||
thermo_style custom step vol temp pe etotal press
|
||||
|
||||
## Example: Output floating point number with 5 digits exponential notation.
|
||||
#thermo_modify format float %15.5e
|
||||
|
||||
# minimize total energy
|
||||
min_style cg
|
||||
minimize 1.0e-10 1.0e-10 5000 10000
|
||||
Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
|
||||
Neighbor list info ...
|
||||
update: every = 1 steps, delay = 0 steps, check = yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 13.171237
|
||||
ghost atom cutoff = 13.171237
|
||||
binsize = 6.5856184, bins = 5 5 5
|
||||
2 neighbor lists, perpetual/occasional/extra = 2 0 0
|
||||
(1) pair mgpt, perpetual
|
||||
attributes: full, newton on, ghost
|
||||
pair build: full/bin/ghost
|
||||
stencil: full/ghost/bin/3d
|
||||
bin: standard
|
||||
(2) pair mgpt, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/atomonly/newton
|
||||
stencil: half/bin/3d
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 4.88 | 4.88 | 4.88 Mbytes
|
||||
Step Volume Temp PotEng TotEng Press
|
||||
0 30343.887 0 -73.994511 -73.994511 -1.0504398e+09
|
||||
10 30343.887 0 -74.002332 -74.002332 -1.107516e+09
|
||||
20 30343.887 0 -74.00485 -74.00485 -1.1316373e+09
|
||||
30 30343.887 0 -74.005762 -74.005762 -1.143304e+09
|
||||
40 30343.887 0 -74.006116 -74.006116 -1.149395e+09
|
||||
50 30343.887 0 -74.006262 -74.006262 -1.1527914e+09
|
||||
60 30343.887 0 -74.006323 -74.006323 -1.1547677e+09
|
||||
70 30343.887 0 -74.00635 -74.00635 -1.1559529e+09
|
||||
80 30343.887 0 -74.006361 -74.006361 -1.1566763e+09
|
||||
90 30343.887 0 -74.006366 -74.006366 -1.1571256e+09
|
||||
100 30343.887 0 -74.006369 -74.006369 -1.1574093e+09
|
||||
110 30343.887 0 -74.00637 -74.00637 -1.1575908e+09
|
||||
120 30343.887 0 -74.00637 -74.00637 -1.1577083e+09
|
||||
130 30343.887 0 -74.00637 -74.00637 -1.1577849e+09
|
||||
139 30343.887 0 -74.006371 -74.006371 -1.1578311e+09
|
||||
Loop time of 2.58636 on 1 procs for 139 steps with 249 atoms
|
||||
|
||||
90.5% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = energy tolerance
|
||||
Energy initial, next-to-last, final =
|
||||
-73.9945109564338 -74.0063705487283 -74.0063705557007
|
||||
Force two-norm initial, final = 0.036622686 8.090814e-05
|
||||
Force max component initial, final = 0.0073094815 8.0524205e-06
|
||||
Final line search alpha, max atom move = 1 8.0524205e-06
|
||||
Iterations, force evaluations = 139 139
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 2.5671 | 2.5671 | 2.5671 | 0.0 | 99.26
|
||||
Neigh | 0.015241 | 0.015241 | 0.015241 | 0.0 | 0.59
|
||||
Comm | 0.001446 | 0.001446 | 0.001446 | 0.0 | 0.06
|
||||
Output | 0.00038428 | 0.00038428 | 0.00038428 | 0.0 | 0.01
|
||||
Modify | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Other | | 0.002161 | | | 0.08
|
||||
|
||||
Nlocal: 249 ave 249 max 249 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 1479 ave 1479 max 1479 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 7936 ave 7936 max 7936 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
FullNghs: 15872 ave 15872 max 15872 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 15872
|
||||
Ave neighs/atom = 63.742972
|
||||
Neighbor list builds = 4
|
||||
Dangerous builds = 0
|
||||
|
||||
# Convert energy to rydbergs and pressure to gpa
|
||||
|
||||
variable natoms equal "count(all)"
|
||||
variable voltot equal "vol"
|
||||
variable atvol equal "v_voltot/v_natoms"
|
||||
variable etot equal "2.0*pe"
|
||||
variable etotry equal "v_etot/v_natoms"
|
||||
variable ptot equal "press"
|
||||
variable ptotgpa equal "v_ptot/1.0e+09"
|
||||
|
||||
print "number of atoms = ${natoms}"
|
||||
number of atoms = 249
|
||||
print "atomic volume (a.u.) = ${atvol}"
|
||||
atomic volume (a.u.) = 121.863
|
||||
print "total energy (ry/atom) = ${etotry}"
|
||||
total energy (ry/atom) = -0.594428679162253
|
||||
print "pressure (gpa) = ${ptotgpa}"
|
||||
pressure (gpa) = -1.15783109516516
|
||||
print "${natoms} ${atvol} ${etot} ${ptotgpa}"
|
||||
249 121.863 -148.012741111401 -1.15783109516516
|
||||
print "${atvol} ${etotry} ${ptotgpa}"
|
||||
121.863 -0.594428679162253 -1.15783109516516
|
||||
Total wall time: 0:00:02
|
||||
162
examples/PACKAGES/mgpt/log.7Feb24.vacmin-bcc.g++.4
Normal file
162
examples/PACKAGES/mgpt/log.7Feb24.vacmin-bcc.g++.4
Normal file
@ -0,0 +1,162 @@
|
||||
LAMMPS (21 Nov 2023 - Development - patch_21Nov2023-744-g031cef558e-modified)
|
||||
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
|
||||
using 1 OpenMP thread(s) per MPI task
|
||||
# script for mgpt t=0 eos with relaxed vacancy in bcc structure:
|
||||
# input for relaxed vacancy formation energy at constant pressure
|
||||
|
||||
units electron
|
||||
atom_style atomic
|
||||
|
||||
# Atomic volume for MGPT potential
|
||||
variable atomic_vol equal 121.863
|
||||
|
||||
# Derive effective lattice volume from atomic volume for 249-site cell
|
||||
variable lat_vol equal ${atomic_vol}*249/250
|
||||
variable lat_vol equal 121.863*249/250
|
||||
|
||||
# Derive lattice constant from lattice volume
|
||||
variable lattice_constant equal (${lat_vol}*2.0)^(1.0/3.0)
|
||||
variable lattice_constant equal (121.375548*2.0)^(1.0/3.0)
|
||||
|
||||
# Create bcc lattice with 5x5x5 unit cells (250 atoms)
|
||||
lattice bcc ${lattice_constant}
|
||||
lattice bcc 6.23812011912273
|
||||
Lattice spacing in x,y,z = 6.2381201 6.2381201 6.2381201
|
||||
region box block 0 5 0 5 0 5
|
||||
create_box 1 box
|
||||
Created orthogonal box = (0 0 0) to (31.190601 31.190601 31.190601)
|
||||
1 by 2 by 2 MPI processor grid
|
||||
create_atoms 1 box
|
||||
Created 250 atoms
|
||||
using lattice units in orthogonal box = (0 0 0) to (31.190601 31.190601 31.190601)
|
||||
create_atoms CPU = 0.000 seconds
|
||||
|
||||
# Remove central atom from bcc lattice to create vacancy
|
||||
region vacancy sphere 2.5 2.5 2.5 0.1 units lattice
|
||||
delete_atoms region vacancy
|
||||
Deleted 1 atoms, new total = 249
|
||||
|
||||
# Define potential for use in simulation
|
||||
pair_style mgpt
|
||||
|
||||
# Set parameters for potential:
|
||||
# parameter files atomic volume
|
||||
#pair_coeff * * parmin potin ${atomic_vol}
|
||||
pair_coeff * * Ta6.8x.mgpt.parmin Ta6.8x.mgpt.potin ${atomic_vol}
|
||||
pair_coeff * * Ta6.8x.mgpt.parmin Ta6.8x.mgpt.potin 121.863
|
||||
Reading potential file Ta6.8x.mgpt.potin with DATE: 2015-07-30
|
||||
|
||||
# Set neighbor list parameters
|
||||
neighbor 0.1 bin
|
||||
neigh_modify every 1 delay 0 check yes
|
||||
|
||||
# Dump coordinates to file every 50 timesteps
|
||||
# dump id all atom 50 dump.vacmin-bcc
|
||||
|
||||
# Output thermodynamical data every 10 timesteps
|
||||
thermo 10
|
||||
|
||||
# Set output quantities and output format
|
||||
thermo_style custom step vol temp pe etotal press
|
||||
|
||||
## Example: Output floating point number with 5 digits exponential notation.
|
||||
#thermo_modify format float %15.5e
|
||||
|
||||
# minimize total energy
|
||||
min_style cg
|
||||
minimize 1.0e-10 1.0e-10 5000 10000
|
||||
Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
|
||||
Neighbor list info ...
|
||||
update: every = 1 steps, delay = 0 steps, check = yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 13.171237
|
||||
ghost atom cutoff = 13.171237
|
||||
binsize = 6.5856184, bins = 5 5 5
|
||||
2 neighbor lists, perpetual/occasional/extra = 2 0 0
|
||||
(1) pair mgpt, perpetual
|
||||
attributes: full, newton on, ghost
|
||||
pair build: full/bin/ghost
|
||||
stencil: full/ghost/bin/3d
|
||||
bin: standard
|
||||
(2) pair mgpt, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/atomonly/newton
|
||||
stencil: half/bin/3d
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 4.855 | 4.855 | 4.855 Mbytes
|
||||
Step Volume Temp PotEng TotEng Press
|
||||
0 30343.887 0 -73.994511 -73.994511 -1.0504398e+09
|
||||
10 30343.887 0 -74.002332 -74.002332 -1.107516e+09
|
||||
20 30343.887 0 -74.00485 -74.00485 -1.1316373e+09
|
||||
30 30343.887 0 -74.005762 -74.005762 -1.143304e+09
|
||||
40 30343.887 0 -74.006116 -74.006116 -1.149395e+09
|
||||
50 30343.887 0 -74.006262 -74.006262 -1.1527914e+09
|
||||
60 30343.887 0 -74.006323 -74.006323 -1.1547677e+09
|
||||
70 30343.887 0 -74.00635 -74.00635 -1.1559529e+09
|
||||
80 30343.887 0 -74.006361 -74.006361 -1.1566763e+09
|
||||
90 30343.887 0 -74.006366 -74.006366 -1.1571256e+09
|
||||
100 30343.887 0 -74.006369 -74.006369 -1.1574093e+09
|
||||
110 30343.887 0 -74.00637 -74.00637 -1.1575908e+09
|
||||
120 30343.887 0 -74.00637 -74.00637 -1.1577083e+09
|
||||
130 30343.887 0 -74.00637 -74.00637 -1.1577849e+09
|
||||
139 30343.887 0 -74.006371 -74.006371 -1.1578311e+09
|
||||
Loop time of 0.972735 on 4 procs for 139 steps with 249 atoms
|
||||
|
||||
89.3% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = energy tolerance
|
||||
Energy initial, next-to-last, final =
|
||||
-73.9945109564331 -74.0063705487423 -74.0063705556773
|
||||
Force two-norm initial, final = 0.036622686 8.090814e-05
|
||||
Force max component initial, final = 0.0073094815 8.0524207e-06
|
||||
Final line search alpha, max atom move = 1 8.0524207e-06
|
||||
Iterations, force evaluations = 139 139
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 0.9418 | 0.94514 | 0.9488 | 0.3 | 97.16
|
||||
Neigh | 0.0083827 | 0.0084423 | 0.0085002 | 0.0 | 0.87
|
||||
Comm | 0.011833 | 0.015482 | 0.01882 | 2.0 | 1.59
|
||||
Output | 0.0002579 | 0.00029089 | 0.000389 | 0.0 | 0.03
|
||||
Modify | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Other | | 0.003376 | | | 0.35
|
||||
|
||||
Nlocal: 62.25 ave 68 max 59 min
|
||||
Histogram: 1 1 0 1 0 0 0 0 0 1
|
||||
Nghost: 867.75 ave 871 max 862 min
|
||||
Histogram: 1 0 0 0 0 0 1 0 1 1
|
||||
Neighs: 1984 ave 2211 max 1853 min
|
||||
Histogram: 1 1 1 0 0 0 0 0 0 1
|
||||
FullNghs: 3968 ave 4334 max 3761 min
|
||||
Histogram: 1 1 0 1 0 0 0 0 0 1
|
||||
|
||||
Total # of neighbors = 15872
|
||||
Ave neighs/atom = 63.742972
|
||||
Neighbor list builds = 4
|
||||
Dangerous builds = 0
|
||||
|
||||
# Convert energy to rydbergs and pressure to gpa
|
||||
|
||||
variable natoms equal "count(all)"
|
||||
variable voltot equal "vol"
|
||||
variable atvol equal "v_voltot/v_natoms"
|
||||
variable etot equal "2.0*pe"
|
||||
variable etotry equal "v_etot/v_natoms"
|
||||
variable ptot equal "press"
|
||||
variable ptotgpa equal "v_ptot/1.0e+09"
|
||||
|
||||
print "number of atoms = ${natoms}"
|
||||
number of atoms = 249
|
||||
print "atomic volume (a.u.) = ${atvol}"
|
||||
atomic volume (a.u.) = 121.863
|
||||
print "total energy (ry/atom) = ${etotry}"
|
||||
total energy (ry/atom) = -0.594428679162068
|
||||
print "pressure (gpa) = ${ptotgpa}"
|
||||
pressure (gpa) = -1.15783109519336
|
||||
print "${natoms} ${atvol} ${etot} ${ptotgpa}"
|
||||
249 121.863 -148.012741111355 -1.15783109519336
|
||||
print "${atvol} ${etotry} ${ptotgpa}"
|
||||
121.863 -0.594428679162068 -1.15783109519336
|
||||
Total wall time: 0:00:00
|
||||
@ -1,53 +0,0 @@
|
||||
LAMMPS (23 Oct 2015)
|
||||
# script for mgpt t=0 eos in bulk bcc structure
|
||||
|
||||
echo screen
|
||||
Lattice spacing in x,y,z = 6.24196 6.24196 6.24196
|
||||
Created orthogonal box = (0 0 0) to (31.2098 31.2098 31.2098)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
Created 250 atoms
|
||||
Reading potential file Ta6.8x.mgpt.potin with DATE: 2015-07-30
|
||||
Neighbor list info ...
|
||||
2 neighbor list requests
|
||||
update every 1 steps, delay 0 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 13.1618
|
||||
ghost atom cutoff = 13.1618
|
||||
binsize = 6.58091 -> bins = 5 5 5
|
||||
Memory usage per processor = 3.54482 Mbytes
|
||||
Step Volume Temp PotEng TotEng Press
|
||||
0 30400 0 -74.412503 -74.412503 -1.1594626e+09
|
||||
Loop time of 1.90735e-06 on 1 procs for 0 steps with 250 atoms
|
||||
|
||||
0.0% CPU use with 1 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Comm | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Output | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Modify | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Other | | 1.907e-06 | | |100.00
|
||||
|
||||
Nlocal: 250 ave 250 max 250 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 1479 ave 1479 max 1479 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 8000 ave 8000 max 8000 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
FullNghs: 16000 ave 16000 max 16000 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 16000
|
||||
Ave neighs/atom = 64
|
||||
Neighbor list builds = 0
|
||||
Dangerous builds = 0
|
||||
number of atoms = 250
|
||||
atomic volume (a.u.) = 121.6
|
||||
total energy (ry/atom) = -0.59530002488734
|
||||
pressure (gpa) = -1.15946260887556
|
||||
250 121.6 -148.825006221835 -1.15946260887556
|
||||
121.6 -0.59530002488734 -1.15946260887556
|
||||
Total wall time: 0:00:00
|
||||
@ -1,55 +0,0 @@
|
||||
LAMMPS (23 Oct 2015)
|
||||
# script for mgpt t=0 eos with unrelaxed vacancy in bcc lattice:
|
||||
# input for unrelaxed vacancy formation energy at constant atomic volume
|
||||
|
||||
echo screen
|
||||
Lattice spacing in x,y,z = 6.23363 6.23363 6.23363
|
||||
Created orthogonal box = (0 0 0) to (31.1681 31.1681 31.1681)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
Created 250 atoms
|
||||
Deleted 1 atoms, new total = 249
|
||||
Reading potential file Ta6.8x.mgpt.potin with DATE: 2015-07-30
|
||||
Neighbor list info ...
|
||||
2 neighbor list requests
|
||||
update every 1 steps, delay 0 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 13.1618
|
||||
ghost atom cutoff = 13.1618
|
||||
binsize = 6.58091 -> bins = 5 5 5
|
||||
Memory usage per processor = 3.54478 Mbytes
|
||||
Step Volume Temp PotEng TotEng Press
|
||||
0 30278.4 0 -73.996387 -73.996387 -6.3426731e+08
|
||||
Loop time of 1.90735e-06 on 1 procs for 0 steps with 249 atoms
|
||||
|
||||
0.0% CPU use with 1 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Comm | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Output | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Modify | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Other | | 1.907e-06 | | |100.00
|
||||
|
||||
Nlocal: 249 ave 249 max 249 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 1479 ave 1479 max 1479 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 7936 ave 7936 max 7936 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
FullNghs: 15872 ave 15872 max 15872 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 15872
|
||||
Ave neighs/atom = 63.743
|
||||
Neighbor list builds = 0
|
||||
Dangerous builds = 0
|
||||
number of atoms = 249
|
||||
atomic volume (a.u.) = 121.6
|
||||
total energy (ry/atom) = -0.594348488796036
|
||||
pressure (gpa) = -0.634267307139601
|
||||
249 121.6 -147.992773710213 -0.634267307139601
|
||||
121.6 -0.594348488796036 -0.634267307139601
|
||||
Total wall time: 0:00:00
|
||||
@ -1,78 +0,0 @@
|
||||
LAMMPS (23 Oct 2015)
|
||||
# script for mgpt t=0 eos with relaxed vacancy in bcc structure:
|
||||
# input for relaxed vacancy formation energy at constant pressure
|
||||
|
||||
echo screen
|
||||
Lattice spacing in x,y,z = 6.23812 6.23812 6.23812
|
||||
Created orthogonal box = (0 0 0) to (31.1906 31.1906 31.1906)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
Created 250 atoms
|
||||
Deleted 1 atoms, new total = 249
|
||||
Reading potential file Ta6.8x.mgpt.potin with DATE: 2015-07-30
|
||||
Neighbor list info ...
|
||||
2 neighbor list requests
|
||||
update every 1 steps, delay 0 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 13.1712
|
||||
ghost atom cutoff = 13.1712
|
||||
binsize = 6.58562 -> bins = 5 5 5
|
||||
Memory usage per processor = 4.66978 Mbytes
|
||||
Step Volume Temp PotEng TotEng Press
|
||||
0 30343.887 0 -73.994511 -73.994511 -1.0504398e+09
|
||||
10 30343.887 0 -74.002332 -74.002332 -1.107516e+09
|
||||
20 30343.887 0 -74.00485 -74.00485 -1.1316373e+09
|
||||
30 30343.887 0 -74.005762 -74.005762 -1.143304e+09
|
||||
40 30343.887 0 -74.006116 -74.006116 -1.149395e+09
|
||||
50 30343.887 0 -74.006262 -74.006262 -1.1527914e+09
|
||||
60 30343.887 0 -74.006323 -74.006323 -1.1547677e+09
|
||||
70 30343.887 0 -74.00635 -74.00635 -1.1559529e+09
|
||||
80 30343.887 0 -74.006361 -74.006361 -1.1566763e+09
|
||||
90 30343.887 0 -74.006366 -74.006366 -1.1571256e+09
|
||||
100 30343.887 0 -74.006369 -74.006369 -1.1574093e+09
|
||||
110 30343.887 0 -74.00637 -74.00637 -1.1575908e+09
|
||||
120 30343.887 0 -74.00637 -74.00637 -1.1577083e+09
|
||||
130 30343.887 0 -74.00637 -74.00637 -1.1577849e+09
|
||||
139 30343.887 0 -74.006371 -74.006371 -1.1578311e+09
|
||||
Loop time of 4.22107 on 1 procs for 139 steps with 249 atoms
|
||||
|
||||
92.1% CPU use with 1 MPI tasks x no OpenMP threads
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = energy tolerance
|
||||
Energy initial, next-to-last, final =
|
||||
-73.9945109564 -74.0063705487 -74.0063705557
|
||||
Force two-norm initial, final = 0.0366227 8.09081e-05
|
||||
Force max component initial, final = 0.00730948 8.05242e-06
|
||||
Final line search alpha, max atom move = 1 8.05242e-06
|
||||
Iterations, force evaluations = 139 139
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 4.1973 | 4.1973 | 4.1973 | 0.0 | 99.44
|
||||
Neigh | 0.018799 | 0.018799 | 0.018799 | 0.0 | 0.45
|
||||
Comm | 0.0017059 | 0.0017059 | 0.0017059 | 0.0 | 0.04
|
||||
Output | 0.00080252 | 0.00080252 | 0.00080252 | 0.0 | 0.02
|
||||
Modify | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Other | | 0.002477 | | | 0.06
|
||||
|
||||
Nlocal: 249 ave 249 max 249 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 1479 ave 1479 max 1479 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 7936 ave 7936 max 7936 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
FullNghs: 15872 ave 15872 max 15872 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 15872
|
||||
Ave neighs/atom = 63.743
|
||||
Neighbor list builds = 4
|
||||
Dangerous builds = 0
|
||||
number of atoms = 249
|
||||
atomic volume (a.u.) = 121.863
|
||||
total energy (ry/atom) = -0.594428679162064
|
||||
pressure (gpa) = -1.15783109519801
|
||||
249 121.863 -148.012741111354 -1.15783109519801
|
||||
121.863 -0.594428679162064 -1.15783109519801
|
||||
Total wall time: 0:00:04
|
||||
@ -491,17 +491,17 @@ template<int mem1, int mem2> struct _ucl_memcpy;
|
||||
// Both are images
|
||||
template<> struct _ucl_memcpy<2,2> {
|
||||
template <class p1, class p2>
|
||||
static inline void mc(p1 &dst, const p2 &src, const size_t n,
|
||||
cl_command_queue &cq, const cl_bool block,
|
||||
const size_t dst_offset, const size_t src_offset) {
|
||||
static inline void mc(p1 &/*dst*/, const p2 &/*src*/, const size_t /*n*/,
|
||||
cl_command_queue &/*cq*/, const cl_bool /*block*/,
|
||||
const size_t /*dst_offset*/, const size_t /*src_offset*/) {
|
||||
assert(0==1);
|
||||
}
|
||||
template <class p1, class p2>
|
||||
static inline void mc(p1 &dst, const size_t dpitch, const p2 &src,
|
||||
const size_t spitch, const size_t cols,
|
||||
const size_t rows, cl_command_queue &cq,
|
||||
const cl_bool block,
|
||||
const size_t dst_offset, const size_t src_offset) {
|
||||
static inline void mc(p1 &/*dst*/, const size_t /*dpitch*/, const p2 &/*src*/,
|
||||
const size_t /*spitch*/, const size_t /*cols*/,
|
||||
const size_t /*rows*/, cl_command_queue &/*cq*/,
|
||||
const cl_bool /*block*/,
|
||||
const size_t /*dst_offset*/, const size_t /*src_offset*/) {
|
||||
assert(0==1);
|
||||
}
|
||||
};
|
||||
@ -509,17 +509,17 @@ template<> struct _ucl_memcpy<2,2> {
|
||||
// Destination is texture, source on device
|
||||
template<> struct _ucl_memcpy<2,0> {
|
||||
template <class p1, class p2>
|
||||
static inline void mc(p1 &dst, const p2 &src, const size_t n,
|
||||
cl_command_queue &cq, const cl_bool block,
|
||||
const size_t dst_offset, const size_t src_offset) {
|
||||
static inline void mc(p1 &/*dst*/, const p2 &/*src*/, const size_t /*n*/,
|
||||
cl_command_queue &/*cq*/, const cl_bool /*block*/,
|
||||
const size_t /*dst_offset*/, const size_t /*src_offset*/) {
|
||||
assert(0==1);
|
||||
}
|
||||
template <class p1, class p2>
|
||||
static inline void mc(p1 &dst, const size_t dpitch, const p2 &src,
|
||||
const size_t spitch, const size_t cols,
|
||||
const size_t rows, cl_command_queue &cq,
|
||||
const cl_bool block,
|
||||
const size_t dst_offset, const size_t src_offset) {
|
||||
static inline void mc(p1 &/*dst*/, const size_t /*dpitch*/, const p2 &/*src*/,
|
||||
const size_t /*spitch*/, const size_t /*cols*/,
|
||||
const size_t /*rows*/, cl_command_queue &/*cq*/,
|
||||
const cl_bool /*block*/,
|
||||
const size_t /*dst_offset*/, const size_t /*src_offset*/) {
|
||||
assert(0==1);
|
||||
}
|
||||
};
|
||||
@ -527,17 +527,17 @@ template<> struct _ucl_memcpy<2,0> {
|
||||
// Destination is texture, source on host
|
||||
template<> struct _ucl_memcpy<2,1> {
|
||||
template <class p1, class p2>
|
||||
static inline void mc(p1 &dst, const p2 &src, const size_t n,
|
||||
cl_command_queue &cq, const cl_bool block,
|
||||
const size_t dst_offset, const size_t src_offset) {
|
||||
static inline void mc(p1 &/*dst*/, const p2 &/*src*/, const size_t /*n*/,
|
||||
cl_command_queue &/*cq*/, const cl_bool /*block*/,
|
||||
const size_t /*dst_offset*/, const size_t /*src_offset*/) {
|
||||
assert(0==1);
|
||||
}
|
||||
template <class p1, class p2>
|
||||
static inline void mc(p1 &dst, const size_t dpitch, const p2 &src,
|
||||
const size_t spitch, const size_t cols,
|
||||
const size_t rows, cl_command_queue &cq,
|
||||
const cl_bool block,
|
||||
const size_t dst_offset, const size_t src_offset) {
|
||||
static inline void mc(p1 &/*dst*/, const size_t /*dpitch*/, const p2 &/*src*/,
|
||||
const size_t /*spitch*/, const size_t /*cols*/,
|
||||
const size_t /*rows*/, cl_command_queue &/*cq*/,
|
||||
const cl_bool /*block*/,
|
||||
const size_t /*dst_offset*/, const size_t /*src_offset*/) {
|
||||
assert(0==1);
|
||||
}
|
||||
};
|
||||
@ -545,17 +545,17 @@ template<> struct _ucl_memcpy<2,1> {
|
||||
// Source is texture, dest on device
|
||||
template<> struct _ucl_memcpy<0,2> {
|
||||
template <class p1, class p2>
|
||||
static inline void mc(p1 &dst, const p2 &src, const size_t n,
|
||||
cl_command_queue &cq, const cl_bool block,
|
||||
const size_t dst_offset, const size_t src_offset) {
|
||||
static inline void mc(p1 &/*dst*/, const p2 &/*src*/, const size_t /*n*/,
|
||||
cl_command_queue &/*cq*/, const cl_bool /*block*/,
|
||||
const size_t /*dst_offset*/, const size_t /*src_offset*/) {
|
||||
assert(0==1);
|
||||
}
|
||||
template <class p1, class p2>
|
||||
static inline void mc(p1 &dst, const size_t dpitch, const p2 &src,
|
||||
const size_t spitch, const size_t cols,
|
||||
const size_t rows, cl_command_queue &cq,
|
||||
const cl_bool block,
|
||||
const size_t dst_offset, const size_t src_offset) {
|
||||
static inline void mc(p1 &/*dst*/, const size_t /*dpitch*/, const p2 &/*src*/,
|
||||
const size_t /*spitch*/, const size_t /*cols*/,
|
||||
const size_t /*rows*/, cl_command_queue &/*cq*/,
|
||||
const cl_bool /*block*/,
|
||||
const size_t /*dst_offset*/, const size_t /*src_offset*/) {
|
||||
assert(0==1);
|
||||
}
|
||||
};
|
||||
@ -563,17 +563,17 @@ template<> struct _ucl_memcpy<0,2> {
|
||||
// Source is texture, dest on host
|
||||
template<> struct _ucl_memcpy<1,2> {
|
||||
template <class p1, class p2>
|
||||
static inline void mc(p1 &dst, const p2 &src, const size_t n,
|
||||
cl_command_queue &cq, const cl_bool block,
|
||||
const size_t dst_offset, const size_t src_offset) {
|
||||
static inline void mc(p1 &/*dst*/, const p2 &/*src*/, const size_t /*n*/,
|
||||
cl_command_queue &/*cq*/, const cl_bool /*block*/,
|
||||
const size_t /*dst_offset*/, const size_t /*src_offset*/) {
|
||||
assert(0==1);
|
||||
}
|
||||
template <class p1, class p2>
|
||||
static inline void mc(p1 &dst, const size_t dpitch, const p2 &src,
|
||||
const size_t spitch, const size_t cols,
|
||||
const size_t rows, cl_command_queue &cq,
|
||||
const cl_bool block,
|
||||
const size_t dst_offset, const size_t src_offset) {
|
||||
static inline void mc(p1 &/*dst*/, const size_t /*dpitch*/, const p2 &/*src*/,
|
||||
const size_t /*spitch*/, const size_t /*cols*/,
|
||||
const size_t /*rows*/, cl_command_queue &/*cq*/,
|
||||
const cl_bool /*block*/,
|
||||
const size_t /*dst_offset*/, const size_t /*src_offset*/) {
|
||||
assert(0==1);
|
||||
}
|
||||
};
|
||||
|
||||
@ -507,7 +507,7 @@ template <> struct _ucl_cast_copy<0,0> {
|
||||
}
|
||||
template <class mat1, class mat2, class mat3>
|
||||
static inline void cc(mat1 & /*dst*/, const mat2 & /*src*/, const size_t /*rows*/,
|
||||
const size_t cols, mat3 & /*cast_buffer*/, command_queue & /*cq*/) {
|
||||
const size_t /*cols*/, mat3 & /*cast_buffer*/, command_queue & /*cq*/) {
|
||||
assert(0==1);
|
||||
}
|
||||
};
|
||||
|
||||
@ -156,7 +156,7 @@ class UCL_D_Vec : public UCL_BaseMat {
|
||||
* \param stride Number of _elements_ between the start of each row **/
|
||||
template <class ucl_type>
|
||||
inline void view(ucl_type &input, const size_t rows, const size_t cols,
|
||||
const size_t stride) { view(input,rows,cols); }
|
||||
const size_t /*stride*/) { view(input,rows,cols); }
|
||||
|
||||
/// Do not allocate memory, instead use an existing allocation from Geryon
|
||||
/** This function must be passed a Geryon vector or matrix container.
|
||||
@ -185,7 +185,7 @@ class UCL_D_Vec : public UCL_BaseMat {
|
||||
* - The view does not prevent the memory from being freed by the
|
||||
* allocating container when using CUDA APIs **/
|
||||
template <class ptr_type>
|
||||
inline void view(ptr_type input, const size_t rows, const size_t cols,
|
||||
inline void view(ptr_type input, const size_t /*rows*/, const size_t cols,
|
||||
UCL_Device &dev) {
|
||||
#ifdef UCL_DEBUG
|
||||
assert(rows==1);
|
||||
@ -213,7 +213,7 @@ class UCL_D_Vec : public UCL_BaseMat {
|
||||
* \param stride Number of _elements_ between the start of each row **/
|
||||
template <class ptr_type>
|
||||
inline void view(ptr_type input, const size_t rows, const size_t cols,
|
||||
const size_t stride, UCL_Device &dev)
|
||||
const size_t stride, UCL_Device &/*dev*/)
|
||||
{ view(input,rows,cols,stride); }
|
||||
|
||||
/// Do not allocate memory, instead use an existing allocation
|
||||
@ -262,7 +262,7 @@ class UCL_D_Vec : public UCL_BaseMat {
|
||||
* \param stride Number of _elements_ between the start of each row **/
|
||||
template <class ucl_type>
|
||||
inline void view_offset(const size_t offset,ucl_type &input,const size_t rows,
|
||||
const size_t cols, const size_t stride)
|
||||
const size_t cols, const size_t /*stride*/)
|
||||
{ view_offset(offset,input,rows,cols); }
|
||||
|
||||
/// Do not allocate memory, instead use an existing allocation from Geryon
|
||||
@ -292,7 +292,7 @@ class UCL_D_Vec : public UCL_BaseMat {
|
||||
* - The view does not prevent the memory from being freed by the
|
||||
* allocating container when using CUDA APIs **/
|
||||
template <class ptr_type>
|
||||
inline void view_offset(const size_t offset,ptr_type input,const size_t rows,
|
||||
inline void view_offset(const size_t offset,ptr_type input,const size_t /*rows*/,
|
||||
const size_t cols, UCL_Device &dev) {
|
||||
#ifdef UCL_DEBUG
|
||||
assert(rows==1);
|
||||
@ -328,7 +328,7 @@ class UCL_D_Vec : public UCL_BaseMat {
|
||||
* \param stride Number of _elements_ between the start of each row **/
|
||||
template <class ptr_type>
|
||||
inline void view_offset(const size_t offset,ptr_type input,const size_t rows,
|
||||
const size_t cols,const size_t stride,UCL_Device &dev)
|
||||
const size_t cols,const size_t stride,UCL_Device &/*dev*/)
|
||||
{ view_offset(offset,input,rows,cols,stride); }
|
||||
|
||||
/// Do not allocate memory, instead use an existing allocation
|
||||
|
||||
@ -156,7 +156,7 @@ class UCL_H_Vec : public UCL_BaseMat {
|
||||
* \param stride Number of _elements_ between the start of each row **/
|
||||
template <class ucl_type>
|
||||
inline void view(ucl_type &input, const size_t rows, const size_t cols,
|
||||
const size_t stride) { view(input,rows,cols); }
|
||||
const size_t /*stride*/) { view(input,rows,cols); }
|
||||
|
||||
/// Do not allocate memory, instead use an existing allocation from Geryon
|
||||
/** This function must be passed a Geryon vector or matrix container.
|
||||
@ -214,7 +214,7 @@ class UCL_H_Vec : public UCL_BaseMat {
|
||||
* \param stride Number of _elements_ between the start of each row **/
|
||||
template <class ptr_type>
|
||||
inline void view(ptr_type *input, const size_t rows, const size_t cols,
|
||||
const size_t stride, UCL_Device &dev)
|
||||
const size_t stride, UCL_Device &/*dev*/)
|
||||
{ view(input,rows,cols,stride); }
|
||||
|
||||
/// Do not allocate memory, instead use an existing allocation
|
||||
@ -259,7 +259,7 @@ class UCL_H_Vec : public UCL_BaseMat {
|
||||
* \param stride Number of _elements_ between the start of each row **/
|
||||
template <class ucl_type>
|
||||
inline void view_offset(const size_t offset,ucl_type &input,const size_t rows,
|
||||
const size_t cols, const size_t stride)
|
||||
const size_t cols, const size_t /*stride*/)
|
||||
{ view_offset(offset,input,rows,cols); }
|
||||
|
||||
/// Do not allocate memory, instead use an existing allocation from Geryon
|
||||
@ -382,10 +382,10 @@ class UCL_H_Vec : public UCL_BaseMat {
|
||||
/// Get element at index i
|
||||
inline const numtyp & operator[](const int i) const { return _array[i]; }
|
||||
/// 2D access (row should always be 0)
|
||||
inline numtyp & operator()(const int row, const int col)
|
||||
inline numtyp & operator()(const int /*row*/, const int col)
|
||||
{ return _array[col]; }
|
||||
/// 2D access (row should always be 0)
|
||||
inline const numtyp & operator()(const int row, const int col) const
|
||||
inline const numtyp & operator()(const int /*row*/, const int col) const
|
||||
{ return _array[col]; }
|
||||
|
||||
/// Returns pointer to memory pointer for allocation on host
|
||||
|
||||
@ -35,7 +35,7 @@ template <> struct _ucl_print<1> {
|
||||
}
|
||||
template <class mat_type>
|
||||
static inline void p(const mat_type &mat, const size_t n, std::ostream &out,
|
||||
const std::string delim, UCL_Device &dev) {
|
||||
const std::string delim, UCL_Device &/*dev*/) {
|
||||
p(mat,n,out,delim);
|
||||
}
|
||||
template <class mat_type>
|
||||
@ -59,7 +59,7 @@ template <> struct _ucl_print<1> {
|
||||
template <class mat_type>
|
||||
static inline void p(const mat_type &mat,const size_t rows,const size_t cols,
|
||||
std::ostream &out,const std::string delim,
|
||||
const std::string row_delim, UCL_Device &dev) {
|
||||
const std::string row_delim, UCL_Device &/*dev*/) {
|
||||
p(mat,rows,cols,out,delim,row_delim);
|
||||
}
|
||||
};
|
||||
|
||||
@ -53,7 +53,7 @@ template <> struct _ucl_s_obj_help<1> {
|
||||
}
|
||||
|
||||
template <class t1, class t2, class t3, class mat_type>
|
||||
static inline int alloc(t1 &host, t2 &device, t3 &_buffer,
|
||||
static inline int alloc(t1 &host, t2 &device, t3 &/*_buffer*/,
|
||||
const int cols, mat_type &cq,
|
||||
const enum UCL_MEMOPT kind1,
|
||||
const enum UCL_MEMOPT kind2) {
|
||||
@ -79,7 +79,7 @@ template <> struct _ucl_s_obj_help<1> {
|
||||
}
|
||||
|
||||
template <class t1, class t2, class t3>
|
||||
static inline int alloc(t1 &host, t2 &device, t3 &_buffer,
|
||||
static inline int alloc(t1 &host, t2 &device, t3 &/*_buffer*/,
|
||||
const int rows, const int cols, UCL_Device &acc,
|
||||
const enum UCL_MEMOPT kind1,
|
||||
const enum UCL_MEMOPT kind2) {
|
||||
@ -105,7 +105,7 @@ template <> struct _ucl_s_obj_help<1> {
|
||||
}
|
||||
|
||||
template <class t1, class t2, class t3, class mat_type>
|
||||
static inline int alloc(t1 &host, t2 &device, t3 &_buffer,
|
||||
static inline int alloc(t1 &host, t2 &device, t3 &/*_buffer*/,
|
||||
const int rows, const int cols, mat_type &cq,
|
||||
const enum UCL_MEMOPT kind1,
|
||||
const enum UCL_MEMOPT kind2) {
|
||||
@ -177,7 +177,7 @@ template <> struct _ucl_s_obj_help<1> {
|
||||
}
|
||||
|
||||
template <class t1, class t2, class t3>
|
||||
static inline int dev_resize(t1 &device, t2 &host, t3 &buff, const int rows,
|
||||
static inline int dev_resize(t1 &device, t2 &host, t3 &/*buff*/, const int rows,
|
||||
const int cols) {
|
||||
if (device.kind()==UCL_VIEW) {
|
||||
device.view(host);
|
||||
@ -369,7 +369,7 @@ template <int st> struct _ucl_s_obj_help {
|
||||
}
|
||||
|
||||
template <class t1, class t2, class t3>
|
||||
static inline int dev_resize(t1 &device, t2 &host, t3 &buff, const int rows,
|
||||
static inline int dev_resize(t1 &device, t2 &/*host*/, t3 &buff, const int rows,
|
||||
const int cols) {
|
||||
int err=buff.resize(rows,cols);
|
||||
if (err!=UCL_SUCCESS)
|
||||
|
||||
@ -147,10 +147,10 @@ class UCL_Vector {
|
||||
/// Get element at index i
|
||||
inline const hosttype & operator[](const int i) const { return host[i]; }
|
||||
/// 2D access (row should always be 0)
|
||||
inline hosttype & operator()(const int row, const int col)
|
||||
inline hosttype & operator()(const int /*row*/, const int col)
|
||||
{ return host[col]; }
|
||||
/// 2D access (row should always be 0)
|
||||
inline const hosttype & operator()(const int row, const int col) const
|
||||
inline const hosttype & operator()(const int /*row*/, const int col) const
|
||||
{ return host[col]; }
|
||||
|
||||
/// Returns pointer to memory pointer for allocation on host
|
||||
|
||||
@ -1254,7 +1254,7 @@ class lammps(object):
|
||||
def set_variable(self,name,value):
|
||||
"""Set a new value for a LAMMPS string style variable
|
||||
|
||||
.. deprecated:: TBD
|
||||
.. deprecated:: 7Feb2024
|
||||
|
||||
This is a wrapper around the :cpp:func:`lammps_set_variable`
|
||||
function of the C-library interface.
|
||||
@ -1278,7 +1278,7 @@ class lammps(object):
|
||||
def set_string_variable(self,name,value):
|
||||
"""Set a new value for a LAMMPS string style variable
|
||||
|
||||
.. versionadded:: TBD
|
||||
.. versionadded:: 7Feb2024
|
||||
|
||||
This is a wrapper around the :cpp:func:`lammps_set_string_variable`
|
||||
function of the C-library interface.
|
||||
@ -1302,7 +1302,7 @@ class lammps(object):
|
||||
def set_internal_variable(self,name,value):
|
||||
"""Set a new value for a LAMMPS internal style variable
|
||||
|
||||
.. versionadded:: TBD
|
||||
.. versionadded:: 7Feb2024
|
||||
|
||||
This is a wrapper around the :cpp:func:`lammps_set_internal_variable`
|
||||
function of the C-library interface.
|
||||
|
||||
@ -50,6 +50,7 @@
|
||||
#include "npair_half_bin_newton_ssa.h"
|
||||
#include "pair_dpd_fdt.h"
|
||||
#include "pair_dpd_fdt_energy.h"
|
||||
#include "random_external_state.h"
|
||||
#include "update.h"
|
||||
|
||||
#include <cstring>
|
||||
@ -84,8 +85,8 @@ static const char cite_fix_shardlow[] =
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
FixShardlow::FixShardlow(LAMMPS *lmp, int narg, char **arg) :
|
||||
Fix(lmp, narg, arg), pairDPD(nullptr), pairDPDE(nullptr), v_t0(nullptr)
|
||||
,rand_state(nullptr)
|
||||
Fix(lmp, narg, arg), pairDPD(nullptr), pairDPDE(nullptr), v_t0(nullptr),
|
||||
rand_state(nullptr)
|
||||
{
|
||||
if (lmp->citeme) lmp->citeme->add(cite_fix_shardlow);
|
||||
|
||||
|
||||
@ -21,7 +21,10 @@ FixStyle(shardlow,FixShardlow);
|
||||
#define LMP_FIX_SHARDLOW_H
|
||||
|
||||
#include "fix.h"
|
||||
#include "random_external_state.h"
|
||||
|
||||
namespace random_external_state {
|
||||
using es_RNG_t = uint64_t;
|
||||
}
|
||||
|
||||
namespace LAMMPS_NS {
|
||||
|
||||
|
||||
@ -76,7 +76,7 @@
|
||||
// A replacement for the Kokkos Random_XorShift64 class that uses
|
||||
// an external state variable, instead of a class member variable.
|
||||
namespace random_external_state {
|
||||
typedef uint64_t es_RNG_t;
|
||||
using es_RNG_t = uint64_t;
|
||||
|
||||
constexpr uint32_t MAX_URAND = 0xffffffffU;
|
||||
constexpr uint64_t MAX_URAND64 = 0xffffffffffffffffULL - 1;
|
||||
|
||||
@ -1602,9 +1602,6 @@ void ref_torsion_single_interaction(KernelArgsAIREBOT<flt_t,acc_t> * ka, int i,
|
||||
flt_t thmin = ka->params.thmin;
|
||||
flt_t thmax = ka->params.thmax;
|
||||
int itype = map[x[i].w];
|
||||
flt_t xtmp = x[i].x;
|
||||
flt_t ytmp = x[i].y;
|
||||
flt_t ztmp = x[i].z;
|
||||
int * REBO_neighs_i = &ka->neigh_rebo.entries[ka->neigh_rebo.offset[i]];
|
||||
int jnum = ka->neigh_rebo.num[i];
|
||||
int jtype = map[x[j].w];
|
||||
|
||||
@ -131,8 +131,7 @@ void PairLJCharmmCoulCharmmIntel::eval(const int offload, const int vflag,
|
||||
int nlocal, nall, minlocal;
|
||||
fix->get_buffern(offload, nlocal, nall, minlocal);
|
||||
|
||||
const int ago = neighbor->ago;
|
||||
IP_PRE_pack_separate_buffers(fix, buffers, ago, offload, nlocal, nall);
|
||||
IP_PRE_pack_separate_buffers(fix, buffers, neighbor->ago, offload, nlocal, nall);
|
||||
|
||||
ATOM_T * _noalias const x = buffers->get_x(offload);
|
||||
flt_t * _noalias const q = buffers->get_q(offload);
|
||||
@ -231,7 +230,6 @@ void PairLJCharmmCoulCharmmIntel::eval(const int offload, const int vflag,
|
||||
else foff = -minlocal;
|
||||
FORCE_T * _noalias const f = f_start + foff;
|
||||
if (NEWTON_PAIR) memset(f + minlocal, 0, f_stride * sizeof(FORCE_T));
|
||||
flt_t cutboth = cut_coulsq;
|
||||
|
||||
const int toffs = tid * ccache_stride;
|
||||
flt_t * _noalias const tdelx = ccachex + toffs;
|
||||
@ -246,7 +244,6 @@ void PairLJCharmmCoulCharmmIntel::eval(const int offload, const int vflag,
|
||||
const int itype = x[i].w;
|
||||
|
||||
const int ptr_off = itype * ntypes;
|
||||
const flt_t * _noalias const cutsqi = cutsq + ptr_off;
|
||||
const LJ_T * _noalias const lji = lj + ptr_off;
|
||||
|
||||
const int * _noalias const jlist = firstneigh[i];
|
||||
|
||||
@ -26,9 +26,6 @@
|
||||
|
||||
using namespace LAMMPS_NS;
|
||||
|
||||
#define MIN(A,B) ((A) < (B) ? (A) : (B))
|
||||
#define MAX(A,B) ((A) > (B) ? (A) : (B))
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
template<class DeviceType>
|
||||
|
||||
@ -18,15 +18,78 @@
|
||||
#define LMP_FFT_DATA_KOKKOS_H
|
||||
|
||||
#include "kokkos_type.h"
|
||||
|
||||
#ifndef MAX
|
||||
#define MAX(A,B) ((A) > (B) ? (A) : (B))
|
||||
#endif
|
||||
|
||||
#include "lmpfftsettings.h"
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
// if a user sets FFTW, it means FFTW3
|
||||
|
||||
#ifdef LMP_KOKKOS
|
||||
# ifdef FFT_KOKKOS_FFTW
|
||||
# undef FFT_KOKKOS_FFTW
|
||||
# define FFT_KOKKOS_FFTW3
|
||||
# endif
|
||||
# ifdef FFT_KOKKOS_FFTW_THREADS
|
||||
# if !defined(FFT_KOKKOS_FFTW3)
|
||||
# error "Must use -DFFT_KOKKOS_FFTW3 with -DFFT_KOKKOS_FFTW_THREADS"
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// with KOKKOS in CUDA or HIP mode we can only have
|
||||
// CUFFT/HIPFFT or KISS, thus undefine all other
|
||||
// FFTs here
|
||||
|
||||
#ifdef KOKKOS_ENABLE_CUDA
|
||||
# if defined(FFT_KOKKOS_FFTW)
|
||||
# undef FFT_KOKKOS_FFTW
|
||||
# endif
|
||||
# if defined(FFT_KOKKOS_FFTW3)
|
||||
# undef FFT_KOKKOS_FFTW3
|
||||
# endif
|
||||
# if defined(FFT_KOKKOS_MKL)
|
||||
# undef FFT_KOKKOS_MKL
|
||||
# endif
|
||||
# if !defined(FFT_KOKKOS_CUFFT) && !defined(FFT_KOKKOS_KISS)
|
||||
# define FFT_KOKKOS_KISS
|
||||
# endif
|
||||
#elif defined(KOKKOS_ENABLE_HIP)
|
||||
# if defined(FFT_KOKKOS_FFTW)
|
||||
# undef FFT_KOKKOS_FFTW
|
||||
# endif
|
||||
# if defined(FFT_KOKKOS_FFTW3)
|
||||
# undef FFT_KOKKOS_FFTW3
|
||||
# endif
|
||||
# if defined(FFT_KOKKOS_MKL)
|
||||
# undef FFT_KOKKOS_MKL
|
||||
# endif
|
||||
# if !defined(FFT_KOKKOS_HIPFFT) && !defined(FFT_KOKKOS_KISS)
|
||||
# define FFT_KOKKOS_KISS
|
||||
# endif
|
||||
#else
|
||||
# if defined(FFT_KOKKOS_CUFFT)
|
||||
# error "Must enable CUDA with KOKKOS to use -DFFT_KOKKOS_CUFFT"
|
||||
# endif
|
||||
# if defined(FFT_KOKKOS_HIPFFT)
|
||||
# error "Must enable HIP with KOKKOS to use -DFFT_KOKKOS_HIPFFT"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// set strings for library info output
|
||||
|
||||
#if defined(FFT_KOKKOS_CUFFT)
|
||||
#define LMP_FFT_KOKKOS_LIB "cuFFT"
|
||||
#elif defined(FFT_KOKKOS_HIPFFT)
|
||||
#define LMP_FFT_KOKKOS_LIB "hipFFT"
|
||||
#elif defined(FFT_KOKKOS_FFTW3)
|
||||
#define LMP_FFT_KOKKOS_LIB "FFTW3"
|
||||
#elif defined(FFT_KOKKOS_MKL)
|
||||
#define LMP_FFT_KOKKOS_LIB "MKL FFT"
|
||||
#else
|
||||
#define LMP_FFT_KOKKOS_LIB "KISS FFT"
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(FFT_KOKKOS_MKL)
|
||||
#include "mkl_dfti.h"
|
||||
#if defined(FFT_SINGLE)
|
||||
|
||||
@ -49,6 +49,7 @@
|
||||
#include "neighbor.h"
|
||||
#include "npair_ssa_kokkos.h"
|
||||
#include "pair_dpd_fdt_energy_kokkos.h"
|
||||
#include "random_external_state.h"
|
||||
#include "update.h"
|
||||
|
||||
#include <cmath>
|
||||
|
||||
@ -19,9 +19,6 @@
|
||||
|
||||
using namespace LAMMPS_NS;
|
||||
|
||||
#define MIN(A,B) ((A) < (B) ? (A) : (B))
|
||||
#define MAX(A,B) ((A) > (B) ? (A) : (B))
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
template<class DeviceType>
|
||||
|
||||
@ -156,7 +156,7 @@ static void getparmindata(const char *potin_file,int nvol[1],double vol0[1],doub
|
||||
|
||||
void potdata::readpot(const char *parmin_file,const char *potin_file,const double vol) {
|
||||
FILE *in;
|
||||
double x0,x1,dx,dr;
|
||||
double x0,x1,dx;
|
||||
int nx;
|
||||
|
||||
double r0x,r1x,drx;
|
||||
@ -348,7 +348,7 @@ void potdata::readpot(const char *parmin_file,const char *potin_file,const doubl
|
||||
nrx = (int) ((r1x-r0x)/drx + 1.1); /* Really: 1+round((r1-r0)/dr) */
|
||||
|
||||
if (ii == 0) {
|
||||
r0 = r0x; r1 = r1x; dr = drx; nr = nrx;
|
||||
r0 = r0x; r1 = r1x; nr = nrx;
|
||||
vpairtab = new double[nx*nr];
|
||||
} else {
|
||||
/* Check that {r0,r1,dr,nr}x == {r0,r1,dr,nr} */
|
||||
@ -373,15 +373,12 @@ void potdata::readpot(const char *parmin_file,const char *potin_file,const doubl
|
||||
double r0rws = r0rwstab[i];
|
||||
double r00 = r0rws*rws,rp = 1.8*rws;
|
||||
if (bscreen == 0) r0rws = 10.0;
|
||||
double alp = al,alm = al;
|
||||
if (mode == 2 || mode == 4 || mode == 6) alm = 125.0;
|
||||
double alp = al;
|
||||
al = alp;
|
||||
|
||||
double r = r0 + j*(r1-r0)/(nr-1);
|
||||
|
||||
double rrws = r/rws;
|
||||
//double rsqr = r*r;
|
||||
// double fl(double r,int mode,double rp,double p1,double al,double r0)
|
||||
double flr = fl(r,mode,rp,p1,al,r00,pn);
|
||||
double fl2 = flr*flr;
|
||||
double v2a = vatab[i]*fl2*fl2;
|
||||
@ -392,15 +389,11 @@ void potdata::readpot(const char *parmin_file,const char *potin_file,const doubl
|
||||
double arg = rrws/r0rwstab[i];
|
||||
double arg1 = arg - 1.0;
|
||||
double arg12 = arg1*arg1;
|
||||
double f,dp;
|
||||
double f;
|
||||
if (mode <= 2) {
|
||||
f = fgauss(arg,al);
|
||||
dp=2.*al*arg*arg1;
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
f = hgauss(arg,al);
|
||||
double arg13 = arg1*arg12;
|
||||
dp=2.0*al*al*arg*arg13/(1.+al*arg12);
|
||||
}
|
||||
fscr = f*f;
|
||||
}
|
||||
|
||||
@ -39,7 +39,7 @@
|
||||
|
||||
using namespace LAMMPS_NS;
|
||||
|
||||
//#define TIMING_ON
|
||||
// #define TIMING_ON
|
||||
|
||||
#ifdef TIMING_ON
|
||||
#include <sys/time.h>
|
||||
@ -49,13 +49,11 @@ using namespace LAMMPS_NS;
|
||||
#include <hwi/include/bqc/A2_inlines.h>
|
||||
#endif
|
||||
|
||||
static double gettime(int x = 0) {
|
||||
static double gettime() {
|
||||
if (1) {
|
||||
/*
|
||||
struct timeval tv;
|
||||
gettimeofday(&tv,nullptr);
|
||||
return tv.tv_sec + 1e-6 * tv.tv_usec;
|
||||
*/
|
||||
/*
|
||||
const double x = 1.0 / CLOCKS_PER_SEC;
|
||||
return clock() * x;
|
||||
@ -68,16 +66,17 @@ static double gettime(int x = 0) {
|
||||
return x*invfreq;
|
||||
*/
|
||||
|
||||
/*
|
||||
const double invfreq = 1.0 / 1.6e9;
|
||||
unsigned long long int x = GetTimeBase();
|
||||
return x*invfreq;
|
||||
|
||||
*/
|
||||
|
||||
} else
|
||||
return 0.0;
|
||||
}
|
||||
#else
|
||||
static double gettime(int /*x*/ = 0) { return 0.0; }
|
||||
static double gettime() { return 0.0; }
|
||||
#endif
|
||||
|
||||
|
||||
@ -569,6 +568,7 @@ void PairMGPT::force_debug_4(double xx[][3],
|
||||
#ifdef __bg__
|
||||
#define const
|
||||
#endif
|
||||
#ifdef TIMING_ON
|
||||
static int ntr_calls = 0;
|
||||
static trtrace3_fun tr_internal;
|
||||
static void tr_count(const double * restrict A,
|
||||
@ -578,6 +578,7 @@ static void tr_count(const double * restrict A,
|
||||
tr_internal(A,B1,t1,B2,t2,B3,t3);
|
||||
ntr_calls++;
|
||||
}
|
||||
#endif
|
||||
#ifdef __bg__
|
||||
#undef const
|
||||
#endif
|
||||
@ -589,34 +590,33 @@ void PairMGPT::compute_x(const int *nnei,const int * const *nlist,
|
||||
double *e_s,double *e_p,double *e_t,double *e_q,
|
||||
int evflag,int newton_pair) {
|
||||
Hash<bond_data,Doublet> bond_hash(100000);
|
||||
int i,j,k,m,ix,jx,kx,mx,p;
|
||||
int i,j,k,m,ix,jx,kx,p;
|
||||
double e_single,e_pair,e_triplet,e_triplet_c,e_quad;
|
||||
double volvir2;
|
||||
|
||||
#ifdef TIMING_ON
|
||||
double nbc = 0.0,tbl = 0.0,tbm = 0.0;
|
||||
const int lmax_local = lmax;
|
||||
|
||||
//if(evflag) printf("##### ev flag is set... wasting cycles...\n");
|
||||
|
||||
#endif
|
||||
*e_s = -99.0;
|
||||
*e_p = -99.0;
|
||||
*e_t = -99.0;
|
||||
*e_q = -99.0;
|
||||
|
||||
double t0,t1;
|
||||
|
||||
t0 = gettime(1);
|
||||
#ifdef TIMING_ON
|
||||
double t0 = gettime();
|
||||
#endif
|
||||
e_single = e_pair = e_triplet = e_triplet_c = e_quad = 0.0;
|
||||
volvir2 = 0.0;
|
||||
|
||||
t_make_t = t_make_b = t_make_b2 = t_trace = 0.0;
|
||||
n_make = n_make_b2 = n_trace = 0.0;
|
||||
|
||||
double tx0,tx1,tsort = 0.0,tpair = 0.0,tlookup = 0.0;
|
||||
#ifdef TIMING_ON
|
||||
double tsort = 0.0, tpair = 0.0,tlookup = 0.0;
|
||||
double ttriplet = 0.0,tquad = 0.0,tmem = 0.0;
|
||||
double ntsort = 0.0,ntpair = 0.0,ntlookup = 0.0;
|
||||
double nttriplet = 0.0,ntquad = 0.0,ntmem = 0.0,ntquaditer = 0.0;
|
||||
double mcount = 0.0,mcount2 = 0.0, qcount = 0.0;
|
||||
#endif
|
||||
|
||||
double fix,fjx,fkx,fmx,dfix,dfjx,dfkx,dfmx;
|
||||
double fiy,fjy,fky,fmy,dfiy,dfjy,dfky,dfmy;
|
||||
@ -670,8 +670,9 @@ void PairMGPT::compute_x(const int *nnei,const int * const *nlist,
|
||||
double trd1y,trd2y,trd3y,trd4y;
|
||||
double trd1z,trd2z,trd3z,trd4z;
|
||||
|
||||
|
||||
tx0 = gettime();
|
||||
#ifdef TIMING_ON
|
||||
double tx0 = gettime();
|
||||
#endif
|
||||
|
||||
double rhoinv;
|
||||
{
|
||||
@ -751,9 +752,11 @@ void PairMGPT::compute_x(const int *nnei,const int * const *nlist,
|
||||
first = (int *) memory->smalloc(sizeof(int) * (ntot+1),"mgpt: first");
|
||||
nlist_short = (int *) memory->smalloc(sizeof(int) * nneitot,"mgpt: nlist_short");
|
||||
|
||||
tx1 = gettime();
|
||||
#ifdef TIMING_ON
|
||||
double tx1 = gettime();
|
||||
tmem += tx1-tx0;
|
||||
ntmem++;
|
||||
#endif
|
||||
|
||||
//printf("[%3d] Starting calculation...\n",comm->me);
|
||||
|
||||
@ -762,7 +765,9 @@ void PairMGPT::compute_x(const int *nnei,const int * const *nlist,
|
||||
fiy = fjy = fky = fmy = 0.0;
|
||||
fiz = fjz = fkz = fmz = 0.0;
|
||||
|
||||
#ifdef TIMING_ON
|
||||
int c_p = 0, c_t = 0, c_q = 0;
|
||||
#endif
|
||||
|
||||
if (false)
|
||||
if (domain->triclinic) {
|
||||
@ -786,7 +791,9 @@ void PairMGPT::compute_x(const int *nnei,const int * const *nlist,
|
||||
|
||||
const int c1 = c1_outside(ss[i],triclinic,alpha);
|
||||
|
||||
#ifdef TIMING_ON
|
||||
tx0 = gettime();
|
||||
#endif
|
||||
for (jx = 0; jx<nnei[i]; jx++) {
|
||||
fjx = fjy = fjz = 0.0;
|
||||
|
||||
@ -814,8 +821,9 @@ void PairMGPT::compute_x(const int *nnei,const int * const *nlist,
|
||||
|
||||
if (pair_energies == 0) de_pair = 0.0;
|
||||
e_pair = e_pair + de_pair;
|
||||
#ifdef TIMING_ON
|
||||
c_p++;
|
||||
|
||||
#endif
|
||||
if (pair_forces == 0) df = 0.0;
|
||||
|
||||
if (volpres_flag && pair_energies) {
|
||||
@ -885,9 +893,11 @@ void PairMGPT::compute_x(const int *nnei,const int * const *nlist,
|
||||
ff[i][1] += fiy * e_scale;
|
||||
ff[i][2] += fiz * e_scale;
|
||||
|
||||
#ifdef TIMING_ON
|
||||
tx1 = gettime();
|
||||
tpair += tx1-tx0;
|
||||
ntpair += nnei[i];
|
||||
#endif
|
||||
}
|
||||
|
||||
for (i = 0; i<ntot; i++) {
|
||||
@ -950,7 +960,9 @@ void PairMGPT::compute_x(const int *nnei,const int * const *nlist,
|
||||
c_jk = 0;
|
||||
}
|
||||
|
||||
#ifdef TIMING_ON
|
||||
tx0 = gettime();
|
||||
#endif
|
||||
|
||||
w3 = get_weight(triclinic,ss[i],ss[j],ss[k]);
|
||||
|
||||
@ -989,8 +1001,9 @@ void PairMGPT::compute_x(const int *nnei,const int * const *nlist,
|
||||
vir3t = vir3t + dvir;
|
||||
xvir3t = xvir3t + dvir;
|
||||
}
|
||||
#ifdef TIMING_ON
|
||||
mcount2++;
|
||||
|
||||
#endif
|
||||
{
|
||||
const double vc = splinepot.vc;
|
||||
tr_trace3(&(bki->H.m[1][0]),
|
||||
@ -1042,8 +1055,9 @@ void PairMGPT::compute_x(const int *nnei,const int * const *nlist,
|
||||
}
|
||||
|
||||
if (T12 != nullptr) {
|
||||
//printf("T12 i,j,k = %d,%d,%d\n",i,j,k);
|
||||
#ifdef TIMING_ON
|
||||
mcount++;
|
||||
#endif
|
||||
if (three_body_energies && evflag) {
|
||||
tr1 = transtrace(T12->H1H2,T12->H1H2);
|
||||
double dvir = (2.0*(dvir_ij + dvir_jk)*splinepot.vd +
|
||||
@ -1098,8 +1112,9 @@ void PairMGPT::compute_x(const int *nnei,const int * const *nlist,
|
||||
}
|
||||
|
||||
if (T23 != nullptr) {
|
||||
//printf("T23 i,j,k = %d,%d,%d\n",i,j,k);
|
||||
#ifdef TIMING_ON
|
||||
mcount++;
|
||||
#endif
|
||||
if (three_body_energies && evflag) {
|
||||
tr2 = transtrace(T23->H1H2,T23->H1H2);
|
||||
double dvir = (2.0*(dvir_jk + dvir_ki)*splinepot.vd +
|
||||
@ -1154,8 +1169,9 @@ void PairMGPT::compute_x(const int *nnei,const int * const *nlist,
|
||||
}
|
||||
|
||||
if (T31 != nullptr) {
|
||||
//printf("T31 i,j,k = %d,%d,%d\n",i,j,k);
|
||||
#ifdef TIMING_ON
|
||||
mcount++;
|
||||
#endif
|
||||
if (three_body_energies && evflag) {
|
||||
tr3 = transtrace(T31->H1H2,T31->H1H2);
|
||||
double dvir = (2.0*(dvir_ki + dvir_ij)*splinepot.vd +
|
||||
@ -1214,8 +1230,9 @@ void PairMGPT::compute_x(const int *nnei,const int * const *nlist,
|
||||
double de_triplet = (splinepot.vc*v33 + splinepot.vd*v43) * e_scale * w3;
|
||||
e_triplet = e_triplet + de_triplet;
|
||||
e_triplet_c = e_triplet_c + splinepot.vc*v33 * e_scale * w3;
|
||||
#ifdef TIMING_ON
|
||||
c_t++;
|
||||
|
||||
#endif
|
||||
//printf("xxxx %6d %6d %6d :: %20.10e\n",1,2,3,de_triplet);
|
||||
|
||||
if (evflag) {
|
||||
@ -1246,16 +1263,20 @@ void PairMGPT::compute_x(const int *nnei,const int * const *nlist,
|
||||
fkx = fkx+fsave[2][0]; fky = fky+fsave[2][1]; fkz = fkz+fsave[2][2];
|
||||
}
|
||||
|
||||
#ifdef TIMING_ON
|
||||
tx1 = gettime();
|
||||
ttriplet += tx1 - tx0;
|
||||
nttriplet++;
|
||||
#endif
|
||||
} else {
|
||||
triplet_defer = 1;
|
||||
}
|
||||
|
||||
if (four_body_energies || four_body_forces)
|
||||
if (j < i) { /* Search for quadruplet */
|
||||
#ifdef TIMING_ON
|
||||
tx0 = gettime();
|
||||
#endif
|
||||
|
||||
mj = first[j];
|
||||
mk = first[k];
|
||||
@ -1342,8 +1363,9 @@ void PairMGPT::compute_x(const int *nnei,const int * const *nlist,
|
||||
vir4 = vir4 + dvir;
|
||||
xvir4 = xvir4 + dvir;
|
||||
}
|
||||
#ifdef TIMING_ON
|
||||
qcount++;
|
||||
|
||||
#endif
|
||||
{
|
||||
const double ve = splinepot.ve;
|
||||
|
||||
@ -1371,8 +1393,9 @@ void PairMGPT::compute_x(const int *nnei,const int * const *nlist,
|
||||
vir4 = vir4 + dvir;
|
||||
xvir4 = xvir4 + dvir;
|
||||
}
|
||||
#ifdef TIMING_ON
|
||||
qcount++;
|
||||
|
||||
#endif
|
||||
{
|
||||
const double ve = splinepot.ve;
|
||||
|
||||
@ -1401,8 +1424,9 @@ void PairMGPT::compute_x(const int *nnei,const int * const *nlist,
|
||||
vir4 = vir4 + dvir;
|
||||
xvir4 = xvir4 + dvir;
|
||||
}
|
||||
#ifdef TIMING_ON
|
||||
qcount++;
|
||||
|
||||
#endif
|
||||
{
|
||||
const double ve = splinepot.ve;
|
||||
|
||||
@ -1425,11 +1449,13 @@ void PairMGPT::compute_x(const int *nnei,const int * const *nlist,
|
||||
|
||||
double de_quad = splinepot.ve*(tr1 + tr2 + tr3)/anorm4 * e_scale * w4;
|
||||
e_quad = e_quad + de_quad;
|
||||
#ifdef TIMING_ON
|
||||
if ((T12 && T45) ||
|
||||
(T23 && T56) ||
|
||||
(T31 && T64)) {
|
||||
c_q++;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (evflag) {
|
||||
double drim[3],drjm[3],drkm[3];
|
||||
@ -1479,10 +1505,12 @@ void PairMGPT::compute_x(const int *nnei,const int * const *nlist,
|
||||
}
|
||||
|
||||
}
|
||||
#ifdef TIMING_ON
|
||||
tx1 = gettime();
|
||||
tquad += tx1 - tx0;
|
||||
ntquad++;
|
||||
ntquaditer++;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@ -1514,12 +1542,12 @@ void PairMGPT::compute_x(const int *nnei,const int * const *nlist,
|
||||
for (int pp = 0; pp<3; pp++)
|
||||
vatom[i][pp] = vatom[i][pp] - rhoinv*splinepot.devol0*e_scale;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#ifdef TIMING_ON
|
||||
tx0 = gettime();
|
||||
#endif
|
||||
for (i = 0; i<ntot; i++)
|
||||
for (p = 0; p<3; p++)
|
||||
atom->f[i][p] = atom->f[i][p] + ff[i][p];
|
||||
@ -1529,20 +1557,16 @@ void PairMGPT::compute_x(const int *nnei,const int * const *nlist,
|
||||
if (ss != xx) memory->sfree(ss);
|
||||
memory->sfree(ff);
|
||||
memory->sfree(xx);
|
||||
#ifdef TIMING_ON
|
||||
tx1 = gettime();
|
||||
tmem += tx1-tx0;
|
||||
ntmem++;
|
||||
|
||||
t1 = gettime(1);
|
||||
double t1 = gettime();
|
||||
|
||||
//printf("compute_x: c_p = %d c_t = %d c_q = %d\n",c_p,c_t,c_q);
|
||||
|
||||
|
||||
#ifdef TIMING_ON
|
||||
if (comm->me == 0) {
|
||||
double tsum = (tmem+tsort+tpair+tlookup+ttriplet+tquad);
|
||||
double nsum = (ntmem+ntsort+ntpair+ntlookup+nttriplet+ntquad);
|
||||
//double adj = ((t1-t0)-tsum)/nsum;
|
||||
/* Use adj = 6ns for RDTSC, and 58ns for gettimeofday,
|
||||
on monkfish.llnl.gov, 2.4GHz Intel
|
||||
|
||||
@ -1832,7 +1856,7 @@ void PairMGPT::coeff(int narg, char **arg)
|
||||
single_precision = 0;
|
||||
|
||||
/* Parse arguments */ {
|
||||
int volpres_tag = 0,precision_tag = 0,nbody_tag = 0;
|
||||
int nbody_tag = 0;
|
||||
|
||||
int iarg = 5;
|
||||
while (iarg < narg) {
|
||||
@ -1848,7 +1872,6 @@ void PairMGPT::coeff(int narg, char **arg)
|
||||
"The value is \"%s\".\n",FLERR,arg[iarg+1]);
|
||||
error->all(FLERR,line);
|
||||
}
|
||||
volpres_tag = 1;
|
||||
iarg += 2;
|
||||
if (comm->me == 0) printf("* volpress: volpres_flag = %d [%s %s]\n",volpres_flag,arg[iarg-2],arg[iarg-1]);
|
||||
} else if (strcmp(arg[iarg],"nbody") == 0) {
|
||||
@ -1884,7 +1907,6 @@ void PairMGPT::coeff(int narg, char **arg)
|
||||
"The value is \"%s\".\n",FLERR,arg[iarg+1]);
|
||||
error->all(FLERR,line);
|
||||
}
|
||||
precision_tag = 1;
|
||||
iarg += 2;
|
||||
if (comm->me == 0) printf("* precision: single_flag = %d [%s %s]\n",single_precision,arg[iarg-2],arg[iarg-1]);
|
||||
} else {
|
||||
|
||||
@ -273,6 +273,8 @@ public:
|
||||
void allocate();
|
||||
|
||||
struct Matrix {
|
||||
Matrix() = default;
|
||||
Matrix(const Matrix &) = default;
|
||||
static int sz;
|
||||
|
||||
double m[8][8];
|
||||
|
||||
@ -2455,7 +2455,7 @@ static int set_variable_deprecated_flag = 1;
|
||||
/** Set the value of a string-style variable.
|
||||
\verbatim embed:rst
|
||||
|
||||
.. deprecated:: TBD
|
||||
.. deprecated:: 7Feb2024
|
||||
|
||||
This function assigns a new value from the string str to the
|
||||
string-style variable *name*. This is a way to directly change the
|
||||
@ -2493,7 +2493,7 @@ int lammps_set_variable(void *handle, const char *name, const char *str)
|
||||
/** Set the value of a string-style variable.
|
||||
\verbatim embed:rst
|
||||
|
||||
.. versionadded:: TBD
|
||||
.. versionadded:: 7Feb2024
|
||||
|
||||
This function assigns a new value from the string str to the
|
||||
string-style variable *name*. This is a way to directly change the
|
||||
@ -2531,6 +2531,8 @@ int lammps_set_string_variable(void *handle, const char *name, const char *str)
|
||||
*
|
||||
\verbatim embed:rst
|
||||
|
||||
.. versionadded:: 7Feb2024
|
||||
|
||||
This function assigns a new value from the floating point number *value*
|
||||
to the internal-style variable *name*. This is a way to directly change
|
||||
the numerical value of such a LAMMPS variable that was previous defined
|
||||
|
||||
@ -25,18 +25,6 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef LMP_KOKKOS
|
||||
# ifdef FFT_KOKKOS_FFTW
|
||||
# undef FFT_KOKKOS_FFTW
|
||||
# define FFT_KOKKOS_FFTW3
|
||||
# endif
|
||||
# ifdef FFT_KOKKOS_FFTW_THREADS
|
||||
# if !defined(FFT_KOKKOS_FFTW3)
|
||||
# error "Must use -DFFT_KOKKOS_FFTW3 with -DFFT_KOKKOS_FFTW_THREADS"
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// set strings for library info output
|
||||
|
||||
#if defined(FFT_HEFFTE)
|
||||
@ -59,60 +47,6 @@
|
||||
#define LMP_FFT_LIB "KISS FFT"
|
||||
#endif
|
||||
|
||||
#ifdef LMP_KOKKOS
|
||||
|
||||
// with KOKKOS in CUDA or HIP mode we can only have
|
||||
// CUFFT/HIPFFT or KISS, thus undefine all other
|
||||
// FFTs here
|
||||
|
||||
#ifdef KOKKOS_ENABLE_CUDA
|
||||
# if defined(FFT_KOKKOS_FFTW)
|
||||
# undef FFT_KOKKOS_FFTW
|
||||
# endif
|
||||
# if defined(FFT_KOKKOS_FFTW3)
|
||||
# undef FFT_KOKKOS_FFTW3
|
||||
# endif
|
||||
# if defined(FFT_KOKKOS_MKL)
|
||||
# undef FFT_KOKKOS_MKL
|
||||
# endif
|
||||
# if !defined(FFT_KOKKOS_CUFFT) && !defined(FFT_KOKKOS_KISS)
|
||||
# define FFT_KOKKOS_KISS
|
||||
# endif
|
||||
#elif defined(KOKKOS_ENABLE_HIP)
|
||||
# if defined(FFT_KOKKOS_FFTW)
|
||||
# undef FFT_KOKKOS_FFTW
|
||||
# endif
|
||||
# if defined(FFT_KOKKOS_FFTW3)
|
||||
# undef FFT_KOKKOS_FFTW3
|
||||
# endif
|
||||
# if defined(FFT_KOKKOS_MKL)
|
||||
# undef FFT_KOKKOS_MKL
|
||||
# endif
|
||||
# if !defined(FFT_KOKKOS_HIPFFT) && !defined(FFT_KOKKOS_KISS)
|
||||
# define FFT_KOKKOS_KISS
|
||||
# endif
|
||||
#else
|
||||
# if defined(FFT_KOKKOS_CUFFT)
|
||||
# error "Must enable CUDA with KOKKOS to use -DFFT_KOKKOS_CUFFT"
|
||||
# endif
|
||||
# if defined(FFT_KOKKOS_HIPFFT)
|
||||
# error "Must enable HIP with KOKKOS to use -DFFT_KOKKOS_HIPFFT"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(FFT_KOKKOS_CUFFT)
|
||||
#define LMP_FFT_KOKKOS_LIB "cuFFT"
|
||||
#elif defined(FFT_KOKKOS_HIPFFT)
|
||||
#define LMP_FFT_KOKKOS_LIB "hipFFT"
|
||||
#elif defined(FFT_KOKKOS_FFTW3)
|
||||
#define LMP_FFT_KOKKOS_LIB "FFTW3"
|
||||
#elif defined(FFT_KOKKOS_MKL)
|
||||
#define LMP_FFT_KOKKOS_LIB "MKL FFT"
|
||||
#else
|
||||
#define LMP_FFT_KOKKOS_LIB "KISS FFT"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef FFT_SINGLE
|
||||
typedef float FFT_SCALAR;
|
||||
#define FFT_PRECISION 1
|
||||
|
||||
@ -1,2 +1 @@
|
||||
#define LAMMPS_VERSION "21 Nov 2023"
|
||||
#define LAMMPS_UPDATE "Development"
|
||||
#define LAMMPS_VERSION "7 Feb 2024"
|
||||
|
||||
Reference in New Issue
Block a user