mphowardlab / azplugins

A HOOMD-blue component for soft matter simulations.
BSD 3-Clause "New" or "Revised" License
21 stars 13 forks source link

Implicit droplet evaporator #17

Closed mphoward closed 4 years ago

mphoward commented 4 years ago

This PR implements the moving harmonic potential that mimics evaporation in a spherical geometry, as in Liu et al. Since the original command for the thin film evaporator was evaporate.implicit and the class structures are highly similar, I decided to add a geometry option to this command that can be either 'film' (default, original behavior) or 'droplet' (new geometry). This supports extension to other geometries like cylinders. On the C++ side, there is now a base ImplicitEvaporator, from which the geometries and GPU versions derive. Technically, this is probably better achieved using templates to compute the distance and normal to the interface rather than subclassing, but this was faster to implement. The code can be refactored later if we want without changing the public API.

mphoward commented 4 years ago

Thanks! The variable z is actually only used in the documentation to define the harmonic potential (not in the API), since the position of the drying front is set by interface. So, z could be replaced by another dummy variable without breaking compatibility. But, I think I will leave it for now and reconsider cleaning up whenever I actually get around to #1 and go through all of the docs.