Skip to content

Commit

Permalink
Three elements in principle work, but atomic density formula not for …
Browse files Browse the repository at this point in the history
…some reason
  • Loading branch information
RandomDefaultUser committed Dec 2, 2024
1 parent ace21a9 commit 907e254
Show file tree
Hide file tree
Showing 7 changed files with 207 additions and 4 deletions.
6 changes: 3 additions & 3 deletions mala/descriptors/bispectrum.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,10 +132,10 @@ def __calculate_lammps(self, outdir, **kwargs):
# general LAMMPS import.
from lammps import constants as lammps_constants

if len(set(self._atoms.numbers)) > 2:
if len(set(self._atoms.numbers)) > 3:
raise ValueError(
"MALA can only compute bispectrum descriptors for 1- or "
"2-element systems currently."
"MALA can only compute bispectrum descriptors up to "
"3-element systems currently."
)

use_fp64 = kwargs.get("use_fp64", False)
Expand Down
57 changes: 57 additions & 0 deletions mala/descriptors/in.bgrid_n3.python
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# Calculate bispectrum descriptors on a 3D grid

# pass in values ngridx, ngridy, ngridz, twojmax, rcutfac, atom_config_fname
# using command-line -var option

# Initialize simulation

units metal

read_data ${atom_config_fname}

mass * 1.0

# Needs to be defined for Kokkos
run_style verlet

# define grid compute and atom compute

group snapgroup type 1 2 3
variable rfac0 equal 0.99363
variable rmin0 equal 0

#variable radelem equal 0.5
variable radelem1 equal 0.5
variable radelem2 equal 0.5
variable radelem3 equal 0.5

variable bzero equal 0
variable quadratic equal 0

#variable snap_options string &
#"${rcutfac} ${rfac0} ${twojmax} ${radelem} ${wj} rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch}"

#compute bgrid all sna/grid grid ${ngridx} ${ngridy} ${ngridz} ${snap_options}

compute bgrid all sna/grid grid ${ngridx} ${ngridy} ${ngridz} ${rcutfac} ${rfac0} ${twojmax} ${radelem1} ${radelem2} ${radelem3} ${wj1} ${wj2} ${wj3} rmin0 ${rmin0} bzeroflag ${bzero} quadraticflag ${quadratic} switchflag ${switch}


# create dummy potential for neighbor list


# is this important? or does it just need to be big enough?
variable rcutneigh equal 2.0*${rcutfac}*${radelem1}
# for water
#variable rcutneigh equal 4.0*${rcutfac}*${radelem1}

pair_style zero ${rcutneigh}
pair_coeff * *

# define output

thermo_style custom step temp ke pe vol c_bgrid[1][1]
thermo_modify norm yes

# run

run 0
2 changes: 1 addition & 1 deletion mala/descriptors/in.bgridlocal_defaultproc_n2.python
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ mass * 1.0

# define grid compute and atom compute

group snapgroup type 1
group snapgroup type 1 2
variable rfac0 equal 0.99363
variable rmin0 equal 0
# variable wj1 equal 1
Expand Down
41 changes: 41 additions & 0 deletions mala/descriptors/in.bgridlocal_defaultproc_n3.python
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Calculate bispectrum descriptors on a 3D grid

# pass in values ngridx, ngridy, ngridz, twojmax, rcutfac, atom_config_fname
# using command-line -var option

# Initialize simulation

units metal

read_data ${atom_config_fname}

mass * 1.0

# define grid compute and atom compute

group snapgroup type 1 2 3
variable rfac0 equal 0.99363
variable rmin0 equal 0
variable wj1local equal ${wj1}-1.0e-15 # inject a bit of fuzz
variable wj2local equal ${wj2}-1.0e-15 # inject a bit of fuzz
variable wj3local equal ${wj2}-1.0e-15 # inject a bit of fuzz
variable radelem1 equal 0.5
variable radelem2 equal 0.5
variable radelem3 equal 0.5
variable bzero equal 0
variable quadratic equal 0

compute bgridlocal all sna/grid/local grid ${ngridx} ${ngridy} ${ngridz} ${rcutfac} ${rfac0} ${twojmax} ${radelem1} ${radelem2} ${radelem3} ${wj1local} ${wj2local} ${wj3local} rmin0 ${rmin0} bzeroflag ${bzero} quadraticflag ${quadratic} switchflag ${switch}

# is this important? or does it just need to be big enough?

variable rcutneigh equal 2.0*${rcutfac}*${radelem1}

pair_style zero ${rcutneigh}
pair_coeff * *

# define output

thermo_modify norm yes

run 0
46 changes: 46 additions & 0 deletions mala/descriptors/in.bgridlocal_n3.python
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Calculate bispectrum descriptors on a 3D grid

# pass in values ngridx, ngridy, ngridz, twojmax, rcutfac, atom_config_fname
# using command-line -var option

# set up processor grid to match QE
${lammps_procs}

# Initialize simulation

units metal

read_data ${atom_config_fname}

mass * 1.0

# is this important? or does it just need to be big enough?

variable radelem1 equal 0.5
variable radelem2 equal 0.5
variable radelem3 equal 0.5
variable rcutneigh equal 2.0*${rcutfac}*${radelem1}

pair_style zero ${rcutneigh}
pair_coeff * *

# set up plane cutoff values to evenly distribute grid points

${zbal}

# define grid compute and atom compute

group snapgroup type 1 2 3
variable rfac0 equal 0.99363
variable rmin0 equal 0
variable wj1local equal ${wj1}-1.0e-15 # inject a bit of fuzz
variable wj2local equal ${wj2}-1.0e-15 # inject a bit of fuzz
variable wj3local equal ${wj2}-1.0e-15 # inject a bit of fuzz
variable bzero equal 0
variable quadratic equal 0

compute bgridlocal all sna/grid/local grid ${ngridx} ${ngridy} ${ngridz} ${rcutfac} ${rfac0} ${twojmax} ${radelem1} ${radelem2} ${radelem3} ${wj1local} ${wj2local} ${wj3local} rmin0 ${rmin0} bzeroflag ${bzero} quadraticflag ${quadratic} switchflag ${switch}

thermo_modify norm yes

run 0
26 changes: 26 additions & 0 deletions mala/descriptors/in.ggrid_defaultproc_n3.python
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Calculate Gaussian atomic density descriptors on a 3D grid

# pass in values ngridx, ngridy, ngridz, sigma, atom_config_fname
# using command-line -var option

# Initialize simulation

units metal
read_data ${atom_config_fname}
mass * 1.0


# is this important? or does it just need to be big enough?
variable radelem1 equal 0.5
variable radelem2 equal 0.5
variable radelem3 equal 0.5
variable rcutneigh equal 2.0*${rcutfac}*${radelem1}

pair_style zero ${rcutneigh}
pair_coeff * *

compute ggrid all gaussian/grid/local grid ${ngridx} ${ngridy} ${ngridz} ${rcutfac} ${radelem1} ${radelem2} ${radelem3} ${sigma1} ${sigma2} ${sigma3}

thermo_modify norm yes

run 0
33 changes: 33 additions & 0 deletions mala/descriptors/in.ggrid_n3.python
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Calculate Gaussian atomic density descriptors on a 3D grid

# pass in values ngridx, ngridy, ngridz, sigma, atom_config_fname
# using command-line -var option

# set up processor grid to match QE
${lammps_procs}

# Initialize simulation

units metal
read_data ${atom_config_fname}
mass * 1.0


# is this important? or does it just need to be big enough?
variable radelem1 equal 0.5
variable radelem2 equal 0.5
variable radelem3 equal 0.5
variable rcutneigh equal 2.0*${rcutfac}*${radelem}

pair_style zero ${rcutneigh}
pair_coeff * *

# set up plane cutoff values to evenly distribute grid points
${zbal}


compute ggrid all gaussian/grid/local grid ${ngridx} ${ngridy} ${ngridz} ${rcutfac} ${radelem1} ${radelem2} ${radelem3} ${sigma1} ${sigma2} ${sigma3}

thermo_modify norm yes

run 0

0 comments on commit 907e254

Please sign in to comment.