mcpbeat Sign in

Packmol Generate Mixture Agent Skill

> A tool for generating initial packed molecular configurations (XYZ format) from single-molecule structures by calculating box dimensions, writing input scripts, and executing Packmol. USE WHEN you need to randomly pack a specific number of molecules into a simulation box (defined by target density or fixed lengths) to create starting geometries for molecular dynamics or related computational chemistry workflows.

1k tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
118
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/jinzhezenggroup/computational-chemistry-agent-skills --skill packmol-generate-mixture

The instruction itself

7 sections, as written by the author

packmol-generate-mixture

Use Packmol to generate an initial packed configuration for a molecular mixture.

Agent responsibilities (do these in order)

  • Collect inputs (ask if missing; do not guess):
  • component structure files (XYZ), one per species (e.g. species1.xyz, species2.xyz)
  • molecule counts for each species (e.g. species1: 100, species2: 650)
  • either target density (g/cm^3) or a fixed cubic box length (Å)
  • Packmol tolerance (Å)
  • output location: output directory + output filename prefix (system name)
  • Validate inputs:
  • confirm XYZ files exist and are readable
  • confirm the first line (atom count) matches the number of coordinate lines
  • if density-based box estimation is requested: confirm each molecule’s elemental composition can be inferred from the XYZ symbols
  • Decide box size:
  • If user provides box_length_A: use it.
  • Else compute box_length_A from density (see formula below).
  • Create a working folder at the requested output location:
  • copy the component XYZ files into it (or reference them with absolute paths)
  • Write Packmol input ${system_name}.inp:
  • one structure ... end structure block per component
  • all components share the same inside box 0 0 0 L L L
  • Run Packmol locally:
  • Prefer: uvx packmol -i ${system_name}.inp
  • If you need to force the source package: uvx --from packmol packmol -i ${system_name}.inp
  • Report results:
  • exact output paths (inp, xyz, log)
  • final box length (Å) and the parameters used (counts, density or fixed L, tolerance)
  • basic sanity checks (total molecules, total atoms)
  • (Optional) Post-process for LAMMPS

If the user plans to run LAMMPS (especially ReaxFF), they often need a LAMMPS data file with correct box bounds.

  • If you convert XYZ -> LAMMPS data with dpdata, dpdata may write default box bounds (e.g., 0..100 Å).
  • Fix the bounds to match the Packmol cubic box length using lammps-md-tools from PyPI:
uvx --from lammps-md-tools lammps-fix-box \
    --in  input.data \
    --out output.boxfix.data \
    --L 60.690 \
    --wrap

This rewrites xlo/xhi, ylo/yhi, zlo/zhi to 0..L, zeroes tilt factors, and optionally wraps atoms into the box.

What to ask the user (plain language)

If the user didn’t specify them, ask at minimum:

  • Packing counts: how many molecules of each species? (e.g., species1=100, species2=650)
  • Box definition: do you want to estimate a cubic box from a target density (g/cm^3), or do you want to provide a fixed cubic box length L (Å)?
  • Tolerance: what Packmol tolerance (Å) should be used? (common starting point: 2.0 Å)
  • Output location: which directory should receive the results, and what system name / filename prefix should be used?

If the user says “use defaults”, propose defaults:

  • tolerance = 2.0 Å
  • output dir: a packed/ subfolder under the folder containing the input XYZ
  • (density) do not assume; ask for it, but you may suggest a starting value the user can confirm.

Example (replace with your own species/files):

system_name: mixture_pack
output_dir: /path/to/output/packed
# Choose ONE of the following:
density_g_cm3: 0.25
# box_length_A: 60.69

tolerance_A: 2.0
components:
  - name: species1
    structure_file: /path/to/species1.xyz
    number: 100
  - name: species2
    structure_file: /path/to/species2.xyz
    number: 650

Density → cubic box length (Å)

When density_g_cm3 is provided and box_length_A is not, estimate L from total mass:

  • infer each molecule’s elemental composition from its XYZ symbols
  • use standard atomic masses (g/mol)
  • compute total molar mass of the whole configuration (g/mol)
  • convert to mass per configuration: m_cfg = M_total / N_A (g)
  • compute volume in cm^3: V_cm3 = m_cfg / density_g_cm3
  • convert to Å^3: V_A3 = V_cm3 * 1e24
  • cubic length: L_A = V_A3 ** (1/3)

This is an initial packing estimate (geometry construction), not an equilibrated density.

Output contract

The run should produce (within output_dir):

  • ${system_name}.inp (Packmol input)
  • ${system_name}.xyz (packed XYZ output; name may include _packed suffix)
  • packmol.out (stdout log; capture with tee)

Limitations (be explicit)

  • Packed XYZ has coordinates only; no topology, no force-field types, no LAMMPS data.
  • Packing success ≠ physically valid structure; minimization/equilibration still required.

Other skills for the same job

different authors, same section of the catalogue
Doc Coauthoring
by anthropics
vendor ×10

Guide users through a structured workflow for co-authoring documentation. Use when user wants to write documentation, proposals, technical specs, decision docs, or similar structured content. This workflow helps users efficiently transfer context, refine content through iteration, and verify the doc works for readers. Trigger when user mentions writing docs, creating proposals, drafting specs, or similar documentation tasks.

4k tokens
Peer Review
by christophacham
×1

Structured manuscript/grant review with checklist-based evaluation. Use when writing formal peer reviews with specific criteria methodology assessment, statistical validity, reporting standards compliance (CONSORT/STROBE), and constructive feedback. Best for actual review writing, manuscript revision. For evaluating claims/evidence quality use scientific-critical-thinking; for quantitative scoring frameworks use scholar-evaluation.

13k tokens
Agile Product Owner
by ComeOnOliver
×1

Agile product ownership toolkit for Senior Product Owner including INVEST-compliant user story generation, sprint planning, backlog management, and velocity tracking. Use for story writing, sprint planning, stakeholder communication, and agile ceremonies.

9k tokens scripts
Claude Hook Writer
by ComeOnOliver
×1

Expert guidance for writing secure, reliable, and performant Claude Code hooks - validates design decisions, enforces best practices, and prevents common pitfalls. Use when creating, reviewing, or debugging Claude Code hooks.

12k tokens
Brainstorming
by ComeOnOliver
×1

Use when creating or developing anything, before writing code or implementation plans - refines rough ideas into fully-formed designs through structured Socratic questioning, alternative exploration, and incremental validation

5k tokens
Peer Review
by ComeOnOliver
×1

Structured manuscript/grant review with checklist-based evaluation. Use when writing formal peer reviews with specific criteria methodology assessment, statistical validity, reporting standards compliance (CONSORT/STROBE), and constructive feedback. Best for actual review writing, manuscript revision. For evaluating claims/evidence quality use scientific-critical-thinking; for quantitative scoring frameworks use scholar-evaluation.

17k tokens
Feature Forge
by Jeffallan

Conducts structured requirements workshops to produce feature specifications, user stories, EARS-format functional requirements, acceptance criteria, and implementation checklists. Use when defining new features, gathering requirements, or writing specifications. Invoke for feature definition, requirements gathering, user stories, EARS format specs, PRDs, acceptance criteria, or requirement matrices.

5k tokens
Markdown Drafts
by cloudflare
vendor

Use markdown formatting when drafting content intended for external systems (GitHub issues/PRs, Jira tickets, wiki pages, design docs, etc.) so formatting is preserved when the user copies it. Load this skill before producing any draft the user will paste elsewhere.

889 tokens

How to use it

Copy the folder

Take jinzhezenggroup/packmol-generate-mixture from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.

Install what it needs

The instructions reference uvx. Without those the skill loads but fails at the first command.