Jeffrey A. Cunningham Department
of Civil and Environmental Engineering Environmental
and Water Resources Engineering (EWRE) Division Office: ENC
(Engineering Bldg III), room 3215 Phone: 8139749540 Fax: 8139742957 Email: cunning@usf.edu 

Research Projects (current) Project list was last updated on:
November 2013 Catalytic
treatment of contaminated soil (with Bobby Panczer, MS student) Transport of
reactive contaminants in groundwater (with Dr Itza MendozaSanchez) Sequestration of
CO_{2} in geologic formations (with Prof Shadab Anwar; Prof Mark
Stewart; Prof Maya Trotz; Dr Roland Okwen) Fate and
transport of endocrinedisrupting compounds in the vadose zone (with Dr
WonSeok Kim; Joel Engleson, PhD candidate) Novel treatment
process for swine wastewater (with Prof Sarina Ergas; Adib Amini,
Maureen Kinyua, and Veronica Aponte, graduate students) Recovery of
metals from spent batteries (with Ehsan Vahidi, PhD student) Survey of lead
(Pb) contamination in groundwater wells in Madagascar (with Brad
Akers, master’s degree student) 
Lattice Boltzmann modeling
(revised April 2014) Since 1 October 2013,
I have been a visiting scientist at CSIRO in Perth, Australia, while on
sabbatical from USF. During my
sabbatical, I have been trying to teach myself lattice Boltzmann modeling
(LBM). LBM is a technique for describing
the flow of fluids, including multiphase fluids, and it is a powerful method
for describing flow in complicated geometries – like the pores of a porous
medium. The idea is that porescale
models of multiphase flow will be useful for a variety of remediation
applications and in models for estimating longterm risk from oil spills.
As I get better at this technique, I will
post some results and some codes here.
Flow in a pore with
sinusoidally varying pore width:
Main code: sinusoidal_pore.m
Subroutines: calc_f_eq.m calc_macroscopic_variables_5.m
check_mass_balance.m stream_2.m
periodic_left_right.m periodic_top_bottom.m
Example of
output/results: A very interesting finding is that when the Reynolds number is
high enough, nonturbulent eddies form within the wide cavities of the
pore. At lower Re, no eddies form – flow
is “creeping”. The figures below show
streamlines generated by one of my LBM codes (files available above). These results are a little different from
those of Kitanidis and Dykaar (1997, Transport in Porous Media).
Flow through
granular porous media:
Main code: grains.m
Input file: grains_data_1.dat
Examples of
output/results: The code grains.m models the flow of a single fluid through a
userspecified porous medium, provided in an input file (like, for example,
grains_data_1.dat). The code computes
the velocity field of the fluid through the porous medium. This code is still based on an assumption of
periodic boundary conditions, which are probably the easiest boundary
conditions in LBM.
Effects of
different boundary conditions:
Lattice Boltzmann
models can employ different boundary conditions. The figures and codes above all employ
periodic boundary conditions – flow that exits the domain on the right boundary
reenters on the left. However,
different types of boundaries are possible, and the results of the simulations
could differ depending on the boundary conditions selected. Compare the streamlines in the three figures
below, which use three different types of boundaries.
Main codes: grains.m (periodic boundaries), grains_constant_rho_left_right.m
(constantpressure boundaries), grains_open_right_boundary.m
Subroutines: periodic_top_bottom_2.m
periodic_left_right.m
constant_rho_left_right.m
constant_rho_left_open_right_6.m
Flow between two
parallel plates:
A classic problem in
fluid mechanics and engineering is the determination of the velocity profile of
a fluid in laminar flow between two parallel plates (of infinite areal
extent).
This type of flow is
sometimes called Poiseuille flow, after the scientist Poiseuille (see also
HagenPoiseuille flow in a circular pipe).
There is an analytical solution to the problem, which means that we can
use this problem to “benchmark” the performance of LBM simulations.
Code: poiseuille_periodic_2.m
Examples of outputs/results: Lattice
Boltzmann modeling can predict the correct velocity profile of the fluid, as
shown below. That is not too surprising. More interesting is an analysis of the error
of the LBM simulations. If we calculate
error according to
then we get the very interesting result
that the error is proportional to the number of fluid nodes (N) raised to the power –2. This is analogous to a finitedifference
scheme being secondorder accurate, except that LBM is not based on finite
differences. I have not yet figured out
why LBM exhibits this behavior, but the pattern is very clear.
Immiscible displacement
of an oil droplet from a granular porous medium:
I created a movie that shows water
flushing an oil droplet out of a granular porous medium. If the movie plays properly, I’ll post the
codes that I used to generate it. First
I am just going to try to get the movie to display properly…click on the link
below, and see what happens….
OK, that seems to work – at least,
it works on my computer, so I hope it works on yours – I will try to get the
codes posted soon.
More coming soon, I hope….