Solvation

The #solv(...) command adds solvent treatment before the requested MAPLE task. Current MAPLE exposes two separate modes: an experimental implicit GB-polar/QEq energy correction, or a coordinate-building explicit solvent cluster. Choose one mode per input; implicit and explicit solvent options are intentionally mutually exclusive.

Current scope

Implicit solvation is experimental, energy-only, and currently valid only for #sp. Explicit solvent creates a non-periodic coordinate-only cluster around one input structure; it does not create a periodic box, cell metadata, or automatic frozen outer-shell constraints.

Overview

Mode Use Required syntax Task support
Implicit GB-polar/QEq Single-point energy correction from geometry-dependent QEq charges and a heuristic GB-polar model #solv(method=gbsa, implicit=water, experimental=true) #sp only
Explicit solvent cluster Build solvent coordinates from a pure-solvent PDB template around the solute #solv(explicit=water) Pre-processing step before the selected task

Do not combine implicit=<solvent> and explicit=<solvent> in the same #solv line. Explicit-solvent geometry options such as radius, shape, density, number, solvent_pdb, and clash settings are rejected for implicit jobs.

Implicit GB-polar/QEq

Implicit solvation uses method=gbsa with an implicit solvent name. MAPLE computes QEq charges for the current geometry and adds an experimental GB-polar energy term. Because the QEq charges are geometry-dependent and not variationally coupled to the solvent expression, solvent forces, Hessians, stress, and HVPs are disabled.

#model = uma
#solv(method=gbsa, implicit=water, experimental=true)
#sp

The experimental=true flag is required so the input states that this is an energy-only experimental correction. Use it for single-point energy comparisons, not optimization, MD, transition-state searches, scans that require solvent forces, or frequency calculations.

Implicit solvent names

  • acetone
  • acetonitrile
  • benzene
  • cs2
  • dichloromethane
  • dmf
  • dmso
  • ether
  • methanol
  • nhexan
  • thf
  • toluene
  • trichloromethane
  • water

Explicit solvent clusters

Explicit solvation reads a pure-solvent PDB template, tiles it in space, crops whole solvent molecules to the requested cluster geometry, removes solute-solvent and solvent-solvent clashes, and appends the accepted solvent coordinates to the solute. The resulting ASE atoms are marked as a non-periodic coordinate-only cluster with pbc=False and a zero cell; MAPLE also writes solvated XYZ/PDB sidecars without a periodic cell record.

#model = uma
#solv(explicit=water, radius=12.0)
#opt(method=lbfgs)

Explicit solvation currently supports exactly one input structure. Remove #pbc for explicit-solvent jobs. If you need to hold solute atoms or selected solvent atoms fixed during an optimization, use the normal constraint commands after the coordinate block; the solvent builder itself only generates coordinates.

For documentation previews, use the generated *_solvated.xyz sidecars directly. The figures below come from the source examples in examples/opt/exp-solv/ before any optimization frames are used.

Explicit water sphere cluster from solv1_solvated.xyz
Example 1 — water sphere cluster from solv1_solvated.xyz.
Explicit toluene sphere cluster from solv2_solvated.xyz
Example 2 — toluene sphere cluster from solv2_solvated.xyz.
Explicit water cube cluster generated from example 1 solute
Example 1 cube variant — same solute, shape=cube, box_size=20.0, default water density.

Bundled explicit-solvent templates

The current MAPLE source ships the following explicit-solvent PDB template stems. Use exactly the filename stem as the explicit= value:

  • 2methyl2propanol
  • 2methylpyridine
  • 4methyl2pentanone
  • aceticacid
  • acetone
  • acetonitrile
  • acetophenone
  • aniline
  • anisole
  • benzene
  • benzonitrile
  • benzylalcohol
  • bromobenzene
  • bromoethane
  • bromoform
  • bromooctane
  • butanol
  • butanone
  • butylacetate
  • butylbenzene
  • carbontet
  • chlorobenzene
  • chloroform
  • chlorohexane
  • cyclohexane
  • cyclohexanone
  • decalin
  • decane
  • decanol
  • dibromoethane
  • dibutylether
  • dichloroethane
  • diethylamine
  • diisopropylether
  • dimethylacetamide
  • dimethylformamide
  • dimethylpyridine
  • dimethylsulfoxide
  • dodecane
  • ethanol
  • ether
  • ethoxybenzene
  • ethylacetate
  • ethylbenzene
  • fluorobenzene
  • fluoroctane
  • heptane
  • heptanol
  • hexadecane
  • hexadecyliodide
  • hexane
  • hexanol
  • iodobenzene
  • isobutanol
  • isooctane
  • isopropanol
  • isopropylbenzene
  • isopropyltoluene
  • mcresol
  • mesitylene
  • methanol
  • methoxyethanol
  • methylenechloride
  • methylformamide
  • nitrobenzene
  • nitroethane
  • nitromethane
  • nonane
  • nonanol
  • octane
  • octanol
  • odichlorobenzene
  • old_aceticacid
  • old_tributylphosphate
  • onitrotoluene
  • pentadecane
  • pentane
  • pentanol
  • perfluorobenzene
  • phenylether
  • propanol
  • pyridine
  • secbutanol
  • secbutylbenzene
  • tbutylbenzene
  • tetrachloroethene
  • tetrahydrofuran
  • tetrahydrothiophenedioxide
  • tetralin
  • toluene
  • tributylphosphate
  • triethylamine
  • trimethylbenzene
  • undecane
  • water
  • xylene

Two legacy duplicate template stems, old_aceticacid and old_tributylphosphate, are bundled files too; prefer aceticacid and tributylphosphate for new inputs.

Templates with default density values

MAPLE has built-in density values for these explicit-solvent names when neither density= nor number= is supplied:

  • aceticacid
  • acetone
  • acetonitrile
  • aniline
  • benzene
  • butanol
  • carbontet
  • chloroform
  • cyclohexane
  • dichloroethane
  • dimethylacetamide
  • dimethylformamide
  • dimethylsulfoxide
  • ethanol
  • ether
  • ethylacetate
  • heptane
  • hexane
  • isopropanol
  • methanol
  • methylenechloride
  • nitrobenzene
  • nitromethane
  • octane
  • propanol
  • pyridine
  • tetrahydrofuran
  • toluene
  • water
  • xylene

For bundled templates, use the template filename stem as the explicit= value. For example, the bundled water.pdb template is selected with explicit=water. If a solvent has no tabulated density, provide density=<g/mL> or number=<int>.

Custom solvent PDB templates

Use solvent_pdb=path/to/template.pdb to provide a custom solvent template. In this mode, solvent_pdb selects the actual PDB file, while explicit=<name> declares the solvent identity represented by that file. MAPLE does not infer the solvent name from the custom PDB filename. Relative solvent_pdb paths are resolved from the input file directory.

For example, the following input reads boxes/water_bulk.pdb because that is the solvent_pdb path. The explicit=water part means “treat this template as water” for the default density lookup, output labels, and water-specific template checks; it is not derived from the filename water_bulk.pdb.

#model = uma
#solv(explicit=water, solvent_pdb=boxes/water_bulk.pdb, density=0.997, radius=14.0)
#opt(method=lbfgs)

A custom template must be a pure-solvent bulk PDB, group one connected solvent molecule per residue, use the same molecular formula for every residue, and contain an orthorhombic CRYST1 record. For explicit=water, each residue must be one H2O molecule. MAPLE unwraps molecules that cross an orthorhombic box boundary before validating connectivity, so GROMACS/OpenMM-style water boxes are acceptable when residue grouping remains correct. If the density implied by CRYST1 does not match MAPLE's default density for the declared explicit=<name>, MAPLE refuses to infer the target density; add an explicit density= matching the template, or use number= to bypass density inference and request an explicit molecule-count target.

Parameters

Mode selection

Parameter Mode Meaning
method=gbsa Implicit Required when using implicit=<solvent>
implicit=<solvent> Implicit Solvent name for the experimental GB-polar/QEq energy correction
experimental=true Implicit Required acknowledgement that implicit solvation is experimental and energy-only
explicit=<solvent> Explicit Bundled solvent template name, or density label when used with solvent_pdb
solvent=<name> Compatibility alias Interpreted as implicit when method=gbsa is present, otherwise as explicit; prefer implicit= or explicit=

Explicit cluster geometry and density

Parameter Default Description
shape sphere sphere crops by molecular-center radius; cube crops by molecular-center box extent
radius 10.0 Sphere radius in Angstroms; valid only with shape=sphere
box_size required for cube Cube side length in Angstroms; valid only with shape=cube
density tabulated if available Mass density in g/mL used to compute the target solvent molecule count
density_scale 1.0 Multiplier applied to the density-derived target count
number unset Explicit target solvent molecule count; overrides density-based targeting
solvent_pdb bundled template Path to a homogeneous pure-solvent bulk PDB template; relative paths are resolved from the input file directory

Explicit clash handling and output controls

Parameter Default Description
clash_method vdw vdw removes atoms closer than scaled van der Waals radii; distance uses a fixed distance tolerance
vdw_scale 0.57 Scale factor for vdW clash thresholds when clash_method=vdw
vdw_fallback_radius 1.05 Fallback vdW radius in Angstroms for elements without a tabulated radius
tolerance 2.0 Fixed-distance clash cutoff in Angstroms when clash_method=distance
clash_cutoff alias for tolerance Compatibility name that selects clash_method=distance
randomize true Randomize template phase and rigid rotation before tiling
seed 0 Reproducible random seed; use seed=-1 for non-reproducible sampling
write_shell false Write additional solute-centered shell sidecars when set to true
shell_cutoff required with write_shell=true Keep whole solvent molecules whose closest atom is within this distance of the solute in the shell output

Examples

Energy-only implicit water single point

#model = uma
#device = gpu0
#solv(method=gbsa, implicit=water, experimental=true)
#sp

0 1
C    0.000000    0.000000    0.000000
C    1.501000    0.000000    0.000000
O    2.098000    1.060000    0.000000
H   -0.392000    1.011000    0.000000
H   -0.392000   -0.506000    0.875000
H   -0.392000   -0.506000   -0.875000
H    1.960000   -1.003000    0.000000

Explicit water cluster for optimization

#model = uma
#device = gpu0
#solv(explicit=water, radius=10.0, seed=0)
#opt(method=lbfgs, level=medium)

0 1
C    0.000000    0.000000    0.000000
C    1.501000    0.000000    0.000000
O    2.098000    1.060000    0.000000
H   -0.392000    1.011000    0.000000
H   -0.392000   -0.506000    0.875000
H   -0.392000   -0.506000   -0.875000
H    1.960000   -1.003000    0.000000

Cube-shaped explicit cluster with a target count

#model = uma
#solv(explicit=water, shape=cube, box_size=20.0, number=120, clash_method=vdw)
#sp

XYZ /path/to/solute.xyz

Write a smaller analysis shell sidecar

#model = uma
#solv(explicit=water, radius=14.0, write_shell=true, shell_cutoff=5.0)
#sp

XYZ /path/to/solute.xyz

The main solvated coordinate sidecars contain the generated full cluster. With write_shell=true, MAPLE also writes smaller _cluster.xyz and _cluster.pdb files containing the solute plus whole solvent molecules within shell_cutoff.

Limitations and best practices

  • Pick one solvent mode: use implicit GB-polar/QEq or explicit solvent coordinates, not both in one job.
  • Treat implicit as energy-only: run it with #sp and experimental=true; do not use it for jobs that need solvent forces or Hessians.
  • Keep explicit clusters non-periodic: remove #pbc; MAPLE does not write cell metadata for explicit clusters.
  • Control density deliberately: use the default density table for common solvents, or specify density= / number= for custom templates and unusual solvent names.
  • Prefer vdW clash filtering: the default clash_method=vdw is usually safer than a single fixed distance across all elements; use clash_method=distance only when you intentionally want a fixed cutoff.
  • Validate custom templates: the template should be homogeneous pure solvent, have one connected molecule per residue, and include an orthorhombic CRYST1 box consistent with the density you request or the explicit number= target.
  • Expect finite clusters: small unconstrained solvent clusters may move during optimization. Increase the radius/count, write an analysis shell, or add ordinary MAPLE constraints when a specific region must remain fixed.