mphowardlab / mphowardlab/azplugins
SLLOD Algorithm
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 27
- Forks
- 18
- Avg merge
- 1h 8m
- Merged PRs (30d)
- 1
Description
To implement the SLLOD algorithm for a homogeneous linear planar (Couette) shear flow, we need:
- a triclinic box deforming from -45 deg to +45 deg and flipping back in a periodic way
- each particle leaving the box in gradient direction at the bottom needs to get +shear_rate to its velocity, the ones leaving at the top need to get -shear_rate
- A thermostat which applies a gradient field consistent with box deformation and thermal fluctuations relative to the gradient
- And of course correct equations of motion.
Since these things are all tightly coupled together, only one class should be written: a SLLOD IntegrationMethodTwoStep. See TwoStepLangevinFlow for an example. The box can be updated to the current deformation based on the time step internally in the integrator, probably at the end of step 1, with a call to pdata->setGlobalBox(). When the integration of the equations of motion (i.e., update the positions) is done in step 1, the velocity wrapping for crossing pbcs can also be applied inside the integrator. If the box gets updated in step 1, then the forces will be computed before step 2 using the deformed box shape, correctly capturing the relative motion of the boxes.
The common convention in azplugins is to use z as gradient direction and x as flow direction (see RNEMD implementation).
The lammps implementation can be used as a model, see documentation and corresponding source code
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading hoomd/md/IntegrationMethodTwoStep.h and the linked TwoStepLangevinFlow example, then compare azplugins/ReversePerturbationFlow.h with the LAMMPS fix_nvt_sllod.cpp source and documentation. Done means a single SLLOD IntegrationMethodTwoStep implements the listed box deformation, boundary velocity updates, thermostat, and equations of motion using the stated shear convention.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- hpc
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100