Skip to content

Commit

Permalink
Parallel processing works in principle
Browse files Browse the repository at this point in the history
  • Loading branch information
RandomDefaultUser committed Nov 19, 2024
1 parent ffe13c5 commit a0ff258
Show file tree
Hide file tree
Showing 5 changed files with 95 additions and 3 deletions.
11 changes: 8 additions & 3 deletions mala/descriptors/bispectrum.py
Original file line number Diff line number Diff line change
Expand Up @@ -171,11 +171,17 @@ def __calculate_lammps(self, outdir, **kwargs):
if self.parameters._configuration["mpi"]:
if self.parameters.use_z_splitting:
self.parameters.lammps_compute_file = os.path.join(
filepath, "in.bgridlocal.python"
filepath,
"in.bgridlocal_n{0}.python".format(
len(set(self.atoms.numbers))
),
)
else:
self.parameters.lammps_compute_file = os.path.join(
filepath, "in.bgridlocal_defaultproc.python"
filepath,
"in.bgridlocal_defaultproc_n{0}.python".format(
len(set(self.atoms.numbers))
),
)
else:
self.parameters.lammps_compute_file = os.path.join(
Expand All @@ -184,7 +190,6 @@ def __calculate_lammps(self, outdir, **kwargs):
len(set(self.atoms.numbers))
),
)

# Do the LAMMPS calculation and clean up.
lmp.file(self.parameters.lammps_compute_file)

Expand Down
41 changes: 41 additions & 0 deletions mala/descriptors/in.bgridlocal_defaultproc_n2.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
variable rfac0 equal 0.99363
variable rmin0 equal 0
variable wj1 equal 1
variable wj2 equal 1
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 radelem1 equal 0.5
variable radelem2 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} ${wj1local} ${wj2local} 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
File renamed without changes.
46 changes: 46 additions & 0 deletions mala/descriptors/in.bgridlocal_n2.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 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
variable rfac0 equal 0.99363
variable rmin0 equal 0
variable wj1 equal 1
variable wj2 equal 1
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 bzero equal 0
variable quadratic equal 0

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

thermo_modify norm yes

run 0

0 comments on commit a0ff258

Please sign in to comment.