qmcpack
qmcpack copied to clipboard
How to resurrect true 2D capability?
Problem
OHMMS_DIM is planned for obsolescence. With its removal, all code snippets for true 2D calculation will be history.
Proposed Solution Enable true 2D calculation via xml input.
To-do List:
- [x] 2D potential energy (#3852)
- [ ] 2D Jastrow wavefunction (kinetic energy)
- [x] 2D determinant wavefunction (#4084)
- [ ] 2D VMC driver
- [ ] 2D DMC driver
Please take a look at #3867 and think generally about how the dimensionality might be hidden/abstracted. #3867 will eventually get spin-orbit and non-spin orbit to use the same batched drivers. (The old cpu serial drivers are also heading for retirement since they will never run on GPUs efficiently). Realistically I don't think we can have multiple drivers for each dimensionality, at least the way we have done them historically - the humans simply don't scale. If you can come up with a design that is compatible with a generic driver you will also get wavefunction optimization, reptation etc. for "free", and 1D might already be nearly supported. For sure other people will have ideas on this.
@prckent from a preliminary look, I don't think the MCCoords abstraction poses any difficulty at all. For true 2D, one can:
- fill the z-component of all vectors in
walker_deltas.positionswith zeros. - check that the z-component of all vectors in
driftsare zero.