QM/MM and boundary controls¶
Source access and public downloads
Repository paths identify files in the licensed engine source; they are not public downloads. For freely downloadable .oqp inputs and results, see Worked Examples.
Source: gateway project 17, engine 1.3.1, commit 05361a3cc99fbad3da557084e41e21e690e5a27e. This parser reference is pinned to source version 1.3.1; it does not expand the capabilities of an installed 1.3.0 engine.
Add qmmm(...) to a supported energy, md, namd or opt calculation. A bare grad with qmmm is rejected by the canonical parser. Structure, force field, QM selection and embedding belong here; nuclear nstep/dt controls belong in md(...). Legacy qmmm.istate is forbidden in canonical input. Single-point and dynamics backends have different restrictions.
Specify the partition and backend¶
hf/sto-3g md(nstep=1,dt=0.5,temperature=300,seed=1) qmmm(forcefield_files="formaldehyde.xml tip3p.xml",qm_atoms="0-3",cutoff=NoCutoff)
geom="formaldehyde_2water.pdb"
Download the PDB, solute XML and water XML into the input directory. OpenMM is required; this one-step ground-state MD example uses a whole-molecule QM region. Standalone QM/MM energy and gradient CLI routes are not validated by this example; the pinned energy route fails to initialize its ESPF correction data.
| Canonical control | Meaning and constraint |
|---|---|
qmmm(pdb_file="system.pdb",qm_atoms="0-8 12") |
Full-system PDB and zero-based QM indices/ranges, normalized to topology order. |
qmmm(forcefield_files="amber14-all.xml,amber14/tip3p.xml") |
Explicit OpenMM XML assets for dynamics/optimization. Empty raw default does not supply these files. |
qmmm(embedding=electrostatic) |
Default electrostatic embedding; mechanical omits QM density polarization. |
qmmm(frontier_scheme=rcd) |
Default covalent-boundary charge treatment; alternatives rc, z1, none depend on the backend. |
Add qmmm(...) to a supported energy, opt, md or namd driver. A bare
grad(...) qmmm(...) is rejected. Nuclear timestep/temperature belong in
md(...); active electronic state belongs in the physical driver, never
qmmm(istate=...). Single-point embedding and OpenMM ESPF dynamics consume
different settings. Periodic electrostatics require box/topology consistency;
see the backend restrictions before transferring a single-point deck to NAMD.
Exact-source keyword appendix¶
Scientific references¶
Source chain: canonical lowering (pyoqp/oqp/utils/oqp_input.py) → schema conversion (pyoqp/oqp/utils/input_parser.py) → calculation validation (pyoqp/oqp/utils/input_checker.py) → consumer entry point (pyoqp/oqp/library/qmmm_driver.py). Consumer source paths locate the relevant subsystem; they do not prove every listed key is read or executed.
qmmm¶
Detailed meaning, units and restrictions. These pages retain stable URLs and explain canonical controls; raw names identify schema storage, not sectioned input.
| Raw section.key | Canonical spelling / ownership | Converter | Raw schema default |
|---|---|---|---|
qmmm.forcefield |
qmmm(forcefield=VALUE) |
sarray |
amber14-all.xml,amber14/tip3p.xml |
qmmm.nonbondedmethod |
qmmm(nonbondedmethod=VALUE) |
str |
NoCutoff |
qmmm.constraints |
qmmm(constraints=VALUE) |
str |
None |
qmmm.rigidwater |
qmmm(rigidwater=VALUE) |
bool |
False |
qmmm.nsteps |
qmmm(nsteps=VALUE) |
int |
1 |
qmmm.n_steps |
qmmm(n_steps=VALUE) |
int |
1000 |
qmmm.timestep |
qmmm(timestep=VALUE) |
float |
1.0 |
qmmm.istate |
no canonical equivalent |
int |
0 |
qmmm.pdb_file |
qmmm(pdb_file=VALUE) |
str |
empty |
qmmm.forcefield_files |
qmmm(forcefield_files=VALUE) |
str |
empty |
qmmm.qm_atoms |
qmmm(qm_atoms=VALUE) |
str |
empty |
qmmm.cutoff |
qmmm(cutoff=VALUE) |
str |
NoCutoff |
qmmm.embedding |
qmmm(embedding=VALUE) |
str |
electrostatic |
qmmm.ewald_tol |
qmmm(ewald_tol=VALUE) |
str |
empty |
qmmm.lj_switch |
qmmm(lj_switch=VALUE) |
bool |
False |
qmmm.h_lj |
qmmm(h_lj=VALUE) |
bool |
False |
qmmm.mm_charge_width |
qmmm(mm_charge_width=VALUE) |
str |
empty |
qmmm.temperature |
qmmm(temperature=VALUE) |
float |
300.0 |
qmmm.ensemble |
qmmm(ensemble=VALUE) |
str |
nve |
qmmm.friction |
qmmm(friction=VALUE) |
float |
1.0 |
qmmm.pressure |
qmmm(pressure=VALUE) |
float |
1.0 |
qmmm.barostat_interval |
qmmm(barostat_interval=VALUE) |
int |
25 |
qmmm.trajectory_format |
qmmm(trajectory_format=VALUE) |
str |
pdb |
qmmm.trajectory_file |
qmmm(trajectory_file=VALUE) |
str |
empty |
qmmm.log_file |
qmmm(log_file=VALUE) |
str |
empty |
qmmm.report_interval |
qmmm(report_interval=VALUE) |
int |
1 |
qmmm.energy_file |
qmmm(energy_file=VALUE) |
str |
empty |
qmmm.qm_atoms_xyz |
qmmm(qm_atoms_xyz=VALUE) |
optional_string |
empty |
qmmm.qm_list |
qmmm(qm_list=VALUE) |
optional_string |
empty |
qmmm.frontier_scheme |
qmmm(frontier_scheme=VALUE) |
str |
rcd |
qmmm.active_atoms |
qmmm(active_atoms=VALUE) |
str |
empty |
qmmm.frozen_atoms |
qmmm(frozen_atoms=VALUE) |
str |
empty |
qmmm.active_radius |
qmmm(active_radius=VALUE) |
float |
0.0 |
qmmm.active_from_pdb |
qmmm(active_from_pdb=VALUE) |
bool |
False |
| ## flexible |
Detailed meaning, units and restrictions. These pages retain stable URLs and explain canonical controls; raw names identify schema storage, not sectioned input.
| Raw section.key | Canonical spelling / ownership | Converter | Raw schema default |
|---|---|---|---|
flexible.enabled |
flexible(enabled=VALUE) |
bool |
False |
flexible.alpha |
flexible(alpha=VALUE) |
float |
0.0 |
flexible.temperature |
flexible(temperature=VALUE) |
float |
0.0 |
flexible.center |
flexible(center=VALUE) |
string |
solute |
flexible.atoms |
flexible(atoms=VALUE) |
str |
empty |
flexible.point |
flexible(point=VALUE) |
farray |
0.0,0.0,0.0 |
flexible.anchor |
flexible(anchor=VALUE) |
str |
O |
flexible.resnames |
flexible(resnames=VALUE) |
sarray |
hoh,wat,sol,tip3,tip3p |
flexible.threshold |
flexible(threshold=VALUE) |
float |
0.01 |
flexible.scale |
flexible(scale=VALUE) |
float |
0.1 |
flexible.max_iterations |
flexible(max_iterations=VALUE) |
int |
20 |
flexible.keep_below_threshold |
flexible(keep_below_threshold=VALUE) |
bool |
False |
| ## droplet |
Detailed meaning, units and restrictions. These pages retain stable URLs and explain canonical controls; raw names identify schema storage, not sectioned input.
| Raw section.key | Canonical spelling / ownership | Converter | Raw schema default |
|---|---|---|---|
droplet.enabled |
droplet(enabled=VALUE) |
bool |
False |
droplet.center |
droplet(center=VALUE) |
farray |
0.0,0.0,0.0 |
droplet.radius |
droplet(radius=VALUE) |
float |
20.0 |
droplet.buffer |
droplet(buffer=VALUE) |
float |
1.0 |
droplet.force_constant |
droplet(force_constant=VALUE) |
float |
10.0 |
droplet.target |
droplet(target=VALUE) |
string |
water_com |
droplet.atoms |
droplet(atoms=VALUE) |
str |
empty |
droplet.water_resnames |
droplet(water_resnames=VALUE) |
sarray |
hoh,wat,sol,tip3,tip3p |
droplet.max_penetration |
droplet(max_penetration=VALUE) |
float |
10.0 |
| ## solute_com |
Detailed meaning, units and restrictions. These pages retain stable URLs and explain canonical controls; raw names identify schema storage, not sectioned input.
| Raw section.key | Canonical spelling / ownership | Converter | Raw schema default |
|---|---|---|---|
solute_com.enabled |
solute_com(enabled=VALUE) |
bool |
False |
solute_com.center |
solute_com(center=VALUE) |
farray |
0.0,0.0,0.0 |
solute_com.force_constant |
solute_com(force_constant=VALUE) |
float |
5.0 |
solute_com.atoms |
solute_com(atoms=VALUE) |
str |
empty |