Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move the walberla bridge to a self-contained git repo #4723

Open
RudolfWeeber opened this issue May 9, 2023 · 4 comments
Open

Move the walberla bridge to a self-contained git repo #4723

RudolfWeeber opened this issue May 9, 2023 · 4 comments
Labels
waLBerla Issues regarding waLBerla integration

Comments

@RudolfWeeber
Copy link
Contributor

No description provided.

@RudolfWeeber
Copy link
Contributor Author

Make the walberla_bridge (located in src/walberla_bridge) an independent library, i.e.,

  • it should live in its own git repo
  • and have its own CMake, such that it can be added to other cmae project, and that it knows how to run its own tests

The goal is that the library can be used by other codes than Espresso, e.g., our parterns in MultiXScale.

@jngrad jngrad changed the title Walberla: Move the walberla bridge to a self-contained git repo May 9, 2023
@jngrad jngrad added the waLBerla Issues regarding waLBerla integration label May 9, 2023
@jngrad
Copy link
Member

jngrad commented May 10, 2023

Requirements:

  • Provide a copy of cmake/unit_test.cmake
  • Replace Utils::Vector3d by a class with similar functionality
  • Remove Boost dependency (see walberla/walberla#190)
    • Replace boost::optional by std::optional
    • Replace boost::variant by std::variant
    • Replace boost::multi_array by equivalent code
    • unit tests can probably still use Boost

@RudolfWeeber
Copy link
Contributor Author

The first step is to

  • copy the content of src/walberla_bridge into a new git repo outide espresso
    walbela_bridge
  • src/utils/include/utils/vector.hpp from Esprsso will also be needed for Vector3d and friends
  • Modify the CMakeList.txt sot it can be compiled independently
  • This involves copying in the combiler definitoins and walberla importing code form ESpresso's CMakeList.txt. Currently Espresso imports Walberla as a cake subproject. This will have to be done in the smae way for the walberla bridge repo.

Once the Walberla bridge can be built in its own repo independently of ESPRso, we'll sort out using that new repo from Espresso.

@jngrad
Copy link
Member

jngrad commented Aug 15, 2023

A proof-of-concept can be found in jonscheunemann/walberla_bridge. Thanks @jonscheunemann and Marc Sauter!

Once we're done with the major LB/EK rewrite, we'll be able to use that work to create the bridge as part of the ESPResSo organization. I'll take care of resolving any remaining CMake subtleties with the FetchContent method.

kodiakhq bot added a commit that referenced this issue Aug 22, 2023
Description of changes:
- API changes:
   - the `espressomd.System` class now has a new member `lb`
   - the `espressomd.System` class member `ekreactions` is now the `reaction` attribute of `system.ekcontainer`
   - the `espressomd.System` class no longer has an `actors` member
   - further API changes will take place in an upcoming PR
- remove Boost dependency from LB/EK sources
   - follow-up to [**Remove remaining boost components** walberla/walberla#605](https://i10git.cs.fau.de/walberla/walberla/-/merge_requests/605)
   - partial fix for #4723 (comment)
   - unit tests from the walberla bridge still depend on `Boost::unit_test_framework`
- fix regressions in EK
   - EK now throws an error when the box_l or node_grid changes, when the MD time step and EK tau disagree, when the box size is not an integer multiple of agrid
- rewrite the LB and EK code in the core from scratch to enforce SOLID principles
   - folder `src/grid_based_algorithms` was split into `src/core/lb` and `src/core/ek`
   - LB and EK global variables (`lattice_switch`, `ek_container`, `ek_reactions`, `lb_walberla_instance`,
   `lb_walberla_params_instance`) were removed; these objects are now members of the `System` class
    (partial fix for #2628)
@RudolfWeeber RudolfWeeber added this to the ESPResSo 4.3.0 milestone Jul 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
waLBerla Issues regarding waLBerla integration
Projects
None yet
Development

No branches or pull requests

2 participants