BERNAISE (Binary ElectRohydrodyNAmIc SolvEr) is a flexible high-level solver of electrohydrodynamic flows in complex geometries. It is written in Python and built on the FEniCS project, which in turn effectively interfaces to optimized linear algebra backends such as PETSc. The solver is described and documented in our recent paper.
Enhanced oil recovery by application of a surface charge to the pore wall, and ions dissolved in the water phase. The color indicates the charge. The flow is driven by a constant velocity at the top (Couette flow). Left: With (uniform) surface charge, the droplet is released into the bulk. Right: Without surface charge, the droplet stays within the pore. Note that the droplet is slightly asymmetric due to the imposed flow.
Enhanced oil recovery in a pore throat by application of a surface charge to the pore wall, and ions dissolved in the water phase. The color indicates the charge (as above). In the four figures to the right, the flow is driven by a pressure difference; in the two to the left there is zero pressure difference between the two sides. Upper: With (uniform) surface charge in the throat, the droplet is released into the bulk even without external forcing. Lower: Without surface charge, the droplet stays within the pore, except for large external forcing.
Animal decontamination: A dolphin initially immersed in oil is fully cleaned by the application of surface charge to the dolphin's skin, and ions in the water. Red: positive charge, blue: negative charge.
- Simulates time-dependent two-phase electrohydrodynamics in two and three dimensions using a phase-field approach.
- Supports complex geometries represented by unstructured meshes.
- Easy implementation of new problems and solvers.
- Adaptive time-stepping based on a local Courant number.
- fenicstools (for post-processing)
- h5py (parallel)
- skimage (for polygon extraction tool)
- tabulate (for post-processing)
- Asger Bolet
- Gaute Linga