-
Notifications
You must be signed in to change notification settings - Fork 189
Proceedings 2021 ESPResSo meetings
Jean-Noël Grad edited this page Nov 23, 2021
·
5 revisions
- bonds are currently stored on single particles
- requires a reduction of ghost forces
- increases the complexity of checkpointing
- by storing bonds on all particles, there is no longer a need for reduction, and the forces could be calculated in parallel
- deleting particles is dangerous:
- risk of dangling pointers if the bonds the particle is involved in are not deleted first
- reaction methods work around that by changing the particle type
- proposed new interface:
system.bonds[harmonic].insert([p0, p1])
- ESPResSo relies on the collide-stream (push) scheme, other LB software use the stream-collide (pull) scheme
- both schemes should give the same results, but the scheme interacts with particle coupling and Lees-Edwards
- 92 registered participants
- unexpectedly low turnout for online hands-on sessions
- technical aspects of the school were not 100% ready on Monday (e.g. tutorial workstations)
- bonds are now immutable
- bond ids are still exposed
- removed a lot of custom communication code
- currently, bond information is still stored on a single particle, storing it on all bonded particles would help remove a MPI reduction and would allow parallel force calculation
- LB and EK share the lattice structure, this shared ownership needs to be visible from the python side, for example with:
lattice = Lattice(agrid=0.5)
lb = LBFluidWalberla(lattice=lattice, kT=1, seed=42)
ek = AdvectionDiffusion(lattice=lattice)
- adding or removing a boundary in the middle of a simulation is allowed, although it's not momentum-conserving, and the velocity of the fluid node needs to be manually set to e.g. the old slip velocity
- the code should issue a warning when the box is not fully periodic
- tutoring
- 5 tutors are needed
- 20 online participants (3 online groups of 7)
- 15 onsite participants (1 group)
- tutorials: LJ, raspberry electrophoresis, active matter, reactions, lbmpy
- Zoom or VS Code for tutorials
- VS Code installation can be tricky
- try running the tutorials in VS Code or PyCharm (for autocompletion) with remote control in Zoom (@Carl)
- waLBerla: thermalized LB works on CPU, pressure tensor still missing, currently working on boundary conditions and GPU support
- electrokinetics: currently works on CPU without reactions and boundary conditions
- Lees-Edwards: works for particles in the N-squared system, the LB part is currently being implemented in waLBerla
- doodle poll
- the LB boundary per node ticket (#4252) can be shared among multiple people
- #4052 LB: small details (Carl)
- #4052 polymer: Zimm model probably can't be simulated in an afternoon with long polymers (David?)
- #4052 Langevin: velocity autocorrelation is missing (Patrick)
- #4260 LJ (Mariano)
- #4321 reaction methods hidden particle type (Peter?)
- #4315 Verlet list (any C++ expert in the team)
- Lees-Edwards (Sebastian, Rudolf)
- Ekin, quaternion (Christoph)
- walberla Ekin (Alex)
- walberla LatticeModel (JN)
- libraries that could help with parallelization and memory layout: HPX, kokkos
- upload program on CECAM
- create a visualization tutorial for Paraview and VMD
- review the constant pH refactor and tutorial (@jngrad)
- the LJ and Langevin tutorials still need some work
- the current custom MPI infrastructure is difficult to maintain and has a lot of code (especially for managing ghost communication)
- OpenMP would benefit from shared memory architectures, but only on a single node
- kokkos could be used to abstract the communication logic and memory layout
- hybrid: offline for people who can safely travel to Germany, online for the other
- max 10 people in CIP pool and seminar room, depending on rules that will be released in September
- lectures: live if the speakers are present, otherwise possibility to record in advance
- error analysis: still waiting for a review on part 2
- LB tutorial: waiting for a review
- reaction tutorial: still a WIP
- active matter: for next coding day
- do a poll (@Rudolf Weeber)
- the custom MPI framework in ESPResSo makes maintenance of the script interface complex, especially regarding checkpointing
- OpenMP benefits from shared memory on NUMA architectures; simulations would be limited to up to 32 dual-threaded cores depending on hardware
- from a maintenance point of view, this change would be irreversible
- consult the community on the mailing list
- object containers (e.g. LB boundaries, shape-based constraints, in the future bonded interactions) are not restored on all MPI nodes when reloading a simulation from a checkpoint file (#4280)
- possibility: only store the system state (particles, interactions, random seeds, box_l, LB, observables in accumulators, total simulation time), then let the user re-run the script with this state as initial conditions
- for now, disable checkpointing for object containers (#4287)
-
system.part[:10]
returns a range of all particles whoseid
is less than 10, instead of returning the first 10 particles - this can lead to unexpected results when particles ids are not consecutive and starting from zero
- proposal: use
system.part.by_id(10)
and disable the[]-operator
- pair programming: mixed feelings but overall went reasonably well, helpful when one member of the team has less experience, VS code is useful once people are familiar with the Teams interface
- in 4.2-dev, ekin is tightly coupled to the LB GPU code, which prevents refactoring the ekin setters; the plan is to make the setters private to prevent users from accidentally modifying the ekin properties after ekin was initialized (@Christoph)
- waLBerla changes have side effects that need to be resolved (@Ingo, @Michael)
- the global variables communication code was completely rewritten
- LB tutorial split:
- short Langevin tutorial
- shorter LB tutorial (LB theory, Poiseuille flow)
- polymer+langevin tutorial (check ACF integration limits with the criterion explained in the error analysis tutorial part 2, change Rg, Rf, etc. plots to log-log scale)
- @David
- constant pH tutorial: work in progress
- constant pH refactoring: merged
- Wang-Landau: the class is tightly coupled to the other reaction methods, which slows down development of the other classes
- keeps track of big projects with high priority
- CECAM deadline: 18 July 2021
- possible topics: waLBerla, Shan-Chen, reaction-advection, ekin, multiphase/multiscale
- invite someone from the datascience community, like pandas?
- Ubuntu, Debian (#4185)
- with a PPA, one can download the .deb file directly from the browser
- depending on the maintenance costs, we could later consider providing ESPResSo in one of the Ubuntu repositories instead of a PPA
- create a stable build and a nighly build (e.g. for summer schools)
- ESPResSo does the collision first and the streaming second, waLBerla does it the other way around, this has led to instabilities until recently
- waLBerla can use the collide-push schema, but with degraded performance
- still missing in our walberla branch: stress tensor and electrokinetics
- integrate the ekin kernels in our walberla branch
- coordinate between Ingo, Michael, Alex, Rudolf
- #4251
- discuss plans for the Reaction code with the Peter group
- look into improving runtime of the constant pH tutorial
- the Wang-Landau algorithm is not used at the ICP
- ~10 ICP participants and ~5 external contributors
- consider pair programming for PR reviews or knowledge transfer with C++/python/git
- Error analysis tutorial (#4174) (@jngrad for the review, @Carl)
- Bond refactoring (#4225) (@jngrad for the PR draft, @Carl to finalize it)
- Gibbs Ensemble (#4243) (@Rudolf for the review)
- test with the time evolution of a LB cell force impulse
- LB GPU, lbmpy agree
- different result for LB CPU
- ESPResSo+waLBerla streams forces one time step later, could explain the particle coupling instability in the thermalized case
- run the test again (@Kai)
- ESPResSo only uses shear relaxation, other relaxations constants are zero
-
Lectures/talks asked from external speakers
- contact the speakers to confirm attendance (@Rudolf)
-
What tutorials do we offer (and hence have to have in good shape)
- LB tutorial needs to be split (ICP, @Alex S)
- active matter tutorial needs to be converted to a Jupyter notebook (ICP, @Christoph)
- constant pH tutorial requires extra features (@Peter, @David)
- blood cell tutorial needs to be developed externally
- blood cell feature isn't fully integrated in ESPResSo 4.2
- new website: https://espressomd.github.io/
- helps shield our webserver from side-effects of the CI/CD infrastructure
- doodle
- update CECAM page and espresso website: confirm workshop, but explain the decision for online/offline will be taken in July
- decide in July 1st if the school takes place online
- possibility of hybrid workshop, with live recording of lectures and invited talks
- contact invited speakers to confirm their presence and list them on the CECAM page
- the developer's guide is now available in the wiki
- relevant information from the website and user guide were moved to the wiki
- can be edited by anyone in the ESPResSo organization
- most PRs from the last coding day have already been merged
- the structure factor PR is still open, consider implementing a second structure factor based on an integral
- coupled fluid-particle simulation: velocity boundary condition for LB, hydrodynamic force on particles
- map ESPResSo virtual sites (VS) to waLBerla physics engine (PE) particles
- raspberries with many VS can be replaced by a single VS at the center of a moving sphere/ellipsoid/cylinder using PE
- ticket: #4015
- make a clear division between Hamiltonian and numerical solver
- consider replacing "integrator + thermostat" by "equation of motion"
- e.g. "velocity Verlet + Langevin thermostat" -> "Langevin Dynamics"
- at the moment, most thermostats in ESPResSo can only be coupled to a single integrator
- use propagator kernels
- separate translation propagation from rotation propagation
- e.g. NpT velocity Verlet for translation and Langevin Dynamics for rotation (NpT currently doesn't propagate rotation)
- allow Langevin Dynamics for most particles and LB for inertialess tracers (currently not possible)
- challenges:
- some are single particle functions (e.g. velocity Verlet), some are collective (Stokesian)
- most propagators can easily be split in translation and rotation, but Stokesian does both simultaneously
- VS and RATTLE need to be integrated
- organize an online coding day
- consider writing a self-contained units tutorial
- to avoid overburdening the LJ tutorial, link to the units tutorials (or the units section in the user guide)
- tutorial should link more often to user guide, and make clear what the expected prior knowledge is
- open question: enforcing dimensions in C++ and python to prevent e.g. adding a value with units of [length]/[time] to a value with units of [length]
- P3M: keep
- MMM1D: keep
- DDS: drop if the MPI-parallel version is fast enough
- Barnes-Hut: remove due to maintainability issues
merged:
- matrix vector operations with Boost (#4034)
- list of actors cannot be cleared (#4033)
- remove strcat_alloc() (#4020)
- throw if particles enter ELC gap region (#4009)
- save particle state in a dict (#3916)
- central chapter for thermostats and integrators (#3913)
- improve error message in number_of_particles_with_type() (#3908)
- rotational diffusion test fails with Brownian Dynamics (#3875)
partially fixed:
- make particle id less prominent in docs (#4029)
awaiting review:
- unite BROWNIAN_PER_PARTICLE and LANGEVIN_PER_PARTICLE (#4008)
started:
- waLBerla initialization with viscosities and relaxation rates (#4028)
- add orientation to cylindrical Observables (#4023)
- LB observables are undocumented and unintuitive, should be renamed and patched
- split LB tutorial into LB, polymer and Langevin simulation tutorials (#3939)
- LB: Poiseuille flow
- Langevin: monomer diffusion (use MSD and GK), show Maxwell distribution
- polymer: Flory theory, Rouse and Kirkwood-Zimm diffusion using Langevin resp. hydrodynamics
unassigned:
- doxygen documentation for Quaternion and Matrix (#4048)
- investigate switching integrator per particle (#4015)
- installation instructions for Windows Subsystem for Linux (#3094)
- latest NVIDIA driver update 450.102.04 blocked condor jobs and blocked CI
- the
nvidia/cuda:11.0-devel-ubuntu20.04
Docker image doesn't work properly anymore, the issue comes from thecompat
shared libraries