Skip to content

Modular LAMMPS input construction (section nodes + Jinja2 templates) - #208

Open
Sriram2631 wants to merge 37 commits into
mainfrom
lammps_modular
Open

Modular LAMMPS input construction (section nodes + Jinja2 templates)#208
Sriram2631 wants to merge 37 commits into
mainfrom
lammps_modular

Conversation

@Sriram2631

Copy link
Copy Markdown
Contributor

Summary

  • Adds atomistic/engine/lammps_input.py: independent, per-section LAMMPS input nodes (LammpsInit, LammpsPotential, LammpsDump, LammpsThermo, LammpsEnsemble, LammpsVelocity, LammpsMinimize, AssembleLammpsInput, SetLammpsInputString, WriteFile) rendered from Jinja2 templates, similar in spirit to the atomistics package.
  • AssembleLammpsInput renders templates/master.j2 (hard-coding the canonical section order init → potential → dump → thermo → velocity → calculation → run) and is chainable across multiple stages (e.g. NVT equilibration → NPT production) on the same LammpsIOBundle, handling unfix bookkeeping via calculation_fix_ids.
  • Sections are wired by name, not by graph connection order, so assembly order never depends on how nodes happen to be connected in the workflow.
  • Merged latest main into this branch to pick up the Vasp nodes, ML nodes, point-defect workflows, and ruff formatting cleanups landed there since this branch diverged; resolved a handful of straightforward conflicts (duplicate/unused imports in three Workflows/lammps_*_basic.py files, an additive validation check in ParseLammpsOutput, and took main's superset version of tests/integration/engine/test_lammps.py).

lgasparic and others added 30 commits June 24, 2026 13:12
…_coeff for metal-metal, Ne-Ne, H-M and H-Ne interaction in WaterPotential node (values taken from IonPotential node). Added node for FixAtoms, where Atom species, z-coordiate or atom indexes can be defined.
* Edit gitignore, add pipeline and env for testing, add sample test

* Fix CI workflow paths and smoke-test checks

* Update CI pipeline to run tests and checks on all files

* Configure Ruff, Black, and Mypy without pyproject

* Format black

* Fix CI paths for branch checks and tests

* Match executorlib CI behavior

* Restore assyst import cleanup

* Format black

* Use DEPENDABOT_WORKFLOW_TOKEN instead of GITHUB_TOKEN

* Temporarily remove ruff

* Add back ruff check

* Update pipeline.yml

* Update pipeline.yml

Temporarily disable ruff, mypy and project install

* Set python version to 3.12 and update smoke test to use unittest

* Format black

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: pyiron-runner <pyiron@mpie.de>
Edit default password type hint
…mestep is not being recorded as the value from the dataclass, presently the CreateLammpsInput node seems to use the default timestep.
Refactor RunLammpsCalculation to support threading and optional executor. Added input port for the executor and modified input port 'cores' to 'threads_per_core' in accordance with the keys in executorlib.
… static calculations. Merge multiple parsers into one
…files

- Add coverage configuration in .coveragerc
- Update pipeline.yml to include coverage reporting
- Create integration and unit test directories with initial test files for LAMMPS functionality
prabhath-c and others added 4 commits July 8, 2026 10:00
…e order and variable names. Uses jinja2 templates, similar to the atomistics package
# Conflicts:
#	Workflows/lammps_md_basic.py
#	Workflows/lammps_minimize_basic.py
#	Workflows/lammps_static_basic.py
#	atomistic/engine/lammps.py
#	tests/integration/engine/test_lammps.py
@codecov

codecov Bot commented Aug 19, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 42.95%. Comparing base (523329f) to head (bb18b15).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #208      +/-   ##
==========================================
+ Coverage   41.07%   42.95%   +1.87%     
==========================================
  Files          93       97       +4     
  Lines       11670    12058     +388     
==========================================
+ Hits         4793     5179     +386     
- Misses       6877     6879       +2     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sriram2631 and others added 3 commits August 19, 2026 11:29
… nodes

LammpsIOBundle never declared lammps_pending_fix_ids as a field, so
AssembleLammpsInput crashed with AttributeError on almost any real call
(any run/write_restart, not just fix-bearing calculations). Add it as a
comma-delimited string field, updating AssembleLammpsInput's join/split
accordingly.

Add unit tests (string-output checks for each section node plus
AssembleLammpsInput's single- and multi-stage assembly/unfix logic) and
an integration test that runs lmp_mpi end-to-end through a two-stage
minimize-then-MD pipeline, mirroring WORKFLOWS_new/modular_example_grouped.py.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants