### Fluctuating Hydrodynamics

**The group has created a github organization**

**stochasticHydroTools**

**with a number of repositories connected to our work on fluctuating hydrodynamics of particle suspensions. Codes associated with IBAMR are released under IBAMR's github and those developed using BoxLib/AMReX are under BoxLib's github or the newer AMReX github, and codes implemented using UAMMD are typically released on the UAMMD github.**

- The
**RigidMultiblobsWall repository**contains python and pyCUDA codes for performing Brownian Dynamics of rigid bodies in the presence of a single wall, as described in the papers "Brownian Dynamics of Confined Rigid Bodies" (stochastic but not scalable to many bodies) and "Hydrodynamics of Suspensions of Passive and Active Rigid Particles: A Rigid Multiblob Approach" (scalable but without fluctuations) and "Brownian Dynamics of Active Sphere Suspensions Confined Near a No-Slip Boundary" (with fluctuations but without rotations and only at Rotne-Prager level, i.e., single blob per body). Work is presently underway to add fluctuations efficiently and accurately to the many-body pyCUDA rigid multiblob code including particle rotations. - The
**Positively Split Ewald (PSE) method**is developed by collaborators Andrew Fiore and James Swan (MIT Chemical engineering) and is a plug-in to the GPU library HOOMD that can efficiently sample Brownian increments for bulk colloidal suspensions (3D periodic systems) up to the Rotne-Prager level. Another fast GPU implementation is provided by Raul Perez in UAMMD, along with an easy-to-use python interface. - We are in the process of developing methods for electrostatics
and Stokes flow in
**doubly-periodic geometries**. For electrostatics, a fast GPU implementation of a spectral Ewald method for triply and doubly-periodic geometries is provided by Raul Perez in UAMMD, along with an easy-to-use python interface. - The
**Fluctuating Immersed Boundary method**can perform Brownian Dynamics of suspensions of colloids or elastic structures such as polymer chains in confined geometries, as described in the paper "Brownian Dynamics without Green's Functions". A simple GPU-enabled implementation for periodic domains only is available in UAMMD. A recent but still-undocumented implementation including boundary conditions and electrostatics, suitable for electrolyte solutions is available in FHDeX. The original FIB code including boundary conditions was developed as an add-on to the state-of-the-art parallel C++ Immersed Boundary Adaptive Mesh Refinement**IBAMR framework**developed and maintained by collaborator Boyce Griffith, which implements internally the required stochastic stress tensor generator (for any combination of no-slip, slip and periodic boundary conditions), as explained in the paper "Staggered Schemes for Fluctuating Hydrodynamics". See examples/IB/explicit/ex5 for an example that advects particles (markers) by thermal velocity fluctuations, and examples/navier_stokes/ex6 for an example that advects a scalar field (concentration or temperature) with thermal fluctuations in a Boussinesq model. - The
**GPU code fluam**developed by collaborators Rafael Delgado-Buscalioni and Florencio Balboa implements compressible and incompressible staggered-grid fluctuating hydrodynamics for binary fluid mixtures and for particle suspensions. For incompressible hydrodynamics only periodic boundary conditions are supported because the code relies on FFT techniques for solving the Stokes equations. A newer and more flexible implementation for neutrally buoyant particles is available in UAMMD. - The
**SRBD code**implements the Split Reactive Brownian Dynamics algorithm proposed in the paper "Efficient Reactive Brownian Dynamics". It can be used to perform particle-based reaction-diffusion modeling (SRBD, S-BD-RME); see BoxLib Reaction-Diffusion module described below for cell-based modeling (RDME/FHD).

- The
**MixingIBAMR code**is an extension and improvement of examples/navier_stokes/ex6 included in the**IBAMR framework**, and contains example input files that we used for performing simulations of experimental measurements of giant fluctuations in binary fluid mixtures in microgravity and in Earth gravity. These simulations and the algorithms used are described in the papers "Multiscale temporal integrators for fluctuating hydrodynamics", with comparisons to experiments described in the papers "Dynamic scaling for the growth of non-equilibrium fluctuations during thermophoretic diffusion in microgravity" and "Slowing-down of non-equilibrium concentration fluctuations in confinement".

- The
**BoxLib repository**contains parallel finite volume solvers for the compressible, incompressible, and low Mach number fluctuating hydrodynamic equations for fluid mixtures, as well as reaction-diffusion systems, implemented in the Fortran binding of the**BoxLib framework**developed by the group of collaborator John Bell at LBNL. An add-on**BoxLib Low Mach module**for staggered-grid low Mach number fluctuating hydrodynamics of multispecies liquid mixtures is available publicly on github. An add-on**BoxLib Reaction-Diffusion module**implements the methods described in the paper "Stochastic Simulation of Reaction-Diffusion Systems: A Fluctuating-Hydrodynamics Approach". Note that BoxLib has now been renamed and restructured as AMReX.

### Immersed Boundary Method and CFD

- The python/C++/matlab
**SlenderBody code**written by Ondrej Maxian implements a method for periodic suspensions of slender semi-flexible fibers, as described in the paper "An integral-based spectral method for inextensible slender fibers in Stokes flow". - The MATLAB+MeX
**DFIB code**written by Bill Bao implements the divergence-free IB method described in the paper "An Immersed Boundary Method with Divergence-Free Velocity Interpolation". - The MATLAB+Mex
**FBIM code**written by Bill Bao implements the fluctuating boundary integral method in two dimensions, as described in the paper "A fluctuating boundary integral method for Brownian suspensions".

- The
**RigidBodyIB code**contains the stand-alone C code MobilityFunctions.c that contains the empirical fits of the pairwise marker mobility (documentation is in comments), as described in the paper "An immersed boundary method for rigid bodies". The rigid-body algorithms described in the followup paper "Hydrodynamics of Suspensions of Passive and Active Rigid Particles: A Rigid Multiblob Approach" (see in particular Section III) are part of the**RigidBAMR code**which is fully integrated into IBAMR, see these examples and codes.

- The
**IBMethod repository**contains some example/tutorial Matlab codes, including code for the new 6pt and 5pt immersed boundary kernels used in our work, as described in a recent note "A Gaussian-Like Immersed Boundary Kernel with Improved Translational Invariance and Smoothness" by Bao, Kaye and Peskin [ArXiv:1505.07529].

### Hard-Particle packing Codes

- Here are some old but still very efficient precompiled
executables for generating packings of spheres, ellipsoids
and super ellipsoids. These were developed during my Ph.D.
research and you should consult my Ph.D.
thesis if you plan to use them.

- If you wish to modify the codes yourself you should instead use
the simpler but still reasonably efficient C++
sphere packing code.