107 lines
4.1 KiB
Plaintext
107 lines
4.1 KiB
Plaintext
# simulation of negatively charge liquid argon-positively charged solid/frozen argon
|
|
# MAKE this dielectric_interface then interface (major difference: non-uniform grid)
|
|
# START with extrinsic charges on both and then use an intrinsic charge density for frozen
|
|
echo both
|
|
units real
|
|
atom_style full
|
|
########### BEGIN PARAMETERS ####################################
|
|
variable a equal 5.719025032
|
|
variable i equal 1
|
|
variable s equal 100
|
|
variable n equal 1000 # 500 2000
|
|
variable dt equal 4.0
|
|
variable W equal 4
|
|
variable L equal 20
|
|
variable Ls equal 4 # surface
|
|
variable h equal 10
|
|
variable phiInf equal -1. # 0. 10 -10.0
|
|
variable perm2 equal 2.
|
|
variable depth equal 17.1571
|
|
# 1 1 0.1 0.1 1 1
|
|
variable w1 equal 4/$L # relative wall width
|
|
variable w2 equal ${w1}+2/$L # relative wall width
|
|
variable w3 equal ${w2}+2/$L
|
|
variable w4 equal ${w3}+2/$L
|
|
############## END PARAMETERS #################################
|
|
dimension 3
|
|
boundary f p p
|
|
pair_style lj/cut 13.0
|
|
lattice fcc $a
|
|
read_data interface_init.data
|
|
atom_modify sort 0 1
|
|
mass * 39.948
|
|
pair_coeff * * 0.2381 3.405
|
|
dielectric 1.0
|
|
region BOX block 0 $L 0 $W 0 $W
|
|
group SOLID type 1
|
|
group FLUID type 2 3 4
|
|
group P type 3
|
|
group N type 4
|
|
set group SOLID charge 0 # use ATC to provide charge to the surface
|
|
timestep ${dt}
|
|
neigh_modify every $i check no
|
|
fix WALLS all wall/reflect xlo EDGE xhi EDGE
|
|
fix PP all atc field
|
|
fix_modify PP add_species IONS type 1 2 3 4
|
|
fix_modify PP fields add species_concentration mass_density charge_density
|
|
fix_modify PP atom_element_map eulerian $s
|
|
fix_modify PP mesh create $h 1 1 BOX f p p
|
|
fix_modify PP output volume_integral all mass_density
|
|
fix_modify PP output volume_integral all charge_density
|
|
fix ATC FLUID atc species_electrostatic Ar_electrostatic.mat
|
|
fix_modify ATC add_species P type 3
|
|
fix_modify ATC add_species N type 4
|
|
fix_modify ATC boundary SOLID
|
|
fix_modify ATC atom_element_map eulerian $i
|
|
fix_modify ATC internal_quadrature off # on creates a nasty error (NOTE trap error)
|
|
fix_modify ATC mass_matrix fe
|
|
fix_modify ATC include atomic_charge
|
|
# mesh
|
|
fix_modify ATC mesh create $h 2 2 BOX f p p dx piecewise_linear 0 0 0 1 0 0 0.0 1.0 1.0 1.0
|
|
fix_modify ATC output volume_integral all mass_density
|
|
fix_modify ATC output volume_integral all charge_density
|
|
fix_modify ATC mesh create_nodeset lbc 0 0 -INF INF -INF INF
|
|
fix_modify ATC mesh create_nodeset rbc $L $L -INF INF -INF INF
|
|
fix_modify ATC mesh create_nodeset wall 0 ${Ls} 0 4 0 4
|
|
fix_modify ATC mesh create_elementset wall 0 ${Ls} 0 4 0 4
|
|
#fix_modify ATC mesh create_faceset lbc plane x 0
|
|
fix_modify ATC mesh create_faceset surface -INF ${Ls} -INF INF -INF INF
|
|
fix_modify ATC mesh output dielectric_interfaceMESH text binary
|
|
# ic/bcs
|
|
#fix_modify ATC initial charge_density all 0.
|
|
fix_modify ATC initial mass_density all 0.
|
|
fix_modify ATC initial electric_potential all 0.
|
|
# output
|
|
thermo $s
|
|
variable cFLUID equal count(FLUID)
|
|
compute PAVE P reduce ave x
|
|
compute PMIN P reduce min x
|
|
compute PMAX P reduce max x
|
|
compute NAVE N reduce ave x
|
|
compute NMIN N reduce min x
|
|
compute NMAX N reduce max x
|
|
compute q all property/atom q
|
|
compute Q all reduce sum c_q
|
|
compute m all property/atom mass
|
|
compute M all reduce sum c_m
|
|
compute Qf FLUID reduce sum c_q
|
|
compute Mf FLUID reduce sum c_m
|
|
compute F FLUID reduce sum fx fy fz
|
|
thermo_style custom step temp press etotal pe c_Q c_M c_Qf c_Mf c_PMIN c_PAVE c_PMAX c_NMIN c_NAVE c_NMAX c_F[1] c_F[2] c_F[3]
|
|
compute T FLUID temp
|
|
thermo_modify temp T
|
|
thermo_modify flush yes
|
|
log dielectric_interface.log
|
|
fix_modify ATC output dielectric_interfaceFE $s full_text binary
|
|
fix_modify PP output dielectric_interfacePP $s full_text binary
|
|
dump X all custom $s dielectric_interface.dmp id type x y z q vx vy vz fx fy fz
|
|
fix_modify ATC fix electric_potential rbc 0.
|
|
# stage 1 : active source controlling far-field shielding
|
|
fix_modify ATC control charge FLUID dielectric ${phiInf} ${perm2} ${depth}
|
|
fix_modify ATC control charge FLUID image_charge surface
|
|
run $n
|
|
# stage 2 : static source - i.e. above the mean like JCTC / "effective_charge"
|
|
fix_modify ATC source electric_potential wall 0.001
|
|
fix_modify ATC fix electric_potential lbc ${phiInf}
|
|
#run $n
|