lammps/doc/fix_lb_fluid.html

497 lines
27 KiB
HTML

<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>fix lb/fluid command &mdash; LAMMPS documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/sphinxcontrib-images/LightBox2/lightbox2/css/lightbox.css" type="text/css" />
<link rel="top" title="LAMMPS documentation" href="index.html"/>
<script src="_static/js/modernizr.min.js"></script>
</head>
<body class="wy-body-for-nav" role="document">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-nav-search">
<a href="Manual.html" class="icon icon-home"> LAMMPS
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul>
<li class="toctree-l1"><a class="reference internal" href="Section_intro.html">1. Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_start.html">2. Getting Started</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_commands.html">3. Commands</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_packages.html">4. Packages</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_accelerate.html">5. Accelerating LAMMPS performance</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_howto.html">6. How-to discussions</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_example.html">7. Example problems</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_perf.html">8. Performance &amp; scalability</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_tools.html">9. Additional tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_modify.html">10. Modifying &amp; extending LAMMPS</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_python.html">11. Python interface to LAMMPS</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_errors.html">12. Errors</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_history.html">13. Future and history</a></li>
</ul>
</div>
&nbsp;
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" role="navigation" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="Manual.html">LAMMPS</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="Manual.html">Docs</a> &raquo;</li>
<li>fix lb/fluid command</li>
<li class="wy-breadcrumbs-aside">
<a href="http://lammps.sandia.gov">Website</a>
<a href="Section_commands.html#comm">Commands</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="fix-lb-fluid-command">
<span id="index-0"></span><h1>fix lb/fluid command<a class="headerlink" href="#fix-lb-fluid-command" title="Permalink to this headline"></a></h1>
<div class="section" id="syntax">
<h2>Syntax<a class="headerlink" href="#syntax" title="Permalink to this headline"></a></h2>
<div class="highlight-python"><div class="highlight"><pre>fix ID group-ID lb/fluid nevery LBtype viscosity density keyword values ...
</pre></div>
</div>
<ul class="simple">
<li>ID, group-ID are documented in <a class="reference internal" href="fix.html"><em>fix</em></a> command</li>
<li>lb/fluid = style name of this fix command</li>
<li>nevery = update the lattice-Boltzmann fluid every this many timesteps</li>
<li>LBtype = 1 to use the standard finite difference LB integrator,
2 to use the LB integrator of <a class="reference internal" href="#ollila"><span>Ollila et al.</span></a></li>
<li>viscosity = the fluid viscosity (units of mass/(time*length)).</li>
<li>density = the fluid density.</li>
<li>zero or more keyword/value pairs may be appended</li>
<li>keyword = <em>setArea</em> or <em>setGamma</em> or <em>scaleGamma</em> or <em>dx</em> or <em>dm</em> or <em>a0</em> or <em>noise</em> or <em>calcforce</em> or <em>trilinear</em> or <em>D3Q19</em> or <em>read_restart</em> or <em>write_restart</em> or <em>zwall_velocity</em> or <em>bodyforce</em> or <em>printfluid</em></li>
</ul>
<pre class="literal-block">
<em>setArea</em> values = type node_area
type = atom type (1-N)
node_area = portion of the surface area of the composite object associated with the particular atom type (used when the force coupling constant is set by default).
<em>setGamma</em> values = gamma
gamma = user set value for the force coupling constant.
<em>scaleGamma</em> values = type gammaFactor
type = atom type (1-N)
gammaFactor = factor to scale the <em>setGamma</em> gamma value by, for the specified atom type.
<em>dx</em> values = dx_LB = the lattice spacing.
<em>dm</em> values = dm_LB = the lattice-Boltzmann mass unit.
<em>a0</em> values = a_0_real = the square of the speed of sound in the fluid.
<em>noise</em> values = Temperature seed
Temperature = fluid temperature.
seed = random number generator seed (positive integer)
<em>calcforce</em> values = N forcegroup-ID
N = output the force and torque every N timesteps
forcegroup-ID = ID of the particle group to calculate the force and torque of
<em>trilinear</em> values = none (used to switch from the default Peskin interpolation stencil to the trilinear stencil).
<em>D3Q19</em> values = none (used to switch from the default D3Q15, 15 velocity lattice, to the D3Q19, 19 velocity lattice).
<em>read_restart</em> values = restart file = name of the restart file to use to restart a fluid run.
<em>write_restart</em> values = N = write a restart file every N MD timesteps.
<em>zwall_velocity</em> values = velocity_bottom velocity_top = velocities along the y-direction of the bottom and top walls (located at z=zmin and z=zmax).
<em>bodyforce</em> values = bodyforcex bodyforcey bodyforcez = the x,y and z components of a constant body force added to the fluid.
<em>printfluid</em> values = N = print the fluid density and velocity at each grid point every N timesteps.
</pre>
</div>
<div class="section" id="examples">
<h2>Examples<a class="headerlink" href="#examples" title="Permalink to this headline"></a></h2>
<div class="highlight-python"><div class="highlight"><pre>fix 1 all lb/fluid 1 2 1.0 1.0 setGamma 13.0 dx 4.0 dm 10.0 calcforce sphere1
fix 1 all lb/fluid 1 1 1.0 0.0009982071 setArea 1 1.144592082 dx 2.0 dm 0.3 trilinear noise 300.0 8979873
</pre></div>
</div>
</div>
<div class="section" id="description">
<h2>Description<a class="headerlink" href="#description" title="Permalink to this headline"></a></h2>
<p>Implement a lattice-Boltzmann fluid on a uniform mesh covering the LAMMPS
simulation domain. The MD particles described by <em>group-ID</em> apply a velocity
dependent force to the fluid.</p>
<p>The lattice-Boltzmann algorithm solves for the fluid motion governed by
the Navier Stokes equations,</p>
<img alt="_images/fix_lb_fluid_navierstokes.jpg" class="align-center" src="_images/fix_lb_fluid_navierstokes.jpg" />
<p>with,</p>
<img alt="_images/fix_lb_fluid_viscosity.jpg" class="align-center" src="_images/fix_lb_fluid_viscosity.jpg" />
<p>where rho is the fluid density, u is the local fluid velocity, sigma
is the stress tensor, F is a local external force, and eta and Lambda
are the shear and bulk viscosities respectively. Here, we have
implemented</p>
<img alt="_images/fix_lb_fluid_stress.jpg" class="align-center" src="_images/fix_lb_fluid_stress.jpg" />
<p>with a_0 set to 1/3 (dx/dt)^2 by default.</p>
<p>The algorithm involves tracking the time evolution of a set of partial
distribution functions which evolve according to a velocity
discretized version of the Boltzmann equation,</p>
<img alt="_images/fix_lb_fluid_boltzmann.jpg" class="align-center" src="_images/fix_lb_fluid_boltzmann.jpg" />
<p>where the first term on the right hand side represents a single time
relaxation towards the equilibrium distribution function, and tau is a
parameter physically related to the viscosity. On a technical note,
we have implemented a 15 velocity model (D3Q15) as default; however,
the user can switch to a 19 velocity model (D3Q19) through the use of
the <em>D3Q19</em> keyword. This fix provides the user with the choice of
two algorithms to solve this equation, through the specification of
the keyword <em>LBtype</em>. If <em>LBtype</em> is set equal to 1, the standard
finite difference LB integrator is used. If <em>LBtype</em> is set equal to
2, the algorithm of <a class="reference internal" href="#ollila"><span>Ollila et al.</span></a> is used.</p>
<p>Physical variables are then defined in terms of moments of the distribution
functions,</p>
<img alt="_images/fix_lb_fluid_properties.jpg" class="align-center" src="_images/fix_lb_fluid_properties.jpg" />
<p>Full details of the lattice-Boltzmann algorithm used can be found in
<a class="reference internal" href="fix_lb_viscous.html#mackay"><span>Mackay et al.</span></a>.</p>
<p>The fluid is coupled to the MD particles described by <em>group-ID</em>
through a velocity dependent force. The contribution to the fluid
force on a given lattice mesh site j due to MD particle alpha is
calculated as:</p>
<img alt="_images/fix_lb_fluid_fluidforce.jpg" class="align-center" src="_images/fix_lb_fluid_fluidforce.jpg" />
<p>where v_n is the velocity of the MD particle, u_f is the fluid
velocity interpolated to the particle location, and gamma is the force
coupling constant. Zeta is a weight assigned to the grid point,
obtained by distributing the particle to the nearest lattice sites.
For this, the user has the choice between a trilinear stencil, which
provides a support of 8 lattice sites, or the immersed boundary method
Peskin stencil, which provides a support of 64 lattice sites. While
the Peskin stencil is seen to provide more stable results, the
trilinear stencil may be better suited for simulation of objects close
to walls, due to its smaller support. Therefore, by default, the
Peskin stencil is used; however the user may switch to the trilinear
stencil by specifying the keyword, <em>trilinear</em>.</p>
<p>By default, the force coupling constant, gamma, is calculated according to</p>
<img alt="_images/fix_lb_fluid_gammadefault.jpg" class="align-center" src="_images/fix_lb_fluid_gammadefault.jpg" />
<p>Here, m_v is the mass of the MD particle, m_u is a representative
fluid mass at the particle location, and dt_collision is a collision
time, chosen such that tau/dt_collision = 1 (see <a class="reference internal" href="#mackay2"><span>Mackay and Denniston</span></a> for full details). In order to calculate m_u, the
fluid density is interpolated to the MD particle location, and
multiplied by a volume, node_area*dx_lb, where node_area represents
the portion of the surface area of the composite object associated
with a given MD particle. By default, node_area is set equal to
dx_lb*dx_lb; however specific values for given atom types can be set
using the <em>setArea</em> keyword.</p>
<p>The user also has the option of specifying their own value for the
force coupling constant, for all the MD particles associated with the
fix, through the use of the <em>setGamma</em> keyword. This may be useful
when modelling porous particles. See <a class="reference internal" href="fix_lb_viscous.html#mackay"><span>Mackay et al.</span></a> for a
detailed description of the method by which the user can choose an
appropriate gamma value.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">while this fix applies the force of the particles on the fluid,
it does not apply the force of the fluid to the particles. When the
force coupling constant is set using the default method, there is only
one option to include this hydrodynamic force on the particles, and
that is through the use of the <a class="reference internal" href="fix_lb_viscous.html"><em>lb/viscous</em></a> fix.
This fix adds the hydrodynamic force to the total force acting on the
particles, after which any of the built-in LAMMPS integrators can be
used to integrate the particle motion. However, if the user specifies
their own value for the force coupling constant, as mentioned in
<a class="reference internal" href="fix_lb_viscous.html#mackay"><span>Mackay et al.</span></a>, the built-in LAMMPS integrators may prove to
be unstable. Therefore, we have included our own integrators <a class="reference internal" href="fix_lb_rigid_pc_sphere.html"><em>fix lb/rigid/pc/sphere</em></a>, and <a class="reference internal" href="fix_lb_pc.html"><em>fix lb/pc</em></a>, to solve for the particle motion in these
cases. These integrators should not be used with the
<a class="reference internal" href="fix_lb_viscous.html"><em>lb/viscous</em></a> fix, as they add hydrodynamic forces
to the particles directly. In addition, they can not be used if the
force coupling constant has been set the default way.</p>
</div>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">if the force coupling constant is set using the default method,
and the <a class="reference internal" href="fix_lb_viscous.html"><em>lb/viscous</em></a> fix is NOT used to add the
hydrodynamic force to the total force acting on the particles, this
physically corresponds to a situation in which an infinitely massive
particle is moving through the fluid (since collisions between the
particle and the fluid do not act to change the particle&#8217;s velocity).
Therefore, the user should set the mass of the particle to be
significantly larger than the mass of the fluid at the particle
location, in order to approximate an infinitely massive particle (see
the dragforce test run for an example).</p>
</div>
<hr class="docutils" />
<p>Inside the fix, parameters are scaled by the lattice-Boltzmann
timestep, dt, grid spacing, dx, and mass unit, dm. dt is set equal to
(nevery*dt_MD), where dt_MD is the MD timestep. By default, dm is set
equal to 1.0, and dx is chosen so that tau/(dt) =
(3*eta*dt)/(rho*dx^2) is approximately equal to 1. However, the user
has the option of specifying their own values for dm, and dx, by using
the optional keywords <em>dm</em>, and <em>dx</em> respectively.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">Care must be taken when choosing both a value for dx, and a
simulation domain size. This fix uses the same subdivision of the
simulation domain among processors as the main LAMMPS program. In
order to uniformly cover the simulation domain with lattice sites, the
lengths of the individual LAMMPS subdomains must all be evenly
divisible by dx. If the simulation domain size is cubic, with equal
lengths in all dimensions, and the default value for dx is used, this
will automatically be satisfied.</p>
</div>
<p>Physical parameters describing the fluid are specified through
<em>viscosity</em>, <em>density</em>, and <em>a0</em>. If the force coupling constant is
set the default way, the surface area associated with the MD particles
is specified using the <em>setArea</em> keyword. If the user chooses to
specify a value for the force coupling constant, this is set using the
<em>setGamma</em> keyword. These parameters should all be given in terms of
the mass, distance, and time units chosen for the main LAMMPS run, as
they are scaled by the LB timestep, lattice spacing, and mass unit,
inside the fix.</p>
<hr class="docutils" />
<p>The <em>setArea</em> keyword allows the user to associate a surface area with
a given atom type. For example if a spherical composite object of
radius R is represented as a spherical shell of N evenly distributed
MD particles, all of the same type, the surface area per particle
associated with that atom type should be set equal to 4*pi*R^2/N.
This keyword should only be used if the force coupling constant,
gamma, is set the default way.</p>
<p>The <em>setGamma</em> keyword allows the user to specify their own value for
the force coupling constant, gamma, instead of using the default
value.</p>
<p>The <em>scaleGamma</em> keyword should be used in conjunction with the
<em>setGamma</em> keyword, when the user wishes to specify different gamma
values for different atom types. This keyword allows the user to
scale the <em>setGamma</em> gamma value by a factor, gammaFactor, for a given
atom type.</p>
<p>The <em>dx</em> keyword allows the user to specify a value for the LB grid
spacing.</p>
<p>The <em>dm</em> keyword allows the user to specify the LB mass unit.</p>
<p>If the <em>a0</em> keyword is used, the value specified is used for the
square of the speed of sound in the fluid. If this keyword is not
present, the speed of sound squared is set equal to (1/3)*(dx/dt)^2.
Setting a0 &gt; (dx/dt)^2 is not allowed, as this may lead to
instabilities.</p>
<p>If the <em>noise</em> keyword is used, followed by a a positive temperature
value, and a positive integer random number seed, a thermal
lattice-Boltzmann algorithm is used. If <em>LBtype</em> is set equal to 1
(i.e. the standard LB integrator is chosen), the thermal LB algorithm
of <a class="reference internal" href="#adhikari"><span>Adhikari et al.</span></a> is used; however if <em>LBtype</em> is set
equal to 2 both the LB integrator, and thermal LB algorithm described
in <a class="reference internal" href="#ollila"><span>Ollila et al.</span></a> are used.</p>
<p>If the <em>calcforce</em> keyword is used, both the fluid force and torque
acting on the specified particle group are printed to the screen every
N timesteps.</p>
<p>If the keyword <em>trilinear</em> is used, the trilinear stencil is used to
interpolate the particle nodes onto the fluid mesh. By default, the
immersed boundary method, Peskin stencil is used. Both of these
interpolation methods are described in <a class="reference internal" href="fix_lb_viscous.html#mackay"><span>Mackay et al.</span></a>.</p>
<p>If the keyword <em>D3Q19</em> is used, the 19 velocity (D3Q19) lattice is
used by the lattice-Boltzmann algorithm. By default, the 15 velocity
(D3Q15) lattice is used.</p>
<p>If the keyword <em>write_restart</em> is used, followed by a positive
integer, N, a binary restart file is printed every N LB timesteps.
This restart file only contains information about the fluid.
Therefore, a LAMMPS restart file should also be written in order to
print out full details of the simulation.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">When a large number of lattice grid points are used, the restart
files may become quite large.</p>
</div>
<p>In order to restart the fluid portion of the simulation, the keyword
<em>read_restart</em> is specified, followed by the name of the binary
lb_fluid restart file to be used.</p>
<p>If the <em>zwall_velocity</em> keyword is used y-velocities are assigned to
the lower and upper walls. This keyword requires the presence of
walls in the z-direction. This is set by assigning fixed boundary
conditions in the z-direction. If fixed boundary conditions are
present in the z-direction, and this keyword is not used, the walls
are assumed to be stationary.</p>
<p>If the <em>bodyforce</em> keyword is used, a constant body force is added to
the fluid, defined by it&#8217;s x, y and z components.</p>
<p>If the <em>printfluid</em> keyword is used, followed by a positive integer, N,
the fluid densities and velocities at each lattice site are printed to the
screen every N timesteps.</p>
<hr class="docutils" />
<p>For further details, as well as descriptions and results of several
test runs, see <a class="reference internal" href="fix_lb_viscous.html#mackay"><span>Mackay et al.</span></a>. Please include a citation to
this paper if the lb_fluid fix is used in work contributing to
published research.</p>
</div>
<hr class="docutils" />
<div class="section" id="restart-fix-modify-output-run-start-stop-minimize-info">
<h2>Restart, fix_modify, output, run start/stop, minimize info<a class="headerlink" href="#restart-fix-modify-output-run-start-stop-minimize-info" title="Permalink to this headline"></a></h2>
<p>Due to the large size of the fluid data, this fix writes it&#8217;s own
binary restart files, if requested, independent of the main LAMMPS
<a class="reference internal" href="restart.html"><em>binary restart files</em></a>; no information about <em>lb_fluid</em>
is written to the main LAMMPS <a class="reference internal" href="restart.html"><em>binary restart files</em></a>.</p>
<p>None of the <a class="reference internal" href="fix_modify.html"><em>fix_modify</em></a> options are relevant to this
fix. No global or per-atom quantities are stored by this fix for
access by various <span class="xref std std-ref">output commands</span>. No
parameter of this fix can be used with the <em>start/stop</em> keywords of
the <a class="reference internal" href="run.html"><em>run</em></a> command. This fix is not invoked during <a class="reference internal" href="minimize.html"><em>energy minimization</em></a>.</p>
</div>
<div class="section" id="restrictions">
<h2>Restrictions<a class="headerlink" href="#restrictions" title="Permalink to this headline"></a></h2>
<p>This fix is part of the USER-LB package. It is only enabled if LAMMPS
was built with that package. See the <a class="reference internal" href="Section_start.html#start-3"><span>Making LAMMPS</span></a> section for more info.</p>
<p>This fix can only be used with an orthogonal simulation domain.</p>
<p>Walls have only been implemented in the z-direction. Therefore, the
boundary conditions, as specified via the main LAMMPS boundary command
must be periodic for x and y, and either fixed or periodic for z.
Shrink-wrapped boundary conditions are not permitted with this fix.</p>
<p>This fix must be used before any of <a class="reference internal" href="fix_lb_viscous.html"><em>fix lb/viscous</em></a>, <a class="reference internal" href="fix_lb_momentum.html"><em>fix lb/momentum</em></a>, <a class="reference internal" href="fix_lb_rigid_pc_sphere.html"><em>fix lb/rigid/pc/sphere</em></a>, and/ or <a class="reference internal" href="fix_lb_pc.html"><em>fix lb/pc</em></a> , as the fluid needs to be initialized before
any of these routines try to access its properties. In addition, in
order for the hydrodynamic forces to be added to the particles, this
fix must be used in conjunction with the
<a class="reference internal" href="fix_lb_viscous.html"><em>lb/viscous</em></a> fix if the force coupling constant is
set by default, or either the <a class="reference internal" href="fix_lb_viscous.html"><em>lb/viscous</em></a> fix or
one of the <a class="reference internal" href="fix_lb_rigid_pc_sphere.html"><em>lb/rigid/pc/sphere</em></a> or
<a class="reference internal" href="fix_lb_pc.html"><em>lb/pc</em></a> integrators, if the user chooses to specifiy
their own value for the force coupling constant.</p>
</div>
<div class="section" id="related-commands">
<h2>Related commands<a class="headerlink" href="#related-commands" title="Permalink to this headline"></a></h2>
<p><a class="reference internal" href="fix_lb_viscous.html"><em>fix lb/viscous</em></a>, <a class="reference internal" href="fix_lb_momentum.html"><em>fix lb/momentum</em></a>, <a class="reference internal" href="fix_lb_rigid_pc_sphere.html"><em>fix lb/rigid/pc/sphere</em></a>, <a class="reference internal" href="fix_lb_pc.html"><em>fix lb/pc</em></a></p>
</div>
<div class="section" id="default">
<h2>Default<a class="headerlink" href="#default" title="Permalink to this headline"></a></h2>
<p>By default, the force coupling constant is set according to</p>
<img alt="_images/fix_lb_fluid_gammadefault.jpg" class="align-center" src="_images/fix_lb_fluid_gammadefault.jpg" />
<p>and an area of dx_lb^2 per node, used to calculate the fluid mass at
the particle node location, is assumed.</p>
<p>dx is chosen such that tau/(delta t_LB) =
(3 eta dt_LB)/(rho dx_lb^2) is approximately equal to 1.
dm is set equal to 1.0.
a0 is set equal to (1/3)*(dx_lb/dt_lb)^2.
The Peskin stencil is used as the default interpolation method.
The D3Q15 lattice is used for the lattice-Boltzmann algorithm.
If walls are present, they are assumed to be stationary.</p>
<hr class="docutils" />
<p id="ollila"><strong>(Ollila et al.)</strong> Ollila, S.T.T., Denniston, C., Karttunen, M., and Ala-Nissila, T., Fluctuating lattice-Boltzmann model for complex fluids, J. Chem. Phys. 134 (2011) 064902.</p>
<p id="mackay"><strong>(Mackay et al.)</strong> Mackay, F. E., Ollila, S.T.T., and Denniston, C., Hydrodynamic Forces Implemented into LAMMPS through a lattice-Boltzmann fluid, Computer Physics Communications 184 (2013) 2021-2031.</p>
<p id="mackay2"><strong>(Mackay and Denniston)</strong> Mackay, F. E., and Denniston, C., Coupling MD particles to a lattice-Boltzmann fluid through the use of conservative forces, J. Comput. Phys. 237 (2013) 289-298.</p>
<p id="adhikari"><strong>(Adhikari et al.)</strong> Adhikari, R., Stratford, K., Cates, M. E., and Wagner, A. J., Fluctuating lattice Boltzmann, Europhys. Lett. 71 (2005) 473-479.</p>
</div>
</div>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 2013 Sandia Corporation.
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/javascript" src="_static/sphinxcontrib-images/LightBox2/lightbox2/js/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="_static/sphinxcontrib-images/LightBox2/lightbox2/js/lightbox.min.js"></script>
<script type="text/javascript" src="_static/sphinxcontrib-images/LightBox2/lightbox2-customize/jquery-noconflict.js"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.StickyNav.enable();
});
</script>
</body>
</html>