#===========================================================================#
# Sytem of 2 pairs of rigid particles moving towards one another.           #
# At each timestep, the hydrodynamic force acting on one of these four      #
# rigid particles is printed to the screen.                                 #
#                                                                           #
# Here, gamma (used in the calculation of the particle-fluid interaction    #
#   force) is calculated by default.  Thus, the colloidal objects will have # 
#   slightly larger "hydrodynamic" radii than given by the placement of the #
#   particle nodes.                                                         #
#                                                                           #
# Sample output from this run can be found in the file:                     #
#   'fourspheres_velocity0d0001_defaultgamma.out'                           #
#===========================================================================# 

units          micro
dimension      3
boundary       p p p
atom_style     atomic

#----------------------------------------------------------------------------
# Need a neighbor bin size smaller than the lattice-Boltzmann grid spacing
#   to ensure that the particles belonging to a given processor remain inside
#   that processors lattice-Boltzmann grid.
# The arguments for neigh_modify have been set to "delay 0 every 1", again
#   to ensure that the particles belonging to a given processor remain inside
#   that processors lattice-Boltzmann grid.  However, these values can likely
#   be somewhat increased without issue.  If a problem does arise (a particle
#   is outside of its processors LB grid) an error message is printed and 
#   the simulation is terminated. 
#----------------------------------------------------------------------------
neighbor       1.0 bin
neigh_modify   delay 0 every 1 exclude type 1 1

read_data      data.four

#----------------------------------------------------------------------------
# None of the particles interact with one another.
#----------------------------------------------------------------------------
pair_style	lj/cut 2.45
pair_coeff	* * 0.0 0.0 2.45

#----------------------------------------------------------------------------
# Need to use a large particle mass in order to approximate an infintely
# massive particle, moving at constant velocity through the fluid.
#----------------------------------------------------------------------------
mass * 10000.0
timestep 3.0

group sphere1 id <> 1 320
group sphere2 id <> 321 640
group sphere3 id <> 641 960
group sphere4 id <> 961 1280 

velocity sphere1 set 0.0 0.0001 0.0 units box
velocity sphere2 set 0.0 -0.0001 0.0 units box
velocity sphere3 set 0.0 0.0001 0.0 units box
velocity sphere4 set 0.0 -0.0001 0.0 units box

#---------------------------------------------------------------------------
# Create a lattice-Boltzmann fluid covering the simulation domain.
# All of the particles in the simulation apply a force to the fluid.
# Use the standard LB integration scheme, a fluid density = 1.0, 
#   fluid viscosity = 1.0, lattice spacing dx=4.0, and mass unit, dm=10.0.
# Use the default method to calculate the interaction force between the 
#   particles and the fluid.  This calculation requires the surface area 
#   of the composite object represented by each particle node.  By default 
#   this area is assumed equal to dx*dx; however, since this is not the case
#   here, it is input through the setArea keyword (i.e. particles of type 1 
#   correspond to a surface area of 2.640508625).
# Print the force and torque acting on one of the spherical colloidal objects
#   to the screen at each timestep.
#----------------------------------------------------------------------------
fix	1 all lb/fluid 1 1 1.0 1.0 setArea 1 2.640508625 dx 4.0 dm 10.0 calcforce 20 sphere1

#---------------------------------------------------------------------------
# For this simulation the colloidal particles move at a constant velocity
#   through the fluid.  As such, we do not wish to apply the force from
#   the fluid back onto these objects.  Therefore, we do not use any of the
#   viscous_lb, rigid_pc_sphere, or pc fixes, and simply integrate the 
#   particle motions using one of the built-in LAMMPS integrators.
#---------------------------------------------------------------------------
fix      2 all nve

run	 300000
