120 lines
6.2 KiB
Plaintext
Executable File
120 lines
6.2 KiB
Plaintext
Executable File
#===========================================================================#
|
|
# 2 particle microrheology test #
|
|
# #
|
|
# Run consists of 2 colloidal particles undergoing Brownian motion in a #
|
|
# thermal lattice-Boltzmann fluid. #
|
|
# #
|
|
# Here, gamma (used in the calculation of the particle-fluid interaction #
|
|
# force) is calculated by default. Thus, the colloidal objects will have #
|
|
# a slightly larger "hydrodynamic" radii than given by the placement of #
|
|
# the particle nodes. #
|
|
# #
|
|
# Sample output from this run can be found in the file: #
|
|
# 'microrheology_setgamma.out' #
|
|
#===========================================================================#
|
|
|
|
units nano
|
|
dimension 3
|
|
boundary p p p
|
|
atom_style molecular
|
|
read_data data.two
|
|
|
|
#----------------------------------------------------------------------------
|
|
# 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 0.3 bin
|
|
neigh_modify delay 0 every 1
|
|
neigh_modify exclude type 2 2
|
|
neigh_modify exclude type 2 1
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Implement a hard-sphere interaction between the particles at the center of
|
|
# each colloidal object (use a truncated and shifted Lennard-Jones
|
|
# potential).
|
|
#----------------------------------------------------------------------------
|
|
pair_style lj/cut 5.88
|
|
pair_coeff * * 0.0 0.0 5.88
|
|
pair_coeff 1 1 100.0 5.238484463 5.88
|
|
pair_modify shift yes
|
|
|
|
mass * 0.0002398
|
|
timestep 0.00025
|
|
|
|
#----------------------------------------------------------------------------
|
|
# ForceAtoms are the particles at the center of each colloidal object which
|
|
# do not interact with the fluid, but are used to implement the hard-sphere
|
|
# interactions.
|
|
# FluidAtoms are the particles representing the surface of the colloidal
|
|
# object which do interact with the fluid.
|
|
#----------------------------------------------------------------------------
|
|
group ForceAtoms type 1
|
|
group FluidAtoms type 2
|
|
|
|
#---------------------------------------------------------------------------
|
|
# Create a lattice-Boltzmann fluid covering the simulation domain.
|
|
# This fluid feels a force due to the particles specified through FluidAtoms
|
|
# (however, this fix does not explicitly apply a force back on to these
|
|
# particles...this is accomplished through the use of the viscous_lb fix).
|
|
# Use the standard LB integration scheme, a fluid viscosity = 1.0, fluid
|
|
# density= 0.0009982071, lattice spacing dx=1.2, and mass unit, dm=0.003.
|
|
# 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 2
|
|
# correspond to a surface area of 0.3015928947).
|
|
# Use the trilinear interpolation stencil to distribute the force from
|
|
# a given particle onto the fluid mesh.
|
|
# Use a thermal lattice-Boltzmann fluid (temperature 300K, random number
|
|
# seed=2762). This enables the particles to undergo Brownian motion in
|
|
# the fluid.
|
|
#----------------------------------------------------------------------------
|
|
fix 1 FluidAtoms lb/fluid 1 1 1.0 0.0009982071 setArea 2 0.3015928947 dx 1.2 dm 0.003 trilinear noise 300.0 2762
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Apply the force due to the fluid onto the FluidAtoms particles (again,
|
|
# these atoms represent the surface of the colloidal object, which should
|
|
# interact with the fluid).
|
|
#----------------------------------------------------------------------------
|
|
fix 2 FluidAtoms lb/viscous
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Each colloidal object (spherical shell of particles and central particle)
|
|
# is specified as a separate molecule in the confinedcolloids.dat data
|
|
# file. Integrate the motion of these sets of particles as rigid objects
|
|
# which each move and rotate together.
|
|
#----------------------------------------------------------------------------
|
|
fix 3 all rigid molecule
|
|
|
|
#----------------------------------------------------------------------------
|
|
# To ensure that numerical errors do not lead to a buildup of momentum in the
|
|
# system, the momentum_lb fix is used every 10000 timesteps to zero out the
|
|
# total (particle plus fluid) momentum in the system.
|
|
#----------------------------------------------------------------------------
|
|
fix 4 all lb/momentum 10000 linear 1 1 1
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Create variables containing the positions of the central atoms (these
|
|
# values should correspond to the center of mass of each composite
|
|
# colloidal particle), and output these quantities to the screen.
|
|
#----------------------------------------------------------------------------
|
|
variable x1 equal x[1]
|
|
variable y1 equal y[1]
|
|
variable z1 equal z[1]
|
|
variable x2 equal x[242]
|
|
variable y2 equal y[242]
|
|
variable z2 equal z[242]
|
|
|
|
thermo_style custom v_x1 v_y1 v_z1 v_x2 v_y2 v_z2
|
|
thermo 1
|
|
|
|
run 2000000000
|