Add patchy pair potential
Description
Clean and publish code to simulate patchy particles, including janus particles, based on that used in Phase behavior of Janus colloids determined by sedimentation equilibrium.
Using templates, the code can "modulate" any isotropic pair potential by an "envelope" that is created based on an angle dependence factor.
TODOS remaining
- [x] Add support for patches not aligned with particle orientation.
- [x] Add tests in a new file
- [x] Check casting, line 112 of
GeneralEnvelope.h - [x] Confirm a negative sign relating to dot products, line 78 of
JanusFactor.h - [x] Confirm math in
PairModulator.h, line 218 - [x] Add
type_shapesinaniso.py.
Motivation and context
How has this been tested?
I wrote expressions in Mathematica and had it do the math to check the values used in the potential. That notebook will be attached to this PR.
Old nomenclature lookup table
Use this to translate when comparing old and new versions of the code.
| Kind of Entity | in Old Plugin | in New Code |
|---|---|---|
| thing created from template | JanusDirectionalEvaluator | |
| Header file | EvaluatorPairIsoModulated.h | PairModulator.h |
| template typename | isoEval | pairEvaluator |
| variable | iParam (“isotropic”) | pairParam |
| variable | iP (for “isotropic parameter”), _iP | pairP, _pairP |
| template typename | dirEval | directionalEnvelope |
| variable ? | dParam | envelopeParam |
| variable | dP, _dP | envelP, _envelP |
| protected variable | iEv (“isotropic (pair) evaluator”) | pairEval |
| protected variable | dEv (“directional (pair) evaluator”) | envelEval |
| variable in PairModulator | isoModulator | envelope |
| Header file | DirectionalEvaluatorPairSphere.h | GeneralEnvelope.h |
| old header file with bugs | ||
| returned name | deps | genenv |
| template typename | AngularModulator | AngleDependence |
| Header file | ModulatorJanus(“Sphere” in code).h | JanusFactor.h |
| Header file | AllAnisoPairPotentialsExt.h | Linking done in “module.cc” and “module-md.cc” |
| exported name | PotentialPairJanusLJ | PotentialPairJanusLJ |
| AnisoPotentialPair | [already exists] | |
| Header file | EvaluatorPairAnisoModulated.h | ? |
Change log
Checklist:
- [x] I have reviewed the Contributor Guidelines.
- [x] I agree with the terms of the HOOMD-blue Contributor Agreement.
- [x] My name is on the list of contributors (
sphinx-doc/credits.rst) in the pull request source branch.
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.
This pull request has been automatically closed because it has not had recent activity.
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.
@cbkerr continues to work on this pull request.
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.
I'm still working on validating the potential
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.
Not stale.
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.
This pull request has been automatically closed because it has not had recent activity.