EM - opls-ua return wrong atom types

I’m trying to generate OPLS-UA atom types for benzene, but it’s generating them incorrectly. I’ve already tried reinstalling EMC on two machines, but the same error persists. Can anyone help me?

parameters:

Pair Coeffs

pair_coeff 1 1 0.29400 3.73000 # c4,c4

Bond Coeffs

bond_coeff 1 268.00000 1.52900 # c4,c4

Angle Coeffs

angle_coeff 1 58.35000 112.70000 # c4,c4,c4

Dihedral Coeffs

dihedral_coeff 1 0.70000 0.35000 0.05000 0.40000 0.00000 # c4,c4,c4,c4

buil.emc file:

(* EMC: Script *)

(* Created by emc_setup.pl v4.1.5, March 30, 2024
on ter abr 08 17:38:35 -03 2025 *)

(* define variables *)

variables = {
seed → -1,
ntotal → 10000,
fshape → 1,
output → “build”,
field → “opls/2012/opls-ua”,
location1 → “~/EMC-v9.4.4/field/”,

nav → 0.6022141179,
temperature → 300,
radius → 5,
nrelax → 100,
weight_nonbond → 0.0001,
weight_bond → 0.0001,
weight_focus → 1,
cutoff → 9.5,
charge_cutoff → 9.5,
kappa → 4,

density1 → 0.1,
lprevious → 0,
lphase → 0,

f_molecule → 1,

chem_molecule → “c1ccccc1”
};

output = {
debug → false,
exit → true,
info → true,
warning → true
};

(* define force field *)

field = {
id → opls-ua,
mode → opls,
name → {location1+field+“.prm”, location1+field+“.top”},
compress → false
};

(* define groups *)

groups = {
group → {
id → molecule,
depth → 8,
chemistry → chem_molecule
}
};

field = {
mode → apply,
check → {
atomistic → true,
charge → true
},
debug → false
};

(* determine simulation sizing *)

variables = {

(* lengths *)

lg_molecule → nsites(molecule),
l_molecule → lg_molecule,
norm_molecule → 1,

(* masses *)

mg_molecule → mass(molecule),

m_molecule → mg_molecule,
norm_molecule → 1,

(* sizing *)

n_molecule → f_molecule,

(* system sizing *)

ntotal → 0,
mtotal → 0
};

(* define interactions *)

simulation = {
units → {
permittivity → 1,
seed → seed
},
types → {
coulomb → {
pair → {active → true, cutoff → charge_cutoff}
}
}
};

(* clusters phase 1 *)

clusters = {
progress → none,
cluster → {
id → molecule, system → main, group → molecule, n → n_molecule}
};

field = {
mode → apply,
check → {
atomistic → true,
charge → true
},
debug → false
};

(* build phase 1 *)

types = {
opls → {
pair → {active → true, mode → repulsive}
}
};

variables = {
nphase1 → ntotal()-ntotal,
mphase1 → mtotal()-mtotal,
vphase1 → mphase1/nav/density1,
lbox → (vphase1/fshape)^(1/3),
lphase1 → fshape*lbox,
lxx → lphase1,
lyy → lbox,
lzz → lbox,
lzy → 0,
lzx → 0,
lyx → 0,
lphase → lphase1,
ntotal → nphase1,
mtotal → mphase1,
vtotal → vphase1
};

build = {
system → {
id → main,
split → false,
geometry → {xx → lxx, yy → lyy, zz → lzz,
zy → lzy, zx → lzx, yx → lyx},
temperature → temperature,
flag → {charge → true, geometry → true, map → true, pbc → true}
},
select → {
progress → list,
frequency → 1,
name → “error”,
order → random,
cluster → {molecule},
relax → {ncycles → nrelax, radius → radius},
grow → {
method → energetic,
check → all,
nbonded → 20,
ntrials → 20,
niterations → 1000,
theta → 0,
weight → {
bonded → weight_bond, nonbonded → weight_nonbond,
focus → weight_focus}
}
}
};

force = {style → none, message → nkt};
force = {style → init, message → nkt};

(* focus *)

focus = {};

(* storage *)

put = {name → output, compress → true};

pdb = {name → output, compress → true, extend → false,
forcefield → opls, detect → false, hexadecimal → false,
unwrap → true, pbc → true, atom → index, residue → index,
segment → index, rank → false, vdw → false, cut → false,
fixed → true, rigid → true, connectivity → false,
parameters → false};

lammps = {name → output, mode → put, forcefield → opls,
parameters → true, types → false, unwrap → true,
charges → true, ewald → true};

Dear user,

I noticed, that the current version of EMC (modified on or after February 16, 2025) uses a stricter implementation of OPLS force fields. This version has been updated to accommodate the new implementation of OPLS (opls/2024), as stated in case https://matsci.org/t/missing-rules-error-for-simple-polymer-with-opls-aa/59154/3. I noticed, that opls/2012 did not abide by the stricter implementation. For you convenience, you can install the following

field_opls.tgz (60.3 KB)

by unpacking this in your ${EMC_ROOT} directory with

tar -vzxf field_opls.tgz

which installs the necessary force field files in their appropriated places. The latter command should give the following output:

x field/opls/2012/opls-aa.prm
x field/opls/2012/opls-ua.prm
x field/opls/2024/opls-aa.prm
x field/opls/2024/opls-ua.prm
x field/opls/2012/opls-aa.top
x field/opls/2012/opls-ua.top
x field/opls/2024/opls-aa.top
x field/opls/2024/opls-ua.top