Skip to content

Point defects in metals#194

Draft
prabhath-c wants to merge 50 commits into
mainfrom
point_defects_metals
Draft

Point defects in metals#194
prabhath-c wants to merge 50 commits into
mainfrom
point_defects_metals

Conversation

@prabhath-c

Copy link
Copy Markdown
Contributor

No description provided.

@prabhath-c prabhath-c marked this pull request as draft June 24, 2026 10:40
pyiron-runner and others added 27 commits June 24, 2026 10:41
…_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.

@JNmpi JNmpi left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While the individual node functions have good doc strings, the module would also benefit from a detailed description. Similarly, one or a few example workflows would be really helpful.

Sriram2631 and others added 15 commits July 1, 2026 10:31
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
@codecov

codecov Bot commented Jul 8, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 15.04%. Comparing base (124ccdb) to head (b3ca05d).

Additional details and impacted files
@@            Coverage Diff             @@
##            main     #194       +/-   ##
==========================================
+ Coverage   3.48%   15.04%   +11.56%     
==========================================
  Files         80       85        +5     
  Lines       6537     8519     +1982     
==========================================
+ Hits         228     1282     +1054     
- Misses      6309     7237      +928     

☔ 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.

prabhath-c and others added 7 commits July 8, 2026 12:14
…ect_type API

Collapses the 12 near-duplicate Create{Vacancy,Substitution,Interstitial}{FromIds,FromSeed,BatchFromIds,BatchFromSeed}
functions into 4 (CreateDefectFromIds, CreateDefectFromSeed, CreateDefectBatchFromIds,
CreateDefectBatchFromSeed) dispatched on a defect_type literal, since each family shared
the same parent-resolution/event-bookkeeping logic and only differed in the site-selection
and mutation step. Verified behaviorally identical to the original functions via diff
against the pre-merge implementation.

Also extracts shared helpers for the pairwise PBC distance calculations and the
Voronoi/Delaunay interstitial site-finding pipeline, dedupes the stoichiometry/
operations-short logic that was implemented twice (module-level vs. StructureContainer
staticmethod), and adds node wrappers for four previously-unexposed functions
(GetStoichiometry, ValidateStructure, ElementUids, FindStructureIndex).

Adds an example workflow (Workflows/point_defects_metals.py) demonstrating the merged
API: one independent defect of each type, plus chaining a second defect onto an
existing one via parent_defect_index=-1.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Wires the container_new defect-creation example (point_defects_metals.py)
into the GRACE-based energy/formation-energy pipeline from
point_def_energies.py: one vacancy, substitution, and interstitial defect
plus a chained defect, each run through a static energy calculation and
fed into the chemical-potential / formation-energy machinery in
atomistic/thermodynamics/defect_phases.py.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…tion test

tests/unit/structure/test_container_new.py: 37 fast, dependency-free tests
covering AddPristine, CreateDefectFromIds/FromSeed/Batch* for all three
defect types, chaining via parent_defect_index, error handling, the
newly-added node wrappers (GetStoichiometry, ValidateStructure, ElementUids,
FindStructureIndex), the pairwise-PBC-distance getters (checked against
ase.Atoms.get_distance), the Voronoi/Delaunay site finders, and a couple of
filter functions.

tests/integration/structure/test_point_defects_metals_lammps.py: builds a
small defect workflow (pristine + vacancy + interstitial, as in
Workflows/point_defects_metals.py) and computes real static energies via
LAMMPS (CreateLammpsStaticInput, as in Workflows/lammps_static_basic.py)
rather than the slower GRACE ML-potential path, then checks the resulting
vacancy/interstitial formation energies are physically sane.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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.

6 participants