Palabos can now been scripted through a Python interface. This offers the same performance, and parallel scalability, as the C++ interface, but it is much simpler to use for end-user applications.
Finally: grid refinement is implemented in Palabos. It works with existing physical models (data processors and dynamics classes) without the need for modifying them. And it is parallelized.
For now, the 2D interface only is part of the release, and the 3D interface follows in a subsequent release.
Implementing the He/Lee model was a real crash-test for Palabos. The model requires couplings between many scalar-fields, vector-fields, and lattices, and uses next-to-nearest-neighbor interaction stencils. Test result positive: the model works fine, runs fast, and scales impressively. This adds a new multi-phase model to Palabos which handles large densit and viscosity ratios between the two phases.
Application of the new He/Lee multi-phase algorithm to a 3D appliation of two colliding bubbles.
Application of Palabos' new 2D grid refinement abilities to the 2D lid-driven cavity. This application, like all others, is parallelized.
2D time-dependent, force driven channel flow, with analytical Womersley solution.
3D stationary flow in a channel with rectangular cross-section.
Use the data processors SetExternalScalarFunctionalXD or SetExternalVectorFunctionalXD, respectively their wrapper functions setExternalScalar and setExternalVector, to initialize external scalar- or vector-fields of a lattice. Example: an external force term may be initialized to a constant value through a command like
setExternalVector(lattice, lattice.getBoundingBox(), DESCRIPTOR<T>::ExternalField::forceBeginsAt, Array<T,2>(0.,-force));
The code used to crash or misbehave when some walls were periodic while others implemented a Neumann condition. This has been fixed.
Scalar fields used to execute an addition when a division was requested. This has been fixed.