Ionic-liquid dumps

A multi-type dump is not an ice frame. Keep CHILL and cages on one species with --type I. Use seams rdf for a partial gIJ(r) under the dump minimum image. Use seams density-z for a type-resolved \(\rho(z)\) in a slit.

Pick one type

--type / -t is unchanged. 0 guesses type 2 then type 1. Classification still filters the cloud to that type. A dump whose interesting species is not that guess needs the integer type of the species you want.

seams read FILE
seams chill-plus FILE --type 2
seams cages FILE --type 2

Unlike-type neighbours

nneigh::neighListPair(rcut, cloud, typeI, typeJ) builds I-J pairs. I == J is the like-type list (neighListO). Distances use gen::periodicDistSq, so a sheared dump box uses the same MIC as the ice neighbour lists.

Partial g(r)

seams rdf FILE --types 1,2 --cutoff 6.0
seams rdf FILE --types 1,2 --cutoff 6.0 --bins 60
seams rdf FILE --type 2 --cutoff 6.0

--types I,J selects the pair. The default is I = J = --type (a like-type g(r) of the guessed or requested species). --cutoff is rmax. --bins is optional (default rmax / 0.1).

Stdout is a comment header then r g count rows. The normalization volume is det(H) from the dump box, not the product of bound spans. Tilt xy xz yz is included when the dump carries it.

seams rdf is not an ice score. Do not run CHILL or cages on the ions.

Site kinds and ion vertices

LAMMPS type is not chemistry: type 1 is oxygen in water and a cation head in an IL. Hold a site::Table of type-to-kind (and optional atom-ID overrides). Table::of looks up the override first, then the type, else unspecified. indicesOf(polar) is the union of cationHead, anion, and explicit polar; indicesOf(apolar) is tail plus explicit apolar. site::ionCloud emits one vertex per molID that carries a cation head or anion: the unweighted COM of those tagged atoms, unwrapped with gen::relDist to the first atom of the group, with Point::type 1 (cation) or 2 (anion). A long-chain cation COM sits on the polar head, not halfway down the tail. Family is an input on the table; it is not inferred from types.

On that ion cloud, nneigh::nearestUnlike(cloud, 1, 2) is each ion’s nearest unlike neighbour and the MIC distance. nneigh::mutualNearestUnlike keeps the mutual edges. Those are contact pairs. They are not first-shell membership and not a coordination number.

Polar and apolar domains

seams domains FILE --site '1=cationHead,2=anion,3=tail' --subset polar
seams domains FILE --site '1=cationHead,2=anion,3=tail' --subset apolar

seams domains builds the mask from site::indicesOf and walks Stoddard’s clusters on that subset. It does not run CHILL or q_6. Neighbours are the dump-MIC cutoff list (--cutoff). Stdout is subset polar n N largest L P P_inf with P_inf = L / N. Missing --site exits 2. --family still only gates ice scores.

Confined layers

A slit or slab dump needs type-resolved \(\rho(z)\), not bulk CHILL.

seams density-z FILE
seams density-z FILE --type 1 --bins 80
seams density-z FILE --type 2 --axis z

--type 0 (default) histograms every atom. --type I keeps one LAMMPS type. --axis is the Cartesian coordinate (x, y, or z; default z). --bins is optional (default the bound span over \(0.1\)).

Stdout is # z rho then one row per bin. The slice volume is \(A_\perp \times dz\). \(A_\perp\) comes from dump H (ly*lz for x, lx*lz for y, lx*ly for z) using the recovered edge lengths, not bound spans. This is not a 2-periodic MIC. The integral of rho * A * dz is the number of selected atoms.

Confined IL work is this histogram plus the existing in-plane rdf2::rdf2Danalysis_AA sampler. Do not run CHILL on --family confinedIL.

Molten salt is seams rdf / cn plus ionCloud when the melt is multi-site. DES adds explicit donor H-bonds. Electrolyte is ion–O rdf/cn plus water H-bonds. Silica / BeF2 is rdf/cn plus Franzblau on the M–X graph and getq6 on the tetrahedral cation (steinhardtQlVoronoi otherwise).

Read the box

seams read FILE prints box Lx Ly Lz and, when the dump is triclinic (box.size() >= 6), the tilt xy xz yz. Bound spans are not edge lengths; see Sheared cells.

Family gate

--family names the material. The default is waterIce. seams chill, chill-plus, and cages refuse (exit 2) when --family is ionicLiquid, moltenSalt, des, electrolyte, confinedIL, confinedWater, or networkFormer. The message names the family. Unflagged seams chill stays the historical water path and is not an IL classifier.

seams rdf FILE --types 1,2 --cutoff 6.0
seams cn FILE --types 1,2 --cutoff 6.0
seams cn FILE --ions --site '1=cationHead,2=anion'
seams pairs FILE --site '1=cationHead,2=anion'
seams domains FILE --site '1=cationHead,2=anion,3=tail' --subset polar
seams density-z FILE --type 1 --bins 80
seams chill FILE --family ionicLiquid   # exits 2

Flags and the rest of the surface live on seams CLI. Formats live on data formats.