LAMMPS (30 Aug 2013)
units     	real
atom_style full # charge
### NOTE p p p is required for both lammps & atc since periodic images are employed in ExtrinsicModelElectrostatic::correct_electrostatic_forces
########### BEGIN PARAMETERS ####################################
variable T equal 300
variable a equal 1.0 # 5.719025032
variable i equal 10 # thermo
variable f equal 50 # neighbor & conc interval
variable s equal 100 # 10 # 100 # output
variable n equal 800 # 20 # 200 # 300 # duration
variable x equal 4 # 40 #  2 # 4 # exchanges
variable e equal 100. # 1. # 100. # 10. # energy
variable h equal 5 # nelems
variable dt equal 4. #1. # 0 # 4.0
##############  END PARAMETERS #################################
dimension 	3
boundary  	p p p
pair_style  	lj/cut/coul/cut 13.0
lattice   	sc  $a
lattice   	sc  1
Lattice spacing in x,y,z = 1 1 1
read_data concentration_init.data
Scanning data file ...
Reading data file ...
  orthogonal box = (0 0 0) to (114.381 22.8761 22.8761)
  4 by 1 by 1 MPI processor grid
  544 atoms
  544 velocities
Finding 1-2 1-3 1-4 neighbors ...
  0 = max # of 1-2 neighbors
  0 = max # of 1-3 neighbors
  0 = max # of 1-4 neighbors
  1 = max # of special neighbors
atom_modify sort 0 1
mass       * 39.948
pair_coeff * * 0.2381 3.405
pair_coeff 1 * 0.4    3.405
dielectric 80.0
variable xlo equal xlo
variable xhi equal xhi
variable xmid equal 0.5*(${xhi}+${xlo})
variable xmid equal 0.5*(114.38050064000000816+${xlo})
variable xmid equal 0.5*(114.38050064000000816+0)
print "reservior x ${xmid}:${xhi}"
reservior x 57.190250320000004081:114.38050064000000816
variable ylo equal ylo
variable yhi equal yhi
variable zlo equal zlo
variable zhi equal zhi
region BOX   block ${xlo} ${xhi} ${ylo} ${yhi} ${zlo} ${zhi} units box
region BOX   block 0 ${xhi} ${ylo} ${yhi} ${zlo} ${zhi} units box
region BOX   block 0 114.38050064000000816 ${ylo} ${yhi} ${zlo} ${zhi} units box
region BOX   block 0 114.38050064000000816 0 ${yhi} ${zlo} ${zhi} units box
region BOX   block 0 114.38050064000000816 0 22.876100128000000922 ${zlo} ${zhi} units box
region BOX   block 0 114.38050064000000816 0 22.876100128000000922 0 ${zhi} units box
region BOX   block 0 114.38050064000000816 0 22.876100128000000922 0 22.876100128000000922 units box
region FLUID block ${xlo} ${xhi} ${ylo} ${yhi} ${zlo} ${zhi} units box
region FLUID block 0 ${xhi} ${ylo} ${yhi} ${zlo} ${zhi} units box
region FLUID block 0 114.38050064000000816 ${ylo} ${yhi} ${zlo} ${zhi} units box
region FLUID block 0 114.38050064000000816 0 ${yhi} ${zlo} ${zhi} units box
region FLUID block 0 114.38050064000000816 0 22.876100128000000922 ${zlo} ${zhi} units box
region FLUID block 0 114.38050064000000816 0 22.876100128000000922 0 ${zhi} units box
region FLUID block 0 114.38050064000000816 0 22.876100128000000922 0 22.876100128000000922 units box
region R     block ${xmid} ${xhi} ${ylo} ${yhi} ${zlo} ${zhi} units box
region R     block 57.190250320000004081 ${xhi} ${ylo} ${yhi} ${zlo} ${zhi} units box
region R     block 57.190250320000004081 114.38050064000000816 ${ylo} ${yhi} ${zlo} ${zhi} units box
region R     block 57.190250320000004081 114.38050064000000816 0 ${yhi} ${zlo} ${zhi} units box
region R     block 57.190250320000004081 114.38050064000000816 0 22.876100128000000922 ${zlo} ${zhi} units box
region R     block 57.190250320000004081 114.38050064000000816 0 22.876100128000000922 0 ${zhi} units box
region R     block 57.190250320000004081 114.38050064000000816 0 22.876100128000000922 0 22.876100128000000922 units box
group SOLID type 1
288 atoms in group SOLID
variable xdof equal 3*count(SOLID)
compute_modify thermo_temp extra ${xdof}
compute_modify thermo_temp extra 864
#set group SOLID charge 0
group NEUTRAL type 2
114 atoms in group NEUTRAL
group FLUID type 2 3 4
256 atoms in group FLUID
group NION type 3
66 atoms in group NION
group PION type 4
76 atoms in group PION
#group tPION type 5 # not dynamic
#group tNION type 6 # not dynamic
#variable typeP atom type[]==5
set group PION charge  1
Setting atom values ...
  76 settings made for charge
set group NION charge -1
Setting atom values ...
  66 settings made for charge
variable O equal count(NEUTRAL)
variable S equal count(SOLID)
variable F equal count(FLUID)
variable P equal count(PION)
variable N equal count(NION)
variable Pr equal count(PION,R)
variable Nr equal count(NION,R)
#variable tP equal count(tPION)
#variable tN equal count(tNION)
variable V equal vol
variable cO equal v_O/v_V
variable cS equal v_S/v_V
variable cN equal v_N/v_V
variable cP equal v_P/v_V
compute q all property/atom q
compute m all property/atom mass
compute Q all reduce sum c_q
compute M all reduce sum c_m
compute Qf FLUID reduce sum c_q
compute Mf FLUID reduce sum c_m
compute PMIN PION reduce min x
compute PMAX PION reduce max x
compute NMIN NION reduce min x
compute NMAX NION reduce max x
timestep  	${dt}
timestep  	4
#neighbor 13 bin
neigh_modify every $i check no
neigh_modify every 10 check no
# coulombic interactions
fix         ATC FLUID   atc species_electrostatic  Ar_electrostatic.mat
ATC: constructing electrostatic species coupling with parameter file Ar_electrostatic.mat
 ATC: version 2.0
 ATC: peratom PE compute created with ID: 13
 ATC: 1 materials defined from Ar_electrostatic.mat
 ATC: creating fem_efield extrinsic model
 ATC: 1 materials defined from Ar_electrostatic.mat
#fix_modify  ATC parallel_consistency off
fix_modify  ATC extrinsic short_range off
#fix_modify  ATC boundary SOLID
fix_modify  ATC atom_element_map eulerian $i
fix_modify  ATC atom_element_map eulerian 10
fix_modify  ATC internal_quadrature off
fix_modify  ATC consistent_fe_initialization on
fix_modify  ATC filter type exponential
fix_modify  ATC filter scale $i
fix_modify  ATC filter scale 10
fix_modify  ATC filter equilibrate
# mesh
print "x = ${xlo}:${xhi}"
x = 0:114.38050064000000816
fix_modify ATC mesh create $h 1 1 BOX p p p  # f p p  ExtrinsicModelElectrostatic::correct_electrostatic_forces iterates through ghosts
fix_modify ATC mesh create 5 1 1 BOX p p p  
 ATC: created uniform mesh with 24 nodes, 5 unique nodes, and 5 elements
fix_modify ATC mesh create_nodeset LBC ${xlo} ${xlo}  -INF INF -INF INF
fix_modify ATC mesh create_nodeset LBC 0 ${xlo}  -INF INF -INF INF
fix_modify ATC mesh create_nodeset LBC 0 0  -INF INF -INF INF
 ATC: created nodeset LBC with 1 nodes
fix_modify ATC mesh create_elementset FLUID FLUID
 ATC: created elementset FLUID with 5 elements
fix_modify ATC mesh create_elementset R R
 ATC: created elementset R with 2 elements
fix_modify ATC mesh create_elementset BOX BOX
 ATC: created elementset BOX with 5 elements
## NOTE tag instead of type, what about transition tyme
fix_modify ATC mass_matrix fe
fix_modify ATC internal_element_set FLUID
fix_modify ATC include atomic_charge
fix_modify ATC add_species N type 3
fix_modify ATC add_species P type 4
fix_modify ATC add_species Nt type 5
fix_modify ATC add_species Pt type 6
## CC
fix_modify ATC control concentration N R 0.001 Nt  # deletions R
ERROR: Illegal fix_modify command (../fix.cpp:104)
