Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
87 commits
Select commit Hold shift + click to select a range
93f8e93
Add engine factory and unfinished files for the espresso and lammps e…
Apr 8, 2026
d98eec9
Add engine factory to init method to instantiate the wanted engine cl…
Apr 8, 2026
ec47aaa
Add particle_charge,particle_label,particle_position and particle_fix…
Apr 8, 2026
7985bc7
Use attributes inst.particle_label, inst.particle_charge, inst.partic…
Apr 8, 2026
731e325
Add tutorial
Apr 9, 2026
802cac6
Add modifications to decouple the follwoing methods from espresso:
Apr 16, 2026
aa70a25
modify base classes to base engine. Delete engine factory
Apr 16, 2026
dd74d6c
Add espresso engine methods
Apr 16, 2026
08b2453
Add Espresso protocol classes to simulate the structure of the espres…
Apr 16, 2026
4d5163d
Modify manager _get_particle_instances to just add position and fix r…
Apr 16, 2026
10fa793
Modify pydantic validation for particle instances enabling arbitrary …
Apr 16, 2026
764c716
Add modifications to pymbe tutorial according to the decoupling of es…
Apr 16, 2026
43fdd35
Adapt methods:
Apr 30, 2026
ae645c8
Modify method add_instances_to_engine in order that takes into accoun…
Apr 30, 2026
914f74c
Add LammpsEngineProtocol
Apr 30, 2026
7b903b3
Add LammpsSimulation still to be build the code related to LammpsSimu…
Apr 30, 2026
7c57df5
Add position and added to engine in pmb_type particle for _load_datab…
Apr 30, 2026
0fa66d4
Add into Manager class _update_instance method for pymbe type particl…
Apr 30, 2026
6c939ff
Add attributes added_to_engine for both particleinstances and bond in…
Apr 30, 2026
fd4572d
Adapt sample/branched_polyampholyte to changes related in decoupling …
Apr 30, 2026
c1d3ea8
Add modifications to tests.
Apr 30, 2026
e815cea
Add changes to peptide_cpH to account for the decouple of espresso
Apr 30, 2026
edaabda
various small revisions together with Jordi
Apr 30, 2026
16a8263
Add changes to decouple:
May 9, 2026
02559f5
Add pymbe warnings to send a deprecate warning for the use of certain…
May 9, 2026
267cbf8
Add deprecation warnings to the use of handy functions
May 9, 2026
557971b
Add to espresso engine:
May 9, 2026
7d8294b
Add methods that might be useful for any engine:
May 9, 2026
3a04e0a
Add changes in save and load database functions to load and save arra…
May 9, 2026
d3930fe
Add methods to manager:
May 9, 2026
322bf3b
Add changes:
May 9, 2026
6aab5d1
Add comment
May 9, 2026
685a26e
set the simulation engine in order to use the pmb method to determine…
May 9, 2026
5533abb
set simulation engine before executing the tests
May 9, 2026
fc6fa7d
Set simulation engine before executing the tests remove espresso syst…
May 9, 2026
282d215
Add simulation engine in both tests
May 9, 2026
919afbf
Add simulation engine before executing the handy functions as now the…
May 9, 2026
64811b7
Modify method to test column positions from the dataframe as it conta…
May 9, 2026
7df1750
Adapt sample file to current version decoupling espresso
May 11, 2026
2348bb4
Adapt current sample files towards decoupling espresso
May 11, 2026
44aea18
remove espresso_system as an input from methods migrated from handy f…
May 11, 2026
861f03b
Adapt test_handy_functions towards decoupling espresso
May 11, 2026
337cf47
Adapt changes to decoupling espresso from pymbe
May 11, 2026
c8d3f7d
Add modifications to adapt sample script to espresso decoupling
May 14, 2026
1a9b961
Add changes to pymbe_tutorial
May 14, 2026
e7c1445
Merge branch 'main' into CheckThisFeature
May 14, 2026
73404f9
Decouple create_angular_potential,generate_angles_for_entity,
May 14, 2026
850ec76
Add method add_angle, _create_angle_instance and _get_angle_instance.
May 14, 2026
4e28d5e
include in io.py _load_database and _save_database added_to_engine fo…
May 14, 2026
2212e89
Adapt angle tests to decouple it from espresso
May 14, 2026
39ac794
Add as pmb_type "angle" with attributes particle_id1,particle_id2 and…
May 14, 2026
1b03f67
Add added_to_engine in AngleInstance data class
May 14, 2026
61625c4
Adapt test hydrogel_builder_with_angles
May 14, 2026
72562ee
Adapt test_lattice_setup
May 14, 2026
27348fa
Adapt to decouple from espresso method test_io_instances
May 14, 2026
e273215
A commit
May 18, 2026
b1a99a9
Add box_l argument to _create_hydrogel_chain
jorch28 Jun 10, 2026
217d15a
Fix box_l size to match a diamond lattice of monomer chains that cont…
jorch28 Jun 22, 2026
3d63646
Modify test so that the expected result is expressed in terms of magn…
jorch28 Jun 22, 2026
698afb2
Calculate the resulting quantity of the chain length in reduced units…
jorch28 Jun 24, 2026
b5e4523
Delete unused imports.
jorch28 Jun 30, 2026
7316798
use np.prod(box_l) to replace box_l[0]*box_l[1]*box_l[2]
jorch28 Jun 30, 2026
2ca41b2
Add Copyright Notes
jorch28 Jun 30, 2026
06560f8
Clear pymbe_tutorial outputs
jorch28 Jun 30, 2026
858fe3e
Delete data.csv
jorch28 Jul 1, 2026
32289b7
Add DummyEngine with __getattr__ dunder method to raise RuntimeError
jorch28 Jul 1, 2026
0dc430a
Use __getattr__ to setup not ImplementedError for LammpsSimulationEngine
jorch28 Jul 1, 2026
8f18d26
remove unused variable espresso_local_system
jorch28 Jul 1, 2026
cface83
Add LammpsSimulationEngine that Raises a not ImplementedError
jorch28 Jul 1, 2026
807296f
Add a DummyEngine instantiated by default in pyMBE.
jorch28 Jul 1, 2026
d8453bc
added jordi to author list, update changelog
Jul 2, 2026
ea58a8d
Merge branch 'main' into CheckThisFeature
Jul 2, 2026
d20e6b8
Add facade method to lammps engine to comply with the interface contract
jorch28 Jul 2, 2026
bcbbaa4
Delete files from titration simulations
jorch28 Jul 2, 2026
0663dee
Modify EspressoSystemProtocol into version 4.2.2 and EspressoSystem5.…
jorch28 Jul 3, 2026
215a881
Update info from Authors.md
jorch28 Jul 3, 2026
fec7a8e
remove cells created to trial functions
jorch28 Jul 3, 2026
1d4f3ae
Add methods to LammpsProtocol to identify a future LammpsEngine
jorch28 Jul 10, 2026
bae5fd4
Add test to check that a particle instance is created as a np.array()…
jorch28 Jul 10, 2026
9c9cabf
Add tests related to simulation builder file
jorch28 Jul 10, 2026
40ad03c
LAMMPS testsuite
jngrad Jul 16, 2026
bf42843
address review coments, minor code cosmetic changes
Aug 13, 2026
017f07d
Remove duplicated functions
jngrad Aug 13, 2026
cab9817
remove all duplicated functions from handy functions, remove custom d…
Aug 13, 2026
f5effe7
fix bug in centering molecules, remove unnecesary test
Aug 13, 2026
bf9743c
fix issue in test
Aug 13, 2026
028a1c5
Cleanup
jngrad Aug 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions .github/workflows/testsuite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,16 @@ jobs:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
strategy:
matrix:
espresso:
- version: "4.2.2"
eessi_modules: ESPResSo/4.2.2-foss-2023b
software:
- label: "ESPResSo 4.2.2, LAMMPS 2024"
eessi_modules: ESPResSo/4.2.2-foss-2023b LAMMPS/29Aug2024-foss-2023b-kokkos
eessi_stack_version: "2023.06"
upload_artifact: true
- version: "5.0.1"
- label: "ESPResSo 5.0.1"
eessi_modules: ESPResSo/5.0.1-foss-2025a
eessi_stack_version: "2025.06"
upload_artifact: false
name: ubuntu - ESPResSo ${{ matrix.espresso.version }}
name: ubuntu - ${{ matrix.software.label }}
steps:
- name: Checkout repository
uses: actions/checkout@main
Expand All @@ -36,12 +36,12 @@ jobs:
- name: Setup EESSI
uses: eessi/github-action-eessi@v3
with:
eessi_stack_version: ${{ matrix.espresso.eessi_stack_version }}
eessi_stack_version: ${{ matrix.software.eessi_stack_version }}
- name: Install dependencies
uses: ./.github/actions/dependencies
with:
modules: |-
${{ matrix.espresso.eessi_modules }}
${{ matrix.software.eessi_modules }}
extra-python-packages: |-
pdoc==15.0.3
pylint==3.0.3
Expand All @@ -58,7 +58,7 @@ jobs:
make coverage_xml
shell: bash
- name: Upload artifact
if: ${{ matrix.espresso.upload_artifact }}
if: ${{ matrix.software.upload_artifact }}
uses: actions/upload-artifact@v7
with:
path: "./documentation"
Expand Down
3 changes: 2 additions & 1 deletion AUTHORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ The following people have contributed to pyMBE (Github username, Name, current a
- paobtorres, Paola B. Torres (Universidad Tecnológica Nacional, Argentina)
- pinedaps, Sebastian P. Pineda (University of Lund, Sweden)
- 1234somesh, Somesh Kurahatti (University of Stuttgart, Germany)
- jorch28, Jordi Sans-Duñó (Freelance, Figaró, Spain)

## Tier-1 Contributors
- TommyTraan, Duy Tommy Tran (Norwegian University of Science and Technology, Norway)
Expand All @@ -28,4 +29,4 @@ The following people have contributed to pyMBE (Github username, Name, current a
- Magdaléna Nejedlá (Charles University, Czech Republic)
- Raju Lunkad (University of Goettingen, Germany)
- Rita S. Dias (Norwegian University of Science and Technology, Norway)
- Sergio Madurga (University of Barcelona, Spain)
- Sergio Madurga (University of Barcelona, Spain)
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]

## Added
- Simulation-engine abstraction layer to decouple pyMBE molecular-building logic from simulation-engine-specific implementation details. (#151)
- Added `EspressoEngine` to delegate ESPResSo-specific operations, including reaction methods, setup utilities, and particle/bond/angle insertion. (#151)
- Added `add_instances_to_engine()` to transfer pyMBE particles, bonds, and angles to the selected simulation engine. (#151)
- Added protocol classes to validate supported simulation-engine interfaces, including ESPResSo-system compatibility checks. (#151)
- Added preliminary LAMMPS engine scaffolding to prepare pyMBE for future interoperability with additional simulation backends. (#151)
- Support to setup angular potentials with pyMBE. All flexible pyMBE templates now support angula potentials: hydrogels, molecules, peptides and residues (including residues with nested residues). (#150)
- Sample scripts and tests for the new functionality. (#150)
- Template and instance `Angle` to store information about angular potentials in the pyMBE database. (#150)
Expand All @@ -22,6 +27,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Added utility functions in `lib/handy_functions` to define residue and particle templates for aminoacids en peptides and residues: `define_protein_AA_particles`, `define_protein_AA_residues` and `define_peptide_AA_residues`. (#147)

## Changed
- Moved engine-dependent functionality from pyMBE-level methods and helper functions to the selected simulation engine. (#151)
- Create methods (`create_particle`, `create_residue`, `create_molecule`, `create_protein`, `create_hydrogel`) now raise a ValueError if no template is found for an input `name` instead than a warning. (#147)
- Refactored core modules to use the new database schema based on templates and instances for particles, residues, molecules, hydrogels, proteins and peptides. (#147)
- Particle states now are independent templates and are now disentangled from particle templates. (#147)
Expand All @@ -35,6 +41,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0


### Removed
- Deprecated legacy ESPResSo-specific helper functions in favor of the corresponding `pmb.simulation_engine.*` methods, including reaction execution, particle counting, system relaxation, Langevin dynamics setup, and electrostatic-interaction setup.
- Methods that interact directly with the pyMBE dataframe. These methods have been replaced by private methods that instead interact with the new canonical pyMBE database in (`pyMBE/storage/manager`). This includes the methods: `add_bond_in_df`, `add_value_to_df`, `assign_molecule_id`, `check_if_df_cell_has_a_value`, `check_if_name_is_defined_in_df`, `check_if_multiple_pmb_types_for_name`, `clean_df_row`, `clean_ids_in_df_row`, `copy_df_entry`, `create_variable_with_units`, `convert_columns_to_original_format`, `convert_str_to_bond_object`, `delete_entries_in_df`, `find_bond_key`, `setup_df`, `define_particle_entry_in_df`, custom `NumpyEncoder`. (#145,#147)
- Method `add_bonds_to_espresso` has been removed from the API. pyMBE now adds bonds internally to ESPResSo when molecule instances are created into ESPResSo. (#147)
- Tutorial `lattice_builder.ipynb` has been removed because its content is redundant with sample script `build_hydrogel.py`. (#147)
Expand Down
Loading
Loading