Modular LAMMPS input construction (section nodes + Jinja2 templates) - #208
Open
Sriram2631 wants to merge 37 commits into
Open
Modular LAMMPS input construction (section nodes + Jinja2 templates)#208Sriram2631 wants to merge 37 commits into
Sriram2631 wants to merge 37 commits into
Conversation
…_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.
…ng HEA structures
* 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
…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 Report✅ All modified and coverable lines are covered by tests. 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. 🚀 New features to boost your workflow:
|
… 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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
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 theatomisticspackage.AssembleLammpsInputrenderstemplates/master.j2(hard-coding the canonical section orderinit → potential → dump → thermo → velocity → calculation → run) and is chainable across multiple stages (e.g. NVT equilibration → NPT production) on the sameLammpsIOBundle, handlingunfixbookkeeping viacalculation_fix_ids.maininto 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 threeWorkflows/lammps_*_basic.pyfiles, an additive validation check inParseLammpsOutput, and took main's superset version oftests/integration/engine/test_lammps.py).