Moved brownian dynamics files to be in USER-BROWNIAN package
This commit is contained in:
@ -112,7 +112,7 @@ set(STANDARD_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS DIPOLE
|
|||||||
USER-MANIFOLD USER-MEAMC USER-MESONT USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE
|
USER-MANIFOLD USER-MEAMC USER-MESONT USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE
|
||||||
USER-NETCDF USER-PHONON USER-PLUMED USER-PTM USER-QTB USER-REACTION
|
USER-NETCDF USER-PHONON USER-PLUMED USER-PTM USER-QTB USER-REACTION
|
||||||
USER-REAXC USER-SCAFACOS USER-SDPD USER-SMD USER-SMTBQ USER-SPH USER-TALLY
|
USER-REAXC USER-SCAFACOS USER-SDPD USER-SMD USER-SMTBQ USER-SPH USER-TALLY
|
||||||
USER-UEF USER-VTK USER-QUIP USER-QMMM USER-YAFF USER-ADIOS)
|
USER-UEF USER-VTK USER-QUIP USER-QMMM USER-YAFF USER-ADIOS USER-BROWNIAN)
|
||||||
set(SUFFIX_PACKAGES CORESHELL USER-OMP KOKKOS OPT USER-INTEL GPU)
|
set(SUFFIX_PACKAGES CORESHELL USER-OMP KOKKOS OPT USER-INTEL GPU)
|
||||||
foreach(PKG ${STANDARD_PACKAGES} ${SUFFIX_PACKAGES})
|
foreach(PKG ${STANDARD_PACKAGES} ${SUFFIX_PACKAGES})
|
||||||
option(PKG_${PKG} "Build ${PKG} Package" OFF)
|
option(PKG_${PKG} "Build ${PKG} Package" OFF)
|
||||||
|
|||||||
@ -39,8 +39,8 @@ OPT.
|
|||||||
* :doc:`ave/time <fix_ave_time>`
|
* :doc:`ave/time <fix_ave_time>`
|
||||||
* :doc:`aveforce <fix_aveforce>`
|
* :doc:`aveforce <fix_aveforce>`
|
||||||
* :doc:`balance <fix_balance>`
|
* :doc:`balance <fix_balance>`
|
||||||
* :doc:`bd/sphere <fix_bd_sphere>`
|
* :doc:`brownian/asphere <fix_brownian_asphere>`
|
||||||
* :doc:`bd/asphere <fix_bd_asphere>`
|
* :doc:`brownian/sphere <fix_brownian_sphere>`
|
||||||
* :doc:`bocs <fix_bocs>`
|
* :doc:`bocs <fix_bocs>`
|
||||||
* :doc:`bond/break <fix_bond_break>`
|
* :doc:`bond/break <fix_bond_break>`
|
||||||
* :doc:`bond/create <fix_bond_create>`
|
* :doc:`bond/create <fix_bond_create>`
|
||||||
|
|||||||
@ -182,8 +182,8 @@ accelerated styles exist.
|
|||||||
* :doc:`ave/time <fix_ave_time>` - compute/output global time-averaged quantities
|
* :doc:`ave/time <fix_ave_time>` - compute/output global time-averaged quantities
|
||||||
* :doc:`aveforce <fix_aveforce>` - add an averaged force to each atom
|
* :doc:`aveforce <fix_aveforce>` - add an averaged force to each atom
|
||||||
* :doc:`balance <fix_balance>` - perform dynamic load-balancing
|
* :doc:`balance <fix_balance>` - perform dynamic load-balancing
|
||||||
* :doc:`bd/asphere <fix_bd_asphere>` - integrate positions and orientations in overdamped motion
|
* :doc:`brownian/asphere <fix_brownian_asphere>` - overdamped translational and rotational brownian for ellipsoids
|
||||||
* :doc:`bd/sphere <fix_bd_sphere>` - overdamped translational and rotational brownian dynamics
|
* :doc:`brownian/sphere <fix_brownian_sphere>` - overdamped translational and rotational brownian for spheres
|
||||||
* :doc:`bocs <fix_bocs>` - NPT style time integration with pressure correction
|
* :doc:`bocs <fix_bocs>` - NPT style time integration with pressure correction
|
||||||
* :doc:`bond/break <fix_bond_break>` - break bonds on the fly
|
* :doc:`bond/break <fix_bond_break>` - break bonds on the fly
|
||||||
* :doc:`bond/create <fix_bond_create>` - create bonds on the fly
|
* :doc:`bond/create <fix_bond_create>` - create bonds on the fly
|
||||||
|
|||||||
@ -1,17 +1,17 @@
|
|||||||
.. index:: fix bd/asphere
|
.. index:: fix brownian/asphere
|
||||||
|
|
||||||
fix bd/asphere command
|
fix brownian/asphere command
|
||||||
======================
|
============================
|
||||||
|
|
||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
fix ID group-ID bd/asphere gamma_t gamma_r diff_t diff_r seed keyword args
|
fix ID group-ID brownian/asphere gamma_t gamma_r diff_t diff_r seed keyword args
|
||||||
|
|
||||||
* ID, group-ID are documented in :doc:`fix <fix>` command
|
* ID, group-ID are documented in :doc:`fix <fix>` command
|
||||||
* bd/asphere = style name of this fix command
|
* brownian/asphere = style name of this fix command
|
||||||
* gamma_t = translational friction coefficient
|
* gamma_t = translational friction coefficient
|
||||||
* gamma_r = rotational friction coefficient
|
* gamma_r = rotational friction coefficient
|
||||||
* diff_t = translational diffusion coefficient
|
* diff_t = translational diffusion coefficient
|
||||||
@ -32,10 +32,10 @@ Examples
|
|||||||
|
|
||||||
.. code-block:: LAMMPS
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix 1 all bd/asphere 1.0 1.0 1.0 1.0 1294019
|
fix 1 all brownian/asphere 1.0 1.0 1.0 1.0 1294019
|
||||||
fix 1 all bd/asphere 1.0 1.0 1.0 1.0 19581092 rng none dipole
|
fix 1 all brownian/asphere 1.0 1.0 1.0 1.0 19581092 rng none dipole
|
||||||
fix 1 all bd/asphere 1.0 1.0 1.0 1.0 19581092 rng uniform
|
fix 1 all brownian/asphere 1.0 1.0 1.0 1.0 19581092 rng uniform
|
||||||
fix 1 all bd/asphere 1.0 1.0 1.0 1.0 19581092 dipole rng gaussian
|
fix 1 all brownian/asphere 1.0 1.0 1.0 1.0 19581092 dipole rng gaussian
|
||||||
|
|
||||||
|
|
||||||
Description
|
Description
|
||||||
@ -59,7 +59,7 @@ Chapter 4 of :ref:`(Goldstein) <GoldsteinCM1>`), :math:`dW_t` and
|
|||||||
The quaternions :math:`q` of the ellipsoid are updated each timestep from
|
The quaternions :math:`q` of the ellipsoid are updated each timestep from
|
||||||
the angular velocity vector.
|
the angular velocity vector.
|
||||||
|
|
||||||
See :doc:`fix bd/sphere <fix_bd_sphere>` for discussion on the
|
See :doc:`fix brownian/sphere <fix_brownian_sphere>` for discussion on the
|
||||||
values of :math:`\gamma_t`, :math:`\gamma_r`, :math:`D_t`,
|
values of :math:`\gamma_t`, :math:`\gamma_r`, :math:`D_t`,
|
||||||
:math:`D_r`, and temperature when simulating equilibrium systems.
|
:math:`D_r`, and temperature when simulating equilibrium systems.
|
||||||
|
|
||||||
@ -124,7 +124,7 @@ be point particles.
|
|||||||
Related commands
|
Related commands
|
||||||
""""""""""""""""
|
""""""""""""""""
|
||||||
|
|
||||||
:doc:`fix bd/sphere <fix_bd_sphere>`, :doc:`fix langevin <fix_langevin>`,
|
:doc:`fix brownian/sphere <fix_brownian_sphere>`, :doc:`fix langevin <fix_langevin>`,
|
||||||
:doc:`fix nve/asphere <fix_nve_asphere>`, :doc:`atom style <atom_style>`
|
:doc:`fix nve/asphere <fix_nve_asphere>`, :doc:`atom style <atom_style>`
|
||||||
|
|
||||||
Default
|
Default
|
||||||
@ -1,17 +1,17 @@
|
|||||||
.. index:: fix bd/sphere
|
.. index:: fix brownian/sphere
|
||||||
|
|
||||||
fix bd/sphere command
|
fix brownian/sphere command
|
||||||
======================
|
===========================
|
||||||
|
|
||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
fix ID group-ID bd/sphere gamma_t gamma_r diff_t diff_r seed keyword args
|
fix ID group-ID brownian/sphere gamma_t gamma_r diff_t diff_r seed keyword args
|
||||||
|
|
||||||
* ID, group-ID are documented in :doc:`fix <fix>` command
|
* ID, group-ID are documented in :doc:`fix <fix>` command
|
||||||
* bd/sphere = style name of this fix command
|
* brownian/sphere = style name of this fix command
|
||||||
* gamma_t = translational friction coefficient
|
* gamma_t = translational friction coefficient
|
||||||
* gamma_r = rotational friction coefficient
|
* gamma_r = rotational friction coefficient
|
||||||
* diff_t = translational diffusion coefficient
|
* diff_t = translational diffusion coefficient
|
||||||
@ -32,10 +32,10 @@ Examples
|
|||||||
|
|
||||||
.. code-block:: LAMMPS
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix 1 all bd/sphere 1.0 1.0 1.0 1.0 1294019
|
fix 1 all brownian/sphere 1.0 1.0 1.0 1.0 1294019
|
||||||
fix 1 all bd/sphere 1.0 1.0 1.0 1.0 19581092 rng none dipole
|
fix 1 all brownian/sphere 1.0 1.0 1.0 1.0 19581092 rng none dipole
|
||||||
fix 1 all bd/sphere 1.0 1.0 1.0 1.0 19581092 rng uniform
|
fix 1 all brownian/sphere 1.0 1.0 1.0 1.0 19581092 rng uniform
|
||||||
fix 1 all bd/sphere 1.0 1.0 1.0 1.0 19581092 dipole rng gaussian
|
fix 1 all brownian/sphere 1.0 1.0 1.0 1.0 19581092 dipole rng gaussian
|
||||||
|
|
||||||
|
|
||||||
Description
|
Description
|
||||||
@ -36,7 +36,7 @@ neigh_modify every 1 delay 1 check yes
|
|||||||
pair_style none
|
pair_style none
|
||||||
|
|
||||||
|
|
||||||
fix 1 all bd/asphere ${gamma_t} ${gamma_r} ${D_t} ${D_r} ${seed} rng ${rng} dipole
|
fix 1 all brownian/asphere ${gamma_t} ${gamma_r} ${D_t} ${D_r} ${seed} rng ${rng} dipole
|
||||||
|
|
||||||
|
|
||||||
compute press all pressure NULL virial
|
compute press all pressure NULL virial
|
||||||
@ -38,13 +38,13 @@ neigh_modify every 1 delay 1 check yes
|
|||||||
pair_style none
|
pair_style none
|
||||||
|
|
||||||
|
|
||||||
fix 1 all bd/asphere ${gamma_t} ${gamma_r} ${D_t} ${D_r} ${seed} rng ${rng} dipole
|
fix 1 all brownian/asphere ${gamma_t} ${gamma_r} ${D_t} ${D_r} ${seed} rng ${rng} dipole
|
||||||
fix 1 all bd/asphere 4 ${gamma_r} ${D_t} ${D_r} ${seed} rng ${rng} dipole
|
fix 1 all brownian/asphere 4 ${gamma_r} ${D_t} ${D_r} ${seed} rng ${rng} dipole
|
||||||
fix 1 all bd/asphere 4 1 ${D_t} ${D_r} ${seed} rng ${rng} dipole
|
fix 1 all brownian/asphere 4 1 ${D_t} ${D_r} ${seed} rng ${rng} dipole
|
||||||
fix 1 all bd/asphere 4 1 7 ${D_r} ${seed} rng ${rng} dipole
|
fix 1 all brownian/asphere 4 1 7 ${D_r} ${seed} rng ${rng} dipole
|
||||||
fix 1 all bd/asphere 4 1 7 13 ${seed} rng ${rng} dipole
|
fix 1 all brownian/asphere 4 1 7 13 ${seed} rng ${rng} dipole
|
||||||
fix 1 all bd/asphere 4 1 7 13 1974019 rng ${rng} dipole
|
fix 1 all brownian/asphere 4 1 7 13 1974019 rng ${rng} dipole
|
||||||
fix 1 all bd/asphere 4 1 7 13 1974019 rng gaussian dipole
|
fix 1 all brownian/asphere 4 1 7 13 1974019 rng gaussian dipole
|
||||||
|
|
||||||
|
|
||||||
compute press all pressure NULL virial
|
compute press all pressure NULL virial
|
||||||
@ -61,9 +61,9 @@ Per MPI rank memory allocation (min/avg/max) = 5.379 | 5.379 | 5.379 Mbytes
|
|||||||
Step Temp E_pair c_press
|
Step Temp E_pair c_press
|
||||||
0 1 0 0
|
0 1 0 0
|
||||||
50000 1.3923773e+11 0 0
|
50000 1.3923773e+11 0 0
|
||||||
Loop time of 5.68636 on 1 procs for 50000 steps with 512 atoms
|
Loop time of 5.61345 on 1 procs for 50000 steps with 512 atoms
|
||||||
|
|
||||||
Performance: 0.076 tau/day, 8792.977 timesteps/s
|
Performance: 0.077 tau/day, 8907.171 timesteps/s
|
||||||
100.0% CPU use with 1 MPI tasks x 1 OpenMP threads
|
100.0% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
MPI task timing breakdown:
|
MPI task timing breakdown:
|
||||||
@ -71,10 +71,10 @@ Section | min time | avg time | max time |%varavg| %total
|
|||||||
---------------------------------------------------------------
|
---------------------------------------------------------------
|
||||||
Pair | 0 | 0 | 0 | 0.0 | 0.00
|
Pair | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
Comm | 0.11589 | 0.11589 | 0.11589 | 0.0 | 2.04
|
Comm | 0.11822 | 0.11822 | 0.11822 | 0.0 | 2.11
|
||||||
Output | 2.1155e-05 | 2.1155e-05 | 2.1155e-05 | 0.0 | 0.00
|
Output | 2.0199e-05 | 2.0199e-05 | 2.0199e-05 | 0.0 | 0.00
|
||||||
Modify | 5.4911 | 5.4911 | 5.4911 | 0.0 | 96.57
|
Modify | 5.4135 | 5.4135 | 5.4135 | 0.0 | 96.44
|
||||||
Other | | 0.07936 | | | 1.40
|
Other | | 0.0817 | | | 1.46
|
||||||
|
|
||||||
Nlocal: 512.000 ave 512 max 512 min
|
Nlocal: 512.000 ave 512 max 512 min
|
||||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
@ -100,9 +100,8 @@ thermo_style custom step temp epair c_msd[*] c_press
|
|||||||
|
|
||||||
|
|
||||||
# write trajectory and thermo in a log-scale frequency
|
# write trajectory and thermo in a log-scale frequency
|
||||||
dump 1 all custom 1000 dump_${params}_2d.lammpstrj id type x y xu yu mux muy muz fx fy fz
|
#dump 1 all custom 1000 dump_${params}_3d.lammpstrj id type # x y xu yu mux muy muz fx fy fz
|
||||||
dump 1 all custom 1000 dump_gaussian_4_1_7_13_2d.lammpstrj id type x y xu yu mux muy muz fx fy fz
|
#dump_modify 1 first yes sort id
|
||||||
dump_modify 1 first yes sort id
|
|
||||||
|
|
||||||
timestep 0.00001
|
timestep 0.00001
|
||||||
thermo 10000
|
thermo 10000
|
||||||
@ -110,7 +109,7 @@ thermo 10000
|
|||||||
# main run
|
# main run
|
||||||
run 120000
|
run 120000
|
||||||
WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (src/comm_brick.cpp:167)
|
WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (src/comm_brick.cpp:167)
|
||||||
Per MPI rank memory allocation (min/avg/max) = 7.103 | 7.103 | 7.103 Mbytes
|
Per MPI rank memory allocation (min/avg/max) = 5.754 | 5.754 | 5.754 Mbytes
|
||||||
Step Temp E_pair c_msd[1] c_msd[2] c_msd[3] c_msd[4] c_press
|
Step Temp E_pair c_msd[1] c_msd[2] c_msd[3] c_msd[4] c_press
|
||||||
0 1.3923773e+11 0 0 0 0 0 0
|
0 1.3923773e+11 0 0 0 0 0 0
|
||||||
10000 1413805.2 0 1.3943053 1.4055827 1.4346505 4.2345385 0
|
10000 1413805.2 0 1.3943053 1.4055827 1.4346505 4.2345385 0
|
||||||
@ -125,20 +124,20 @@ Step Temp E_pair c_msd[1] c_msd[2] c_msd[3] c_msd[4] c_press
|
|||||||
100000 1430838.3 0 14.104796 13.817001 13.596538 41.518335 0
|
100000 1430838.3 0 14.104796 13.817001 13.596538 41.518335 0
|
||||||
110000 1364246.8 0 15.382464 15.09201 15.017312 45.491785 0
|
110000 1364246.8 0 15.382464 15.09201 15.017312 45.491785 0
|
||||||
120000 1389237.6 0 16.632972 16.343173 16.015748 48.991892 0
|
120000 1389237.6 0 16.632972 16.343173 16.015748 48.991892 0
|
||||||
Loop time of 13.595 on 1 procs for 120000 steps with 512 atoms
|
Loop time of 13.2439 on 1 procs for 120000 steps with 512 atoms
|
||||||
|
|
||||||
Performance: 7626.329 tau/day, 8826.770 timesteps/s
|
Performance: 7828.487 tau/day, 9060.749 timesteps/s
|
||||||
100.0% CPU use with 1 MPI tasks x 1 OpenMP threads
|
100.0% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
MPI task timing breakdown:
|
MPI task timing breakdown:
|
||||||
Section | min time | avg time | max time |%varavg| %total
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
---------------------------------------------------------------
|
---------------------------------------------------------------
|
||||||
Pair | 0 | 0 | 0 | 0.0 | 0.00
|
Pair | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
Neigh | 0.00079148 | 0.00079148 | 0.00079148 | 0.0 | 0.01
|
Neigh | 0.00075178 | 0.00075178 | 0.00075178 | 0.0 | 0.01
|
||||||
Comm | 0.029132 | 0.029132 | 0.029132 | 0.0 | 0.21
|
Comm | 0.0282 | 0.0282 | 0.0282 | 0.0 | 0.21
|
||||||
Output | 0.15178 | 0.15178 | 0.15178 | 0.0 | 1.12
|
Output | 0.00032692 | 0.00032692 | 0.00032692 | 0.0 | 0.00
|
||||||
Modify | 13.222 | 13.222 | 13.222 | 0.0 | 97.25
|
Modify | 13.017 | 13.017 | 13.017 | 0.0 | 98.29
|
||||||
Other | | 0.1916 | | | 1.41
|
Other | | 0.1976 | | | 1.49
|
||||||
|
|
||||||
Nlocal: 512.000 ave 512 max 512 min
|
Nlocal: 512.000 ave 512 max 512 min
|
||||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
@ -151,4 +150,4 @@ Total # of neighbors = 0
|
|||||||
Ave neighs/atom = 0.0000000
|
Ave neighs/atom = 0.0000000
|
||||||
Neighbor list builds = 1110
|
Neighbor list builds = 1110
|
||||||
Dangerous builds = 0
|
Dangerous builds = 0
|
||||||
Total wall time: 0:00:19
|
Total wall time: 0:00:18
|
||||||
@ -1,11 +1,11 @@
|
|||||||
The input file in2ddipole.bd demonstrates how to run a 2d simulation
|
The input file in2ddipole.brownian demonstrates how to run a
|
||||||
of particles undergoing overdamped brownian motion in both
|
2d simulation of particles undergoing overdamped brownian motion
|
||||||
translational and rotational degrees of freedom. Dipole
|
in both translational and rotational degrees of freedom. Dipole
|
||||||
updating is turned on, so the package DIPOLE must be built
|
updating is turned on, so the package DIPOLE must be built
|
||||||
for this example to work.
|
for this example to work.
|
||||||
|
|
||||||
The input file in3d_virial_on.bd demonstrates how to run a
|
The input file in3d_virial_on.brownian demonstrates how to run
|
||||||
similar simulation but in 3d. In this case, the virial
|
a similar simulation but in 3d. In this case, the virial
|
||||||
contribution of the brownian dynamics (the sum
|
contribution of the brownian dynamics (the sum
|
||||||
sum_i <r_i dot sqrt{2D_t}W>/(3*volume) where W is
|
sum_i <r_i dot sqrt{2D_t}W>/(3*volume) where W is
|
||||||
a random variable with mean 0 and variance dt) is
|
a random variable with mean 0 and variance dt) is
|
||||||
@ -38,7 +38,7 @@ pair_style none
|
|||||||
|
|
||||||
#compute d all property/atom mux muy muz
|
#compute d all property/atom mux muy muz
|
||||||
|
|
||||||
fix 1 all bd/sphere ${gamma_t} ${gamma_r} ${D_t} ${D_r} ${seed} rng ${rng} dipole
|
fix 1 all brownian/sphere ${gamma_t} ${gamma_r} ${D_t} ${D_r} ${seed} rng ${rng} dipole
|
||||||
fix 2 all enforce2d
|
fix 2 all enforce2d
|
||||||
|
|
||||||
compute press all pressure NULL virial
|
compute press all pressure NULL virial
|
||||||
@ -33,7 +33,7 @@ neigh_modify every 1 delay 1 check yes
|
|||||||
pair_style none
|
pair_style none
|
||||||
|
|
||||||
|
|
||||||
fix 1 all bd/sphere ${gamma_t} ${gamma_r} ${D_t} ${D_r} ${seed} rng ${rng}
|
fix 1 all brownian/sphere ${gamma_t} ${gamma_r} ${D_t} ${D_r} ${seed} rng ${rng}
|
||||||
fix_modify 1 virial yes
|
fix_modify 1 virial yes
|
||||||
|
|
||||||
compute press all pressure NULL virial
|
compute press all pressure NULL virial
|
||||||
@ -13,7 +13,7 @@ Created orthogonal box = (-25.298221 -25.298221 -0.31622777) to (25.298221 25.29
|
|||||||
1 by 1 by 1 MPI processor grid
|
1 by 1 by 1 MPI processor grid
|
||||||
create_atoms 1 box
|
create_atoms 1 box
|
||||||
Created 1024 atoms
|
Created 1024 atoms
|
||||||
create_atoms CPU = 0.001 seconds
|
create_atoms CPU = 0.002 seconds
|
||||||
mass * 1.0
|
mass * 1.0
|
||||||
set type * dipole/random ${seed} 1.0
|
set type * dipole/random ${seed} 1.0
|
||||||
set type * dipole/random 1974019 1.0
|
set type * dipole/random 1974019 1.0
|
||||||
@ -33,13 +33,13 @@ pair_style none
|
|||||||
|
|
||||||
#compute d all property/atom mux muy muz
|
#compute d all property/atom mux muy muz
|
||||||
|
|
||||||
fix 1 all bd/sphere ${gamma_t} ${gamma_r} ${D_t} ${D_r} ${seed} rng ${rng} dipole
|
fix 1 all brownian/sphere ${gamma_t} ${gamma_r} ${D_t} ${D_r} ${seed} rng ${rng} dipole
|
||||||
fix 1 all bd/sphere 4 ${gamma_r} ${D_t} ${D_r} ${seed} rng ${rng} dipole
|
fix 1 all brownian/sphere 4 ${gamma_r} ${D_t} ${D_r} ${seed} rng ${rng} dipole
|
||||||
fix 1 all bd/sphere 4 1 ${D_t} ${D_r} ${seed} rng ${rng} dipole
|
fix 1 all brownian/sphere 4 1 ${D_t} ${D_r} ${seed} rng ${rng} dipole
|
||||||
fix 1 all bd/sphere 4 1 7 ${D_r} ${seed} rng ${rng} dipole
|
fix 1 all brownian/sphere 4 1 7 ${D_r} ${seed} rng ${rng} dipole
|
||||||
fix 1 all bd/sphere 4 1 7 13 ${seed} rng ${rng} dipole
|
fix 1 all brownian/sphere 4 1 7 13 ${seed} rng ${rng} dipole
|
||||||
fix 1 all bd/sphere 4 1 7 13 1974019 rng ${rng} dipole
|
fix 1 all brownian/sphere 4 1 7 13 1974019 rng ${rng} dipole
|
||||||
fix 1 all bd/sphere 4 1 7 13 1974019 rng gaussian dipole
|
fix 1 all brownian/sphere 4 1 7 13 1974019 rng gaussian dipole
|
||||||
fix 2 all enforce2d
|
fix 2 all enforce2d
|
||||||
|
|
||||||
compute press all pressure NULL virial
|
compute press all pressure NULL virial
|
||||||
@ -56,9 +56,9 @@ Per MPI rank memory allocation (min/avg/max) = 4.289 | 4.289 | 4.289 Mbytes
|
|||||||
Step Temp E_pair c_press
|
Step Temp E_pair c_press
|
||||||
0 1 0 0
|
0 1 0 0
|
||||||
50000 7.3671759e+10 0 0
|
50000 7.3671759e+10 0 0
|
||||||
Loop time of 11.2219 on 1 procs for 50000 steps with 1024 atoms
|
Loop time of 11.2532 on 1 procs for 50000 steps with 1024 atoms
|
||||||
|
|
||||||
Performance: 0.038 tau/day, 4455.573 timesteps/s
|
Performance: 0.038 tau/day, 4443.198 timesteps/s
|
||||||
100.0% CPU use with 1 MPI tasks x 1 OpenMP threads
|
100.0% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
MPI task timing breakdown:
|
MPI task timing breakdown:
|
||||||
@ -66,10 +66,10 @@ Section | min time | avg time | max time |%varavg| %total
|
|||||||
---------------------------------------------------------------
|
---------------------------------------------------------------
|
||||||
Pair | 0 | 0 | 0 | 0.0 | 0.00
|
Pair | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
Comm | 0.028513 | 0.028513 | 0.028513 | 0.0 | 0.25
|
Comm | 0.031456 | 0.031456 | 0.031456 | 0.0 | 0.28
|
||||||
Output | 2.0981e-05 | 2.0981e-05 | 2.0981e-05 | 0.0 | 0.00
|
Output | 2.0958e-05 | 2.0958e-05 | 2.0958e-05 | 0.0 | 0.00
|
||||||
Modify | 11.048 | 11.048 | 11.048 | 0.0 | 98.45
|
Modify | 11.067 | 11.067 | 11.067 | 0.0 | 98.35
|
||||||
Other | | 0.1458 | | | 1.30
|
Other | | 0.1546 | | | 1.37
|
||||||
|
|
||||||
Nlocal: 1024.00 ave 1024 max 1024 min
|
Nlocal: 1024.00 ave 1024 max 1024 min
|
||||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
@ -96,8 +96,9 @@ thermo_style custom step temp epair c_msd[*] c_press
|
|||||||
|
|
||||||
# write trajectory and thermo in a log-scale frequency
|
# write trajectory and thermo in a log-scale frequency
|
||||||
# uncomment next three lines for dump output
|
# uncomment next three lines for dump output
|
||||||
#dump 1 all custom 2000 dump_${params}_2d.lammpstrj id type # x y xu yu mux muy muz fx fy fz
|
dump 1 all custom 2000 dump_${params}_2d.lammpstrj id type x y xu yu mux muy muz fx fy fz
|
||||||
#dump_modify 1 first yes sort id
|
dump 1 all custom 2000 dump_gaussian_4_1_7_13_2d.lammpstrj id type x y xu yu mux muy muz fx fy fz
|
||||||
|
dump_modify 1 first yes sort id
|
||||||
|
|
||||||
timestep 0.00001
|
timestep 0.00001
|
||||||
thermo 1000
|
thermo 1000
|
||||||
@ -105,7 +106,7 @@ thermo 1000
|
|||||||
# main run
|
# main run
|
||||||
run 120000
|
run 120000
|
||||||
WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (src/comm_brick.cpp:167)
|
WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (src/comm_brick.cpp:167)
|
||||||
Per MPI rank memory allocation (min/avg/max) = 4.664 | 4.664 | 4.664 Mbytes
|
Per MPI rank memory allocation (min/avg/max) = 6.113 | 6.113 | 6.113 Mbytes
|
||||||
Step Temp E_pair c_msd[1] c_msd[2] c_msd[3] c_msd[4] c_press
|
Step Temp E_pair c_msd[1] c_msd[2] c_msd[3] c_msd[4] c_press
|
||||||
0 7.3671759e+10 0 0 0 0 0 0
|
0 7.3671759e+10 0 0 0 0 0 0
|
||||||
1000 710744.42 0 0.1332856 0.13577642 0 0.26906203 0
|
1000 710744.42 0 0.1332856 0.13577642 0 0.26906203 0
|
||||||
@ -228,20 +229,20 @@ Step Temp E_pair c_msd[1] c_msd[2] c_msd[3] c_msd[4] c_press
|
|||||||
118000 745594.37 0 16.838659 17.585392 0 34.424052 0
|
118000 745594.37 0 16.838659 17.585392 0 34.424052 0
|
||||||
119000 714487.42 0 17.064214 17.743478 0 34.807692 0
|
119000 714487.42 0 17.064214 17.743478 0 34.807692 0
|
||||||
120000 716557.14 0 17.105558 17.845925 0 34.951483 0
|
120000 716557.14 0 17.105558 17.845925 0 34.951483 0
|
||||||
Loop time of 27.2068 on 1 procs for 120000 steps with 1024 atoms
|
Loop time of 28.1507 on 1 procs for 120000 steps with 1024 atoms
|
||||||
|
|
||||||
Performance: 3810.806 tau/day, 4410.656 timesteps/s
|
Performance: 3683.037 tau/day, 4262.774 timesteps/s
|
||||||
100.0% CPU use with 1 MPI tasks x 1 OpenMP threads
|
99.9% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
MPI task timing breakdown:
|
MPI task timing breakdown:
|
||||||
Section | min time | avg time | max time |%varavg| %total
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
---------------------------------------------------------------
|
---------------------------------------------------------------
|
||||||
Pair | 0 | 0 | 0 | 0.0 | 0.00
|
Pair | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
Neigh | 0.0015633 | 0.0015633 | 0.0015633 | 0.0 | 0.01
|
Neigh | 0.0016237 | 0.0016237 | 0.0016237 | 0.0 | 0.01
|
||||||
Comm | 0.021682 | 0.021682 | 0.021682 | 0.0 | 0.08
|
Comm | 0.027064 | 0.027064 | 0.027064 | 0.0 | 0.10
|
||||||
Output | 0.0032539 | 0.0032539 | 0.0032539 | 0.0 | 0.01
|
Output | 0.1712 | 0.1712 | 0.1712 | 0.0 | 0.61
|
||||||
Modify | 26.802 | 26.802 | 26.802 | 0.0 | 98.51
|
Modify | 27.545 | 27.545 | 27.545 | 0.0 | 97.85
|
||||||
Other | | 0.3781 | | | 1.39
|
Other | | 0.4062 | | | 1.44
|
||||||
|
|
||||||
Nlocal: 1024.00 ave 1024 max 1024 min
|
Nlocal: 1024.00 ave 1024 max 1024 min
|
||||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
@ -256,4 +257,4 @@ Neighbor list builds = 1049
|
|||||||
Dangerous builds = 0
|
Dangerous builds = 0
|
||||||
|
|
||||||
|
|
||||||
Total wall time: 0:00:38
|
Total wall time: 0:00:39
|
||||||
@ -17,7 +17,7 @@
|
|||||||
Contributing author: Sam Cameron (University of Bristol)
|
Contributing author: Sam Cameron (University of Bristol)
|
||||||
------------------------------------------------------------------------- */
|
------------------------------------------------------------------------- */
|
||||||
|
|
||||||
#include "fix_bd_asphere.h"
|
#include "fix_brownian_asphere.h"
|
||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
@ -42,7 +42,7 @@ enum{NODIPOLE,DIPOLE};
|
|||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
FixBdAsphere::FixBdAsphere(LAMMPS *lmp, int narg, char **arg) :
|
FixBrownianAsphere::FixBrownianAsphere(LAMMPS *lmp, int narg, char **arg) :
|
||||||
Fix(lmp, narg, arg)
|
Fix(lmp, narg, arg)
|
||||||
{
|
{
|
||||||
virial_flag = 1;
|
virial_flag = 1;
|
||||||
@ -53,34 +53,34 @@ FixBdAsphere::FixBdAsphere(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
|
|
||||||
|
|
||||||
if (narg > 11 || narg < 8 )
|
if (narg > 11 || narg < 8 )
|
||||||
error->all(FLERR,"Illegal fix bd/asphere command.");
|
error->all(FLERR,"Illegal fix brownian/asphere command.");
|
||||||
|
|
||||||
if (!atom->sphere_flag)
|
if (!atom->sphere_flag)
|
||||||
error->all(FLERR,"Fix bd/asphere requires atom style sphere");
|
error->all(FLERR,"Fix brownian/asphere requires atom style sphere");
|
||||||
|
|
||||||
gamma_t = utils::numeric(FLERR,arg[3],false,lmp);
|
gamma_t = utils::numeric(FLERR,arg[3],false,lmp);
|
||||||
if (gamma_t <= 0.0)
|
if (gamma_t <= 0.0)
|
||||||
error->all(FLERR,"Fix bd/asphere translational viscous drag "
|
error->all(FLERR,"Fix brownian/asphere translational viscous drag "
|
||||||
"coefficient must be > 0.");
|
"coefficient must be > 0.");
|
||||||
|
|
||||||
gamma_r = utils::numeric(FLERR,arg[4],false,lmp);
|
gamma_r = utils::numeric(FLERR,arg[4],false,lmp);
|
||||||
if (gamma_t <= 0.0)
|
if (gamma_t <= 0.0)
|
||||||
error->all(FLERR,"Fix bd/asphere rotational viscous drag "
|
error->all(FLERR,"Fix brownian/asphere rotational viscous drag "
|
||||||
"coefficient must be > 0.");
|
"coefficient must be > 0.");
|
||||||
|
|
||||||
|
|
||||||
diff_t = utils::numeric(FLERR,arg[5],false,lmp);
|
diff_t = utils::numeric(FLERR,arg[5],false,lmp);
|
||||||
if (diff_t <= 0.0)
|
if (diff_t <= 0.0)
|
||||||
error->all(FLERR,"Fix bd/asphere translational diffusion "
|
error->all(FLERR,"Fix brownian/asphere translational diffusion "
|
||||||
"coefficient must be > 0.");
|
"coefficient must be > 0.");
|
||||||
|
|
||||||
diff_r = utils::numeric(FLERR,arg[6],false,lmp);
|
diff_r = utils::numeric(FLERR,arg[6],false,lmp);
|
||||||
if (diff_r <= 0.0)
|
if (diff_r <= 0.0)
|
||||||
error->all(FLERR,"Fix bd/asphere rotational diffusion "
|
error->all(FLERR,"Fix brownian/asphere rotational diffusion "
|
||||||
"coefficient must be > 0.");
|
"coefficient must be > 0.");
|
||||||
|
|
||||||
seed = utils::inumeric(FLERR,arg[7],false,lmp);
|
seed = utils::inumeric(FLERR,arg[7],false,lmp);
|
||||||
if (seed <= 0) error->all(FLERR,"Fix bd/asphere seed must be > 0.");
|
if (seed <= 0) error->all(FLERR,"Fix brownian/asphere seed must be > 0.");
|
||||||
|
|
||||||
noise_flag = 1;
|
noise_flag = 1;
|
||||||
gaussian_noise_flag = 0;
|
gaussian_noise_flag = 0;
|
||||||
@ -90,7 +90,7 @@ FixBdAsphere::FixBdAsphere(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
while (iarg < narg) {
|
while (iarg < narg) {
|
||||||
if (strcmp(arg[iarg],"rng") == 0) {
|
if (strcmp(arg[iarg],"rng") == 0) {
|
||||||
if (narg == iarg + 1) {
|
if (narg == iarg + 1) {
|
||||||
error->all(FLERR,"Illegal fix/bd/asphere command.");
|
error->all(FLERR,"Illegal fix/brownian/asphere command.");
|
||||||
}
|
}
|
||||||
if (strcmp(arg[iarg + 1],"uniform") == 0) {
|
if (strcmp(arg[iarg + 1],"uniform") == 0) {
|
||||||
noise_flag = 1;
|
noise_flag = 1;
|
||||||
@ -100,19 +100,19 @@ FixBdAsphere::FixBdAsphere(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
} else if (strcmp(arg[iarg + 1],"none") == 0) {
|
} else if (strcmp(arg[iarg + 1],"none") == 0) {
|
||||||
noise_flag = 0;
|
noise_flag = 0;
|
||||||
} else {
|
} else {
|
||||||
error->all(FLERR,"Illegal fix/bd/asphere command.");
|
error->all(FLERR,"Illegal fix/brownian/asphere command.");
|
||||||
}
|
}
|
||||||
iarg = iarg + 2;
|
iarg = iarg + 2;
|
||||||
} else if (strcmp(arg[iarg],"dipole") == 0) {
|
} else if (strcmp(arg[iarg],"dipole") == 0) {
|
||||||
dipole_flag = DIPOLE;
|
dipole_flag = DIPOLE;
|
||||||
iarg = iarg + 1;
|
iarg = iarg + 1;
|
||||||
} else {
|
} else {
|
||||||
error->all(FLERR,"Illegal fix/bd/asphere command.");
|
error->all(FLERR,"Illegal fix/brownian/asphere command.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dipole_flag == DIPOLE && !atom->mu_flag)
|
if (dipole_flag == DIPOLE && !atom->mu_flag)
|
||||||
error->all(FLERR,"Fix bd/asphere dipole requires atom attribute mu");
|
error->all(FLERR,"Fix brownian/asphere dipole requires atom attribute mu");
|
||||||
|
|
||||||
// initialize Marsaglia RNG with processor-unique seed
|
// initialize Marsaglia RNG with processor-unique seed
|
||||||
random = new RanMars(lmp,seed + comm->me);
|
random = new RanMars(lmp,seed + comm->me);
|
||||||
@ -121,7 +121,7 @@ FixBdAsphere::FixBdAsphere(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
int FixBdAsphere::setmask()
|
int FixBrownianAsphere::setmask()
|
||||||
{
|
{
|
||||||
int mask = 0;
|
int mask = 0;
|
||||||
mask |= INITIAL_INTEGRATE;
|
mask |= INITIAL_INTEGRATE;
|
||||||
@ -131,7 +131,7 @@ int FixBdAsphere::setmask()
|
|||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
FixBdAsphere::~FixBdAsphere()
|
FixBrownianAsphere::~FixBrownianAsphere()
|
||||||
{
|
{
|
||||||
delete random;
|
delete random;
|
||||||
}
|
}
|
||||||
@ -140,13 +140,13 @@ FixBdAsphere::~FixBdAsphere()
|
|||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
void FixBdAsphere::init()
|
void FixBrownianAsphere::init()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
avec = (AtomVecEllipsoid *) atom->style_match("ellipsoid");
|
avec = (AtomVecEllipsoid *) atom->style_match("ellipsoid");
|
||||||
if (!avec)
|
if (!avec)
|
||||||
error->all(FLERR,"Compute bd/asphere requires "
|
error->all(FLERR,"Compute brownian/asphere requires "
|
||||||
"atom style ellipsoid");
|
"atom style ellipsoid");
|
||||||
|
|
||||||
// check that all particles are finite-size ellipsoids
|
// check that all particles are finite-size ellipsoids
|
||||||
@ -159,7 +159,7 @@ void FixBdAsphere::init()
|
|||||||
for (int i = 0; i < nlocal; i++)
|
for (int i = 0; i < nlocal; i++)
|
||||||
if (mask[i] & groupbit)
|
if (mask[i] & groupbit)
|
||||||
if (ellipsoid[i] < 0)
|
if (ellipsoid[i] < 0)
|
||||||
error->one(FLERR,"Fix bd/asphere requires extended particles");
|
error->one(FLERR,"Fix brownian/asphere requires extended particles");
|
||||||
|
|
||||||
|
|
||||||
if (dipole_flag == DIPOLE) {
|
if (dipole_flag == DIPOLE) {
|
||||||
@ -208,7 +208,7 @@ void FixBdAsphere::init()
|
|||||||
sqrtdt = sqrt(dt);
|
sqrtdt = sqrt(dt);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FixBdAsphere::setup(int vflag)
|
void FixBrownianAsphere::setup(int vflag)
|
||||||
{
|
{
|
||||||
post_force(vflag);
|
post_force(vflag);
|
||||||
}
|
}
|
||||||
@ -216,7 +216,7 @@ void FixBdAsphere::setup(int vflag)
|
|||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
|
||||||
void FixBdAsphere::initial_integrate(int /* vflag */)
|
void FixBrownianAsphere::initial_integrate(int /* vflag */)
|
||||||
{
|
{
|
||||||
double **x = atom->x;
|
double **x = atom->x;
|
||||||
double **v = atom->v;
|
double **v = atom->v;
|
||||||
@ -313,7 +313,7 @@ void FixBdAsphere::initial_integrate(int /* vflag */)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FixBdAsphere::update_x_and_omega(double *x, double *v, double *omega,
|
void FixBrownianAsphere::update_x_and_omega(double *x, double *v, double *omega,
|
||||||
double *f, double *torque, int d3rot)
|
double *f, double *torque, int d3rot)
|
||||||
{
|
{
|
||||||
double dx, dy, dz;
|
double dx, dy, dz;
|
||||||
@ -341,7 +341,7 @@ void FixBdAsphere::update_x_and_omega(double *x, double *v, double *omega,
|
|||||||
apply random force, stolen from MISC/fix_efield.cpp
|
apply random force, stolen from MISC/fix_efield.cpp
|
||||||
------------------------------------------------------------------------- */
|
------------------------------------------------------------------------- */
|
||||||
|
|
||||||
void FixBdAsphere::post_force(int vflag)
|
void FixBrownianAsphere::post_force(int vflag)
|
||||||
{
|
{
|
||||||
double **f = atom->f;
|
double **f = atom->f;
|
||||||
double **x = atom->x;
|
double **x = atom->x;
|
||||||
@ -384,7 +384,7 @@ void FixBdAsphere::post_force(int vflag)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void FixBdAsphere::reset_dt()
|
void FixBrownianAsphere::reset_dt()
|
||||||
{
|
{
|
||||||
|
|
||||||
dt = update->dt;
|
dt = update->dt;
|
||||||
@ -13,21 +13,21 @@
|
|||||||
|
|
||||||
#ifdef FIX_CLASS
|
#ifdef FIX_CLASS
|
||||||
|
|
||||||
FixStyle(bd/asphere,FixBdAsphere)
|
FixStyle(brownian/asphere,FixBrownianAsphere)
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#ifndef LMP_FIX_BD_ASPHERE_H
|
#ifndef LMP_FIX_BROWNIAN_ASPHERE_H
|
||||||
#define LMP_FIX_BD_ASPHERE_H
|
#define LMP_FIX_BROWNIAN_ASPHERE_H
|
||||||
|
|
||||||
#include "fix.h"
|
#include "fix.h"
|
||||||
|
|
||||||
namespace LAMMPS_NS {
|
namespace LAMMPS_NS {
|
||||||
|
|
||||||
class FixBdAsphere : public Fix {
|
class FixBrownianAsphere : public Fix {
|
||||||
public:
|
public:
|
||||||
FixBdAsphere(class LAMMPS *, int, char **);
|
FixBrownianAsphere(class LAMMPS *, int, char **);
|
||||||
virtual ~FixBdAsphere();
|
virtual ~FixBrownianAsphere();
|
||||||
void init();
|
void init();
|
||||||
void initial_integrate(int);
|
void initial_integrate(int);
|
||||||
void setup(int);
|
void setup(int);
|
||||||
@ -66,38 +66,38 @@ protected:
|
|||||||
|
|
||||||
/* ERROR/WARNING messages:
|
/* ERROR/WARNING messages:
|
||||||
|
|
||||||
E: Illegal fix bd/asphere command.
|
E: Illegal fix brownian/asphere command.
|
||||||
|
|
||||||
Wrong number/type of input arguments.
|
Wrong number/type of input arguments.
|
||||||
|
|
||||||
E: Compute bd/asphere requires atom style sphere
|
E: Compute brownian/asphere requires atom style sphere
|
||||||
|
|
||||||
Self-explanatory.
|
Self-explanatory.
|
||||||
|
|
||||||
E: Compute bd/asphere requires atom style ellipsoid
|
E: Compute brownian/asphere requires atom style ellipsoid
|
||||||
|
|
||||||
Self-explanatory.
|
Self-explanatory.
|
||||||
|
|
||||||
E: Compute bd/asphere dipole requires atom attribute mu
|
E: Compute brownian/asphere dipole requires atom attribute mu
|
||||||
|
|
||||||
Self-explanatory.
|
Self-explanatory.
|
||||||
|
|
||||||
E: Fix bd/asphere translational viscous drag coefficient must be > 0.
|
E: Fix brownian/asphere translational viscous drag coefficient must be > 0.
|
||||||
|
|
||||||
Self-explanatory.
|
Self-explanatory.
|
||||||
|
|
||||||
E: Fix bd/asphere rotational viscous drag coefficient must be > 0.
|
E: Fix brownian/asphere rotational viscous drag coefficient must be > 0.
|
||||||
|
|
||||||
Self-explanatory.
|
Self-explanatory.
|
||||||
|
|
||||||
E: Fix bd/asphere translational diffusion coefficient must be > 0.
|
E: Fix brownian/asphere translational diffusion coefficient must be > 0.
|
||||||
|
|
||||||
Self-explanatory.
|
Self-explanatory.
|
||||||
|
|
||||||
E: Fix bd/asphere rotational diffusion coefficient must be > 0.
|
E: Fix brownian/asphere rotational diffusion coefficient must be > 0.
|
||||||
|
|
||||||
Self-explanatory.
|
Self-explanatory.
|
||||||
|
|
||||||
E: Fix bd/asphere seed must be > 0.
|
E: Fix brownian/asphere seed must be > 0.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
@ -17,7 +17,7 @@
|
|||||||
Contributing author: Sam Cameron (University of Bristol)
|
Contributing author: Sam Cameron (University of Bristol)
|
||||||
------------------------------------------------------------------------- */
|
------------------------------------------------------------------------- */
|
||||||
|
|
||||||
#include "fix_bd_sphere.h"
|
#include "fix_brownian_sphere.h"
|
||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
@ -41,7 +41,7 @@ enum{NONE,DIPOLE};
|
|||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
FixBdSphere::FixBdSphere(LAMMPS *lmp, int narg, char **arg) :
|
FixBrownianSphere::FixBrownianSphere(LAMMPS *lmp, int narg, char **arg) :
|
||||||
Fix(lmp, narg, arg)
|
Fix(lmp, narg, arg)
|
||||||
{
|
{
|
||||||
virial_flag = 1;
|
virial_flag = 1;
|
||||||
@ -51,34 +51,34 @@ FixBdSphere::FixBdSphere(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
extra = NONE;
|
extra = NONE;
|
||||||
|
|
||||||
if (narg > 11 || narg < 8 )
|
if (narg > 11 || narg < 8 )
|
||||||
error->all(FLERR,"Illegal fix bd/sphere command.");
|
error->all(FLERR,"Illegal fix brownian/sphere command.");
|
||||||
|
|
||||||
if (!atom->sphere_flag)
|
if (!atom->sphere_flag)
|
||||||
error->all(FLERR,"Fix bd/sphere requires atom style sphere");
|
error->all(FLERR,"Fix brownian/sphere requires atom style sphere");
|
||||||
|
|
||||||
gamma_t = utils::numeric(FLERR,arg[3],false,lmp);
|
gamma_t = utils::numeric(FLERR,arg[3],false,lmp);
|
||||||
if (gamma_t <= 0.0)
|
if (gamma_t <= 0.0)
|
||||||
error->all(FLERR,"Fix bd/sphere translational viscous drag "
|
error->all(FLERR,"Fix brownian/sphere translational viscous drag "
|
||||||
"coefficient must be > 0.");
|
"coefficient must be > 0.");
|
||||||
|
|
||||||
gamma_r = utils::numeric(FLERR,arg[4],false,lmp);
|
gamma_r = utils::numeric(FLERR,arg[4],false,lmp);
|
||||||
if (gamma_t <= 0.0)
|
if (gamma_t <= 0.0)
|
||||||
error->all(FLERR,"Fix bd/sphere rotational viscous drag "
|
error->all(FLERR,"Fix brownian/sphere rotational viscous drag "
|
||||||
"coefficient must be > 0.");
|
"coefficient must be > 0.");
|
||||||
|
|
||||||
|
|
||||||
diff_t = utils::numeric(FLERR,arg[5],false,lmp);
|
diff_t = utils::numeric(FLERR,arg[5],false,lmp);
|
||||||
if (diff_t <= 0.0)
|
if (diff_t <= 0.0)
|
||||||
error->all(FLERR,"Fix bd/sphere translational diffusion "
|
error->all(FLERR,"Fix brownian/sphere translational diffusion "
|
||||||
"coefficient must be > 0.");
|
"coefficient must be > 0.");
|
||||||
|
|
||||||
diff_r = utils::numeric(FLERR,arg[6],false,lmp);
|
diff_r = utils::numeric(FLERR,arg[6],false,lmp);
|
||||||
if (diff_r <= 0.0)
|
if (diff_r <= 0.0)
|
||||||
error->all(FLERR,"Fix bd/sphere rotational diffusion "
|
error->all(FLERR,"Fix brownian/sphere rotational diffusion "
|
||||||
"coefficient must be > 0.");
|
"coefficient must be > 0.");
|
||||||
|
|
||||||
seed = utils::inumeric(FLERR,arg[7],false,lmp);
|
seed = utils::inumeric(FLERR,arg[7],false,lmp);
|
||||||
if (seed <= 0) error->all(FLERR,"Fix bd/sphere seed must be > 0.");
|
if (seed <= 0) error->all(FLERR,"Fix brownian/sphere seed must be > 0.");
|
||||||
|
|
||||||
noise_flag = 1;
|
noise_flag = 1;
|
||||||
gaussian_noise_flag = 0;
|
gaussian_noise_flag = 0;
|
||||||
@ -88,7 +88,7 @@ FixBdSphere::FixBdSphere(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
while (iarg < narg) {
|
while (iarg < narg) {
|
||||||
if (strcmp(arg[iarg],"rng") == 0) {
|
if (strcmp(arg[iarg],"rng") == 0) {
|
||||||
if (narg == iarg + 1) {
|
if (narg == iarg + 1) {
|
||||||
error->all(FLERR,"Illegal fix/bd/sphere command.");
|
error->all(FLERR,"Illegal fix/brownian/sphere command.");
|
||||||
}
|
}
|
||||||
if (strcmp(arg[iarg + 1],"uniform") == 0) {
|
if (strcmp(arg[iarg + 1],"uniform") == 0) {
|
||||||
noise_flag = 1;
|
noise_flag = 1;
|
||||||
@ -98,19 +98,19 @@ FixBdSphere::FixBdSphere(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
} else if (strcmp(arg[iarg + 1],"none") == 0) {
|
} else if (strcmp(arg[iarg + 1],"none") == 0) {
|
||||||
noise_flag = 0;
|
noise_flag = 0;
|
||||||
} else {
|
} else {
|
||||||
error->all(FLERR,"Illegal fix/bd/sphere command.");
|
error->all(FLERR,"Illegal fix/brownian/sphere command.");
|
||||||
}
|
}
|
||||||
iarg = iarg + 2;
|
iarg = iarg + 2;
|
||||||
} else if (strcmp(arg[iarg],"dipole") == 0) {
|
} else if (strcmp(arg[iarg],"dipole") == 0) {
|
||||||
extra = DIPOLE;
|
extra = DIPOLE;
|
||||||
iarg = iarg + 1;
|
iarg = iarg + 1;
|
||||||
} else {
|
} else {
|
||||||
error->all(FLERR,"Illegal fix/bd/sphere command.");
|
error->all(FLERR,"Illegal fix/brownian/sphere command.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (extra == DIPOLE && !atom->mu_flag)
|
if (extra == DIPOLE && !atom->mu_flag)
|
||||||
error->all(FLERR,"Fix bd/sphere update dipole requires atom attribute mu");
|
error->all(FLERR,"Fix brownian/sphere update dipole requires atom attribute mu");
|
||||||
|
|
||||||
// initialize Marsaglia RNG with processor-unique seed
|
// initialize Marsaglia RNG with processor-unique seed
|
||||||
random = new RanMars(lmp,seed + comm->me);
|
random = new RanMars(lmp,seed + comm->me);
|
||||||
@ -119,7 +119,7 @@ FixBdSphere::FixBdSphere(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
int FixBdSphere::setmask()
|
int FixBrownianSphere::setmask()
|
||||||
{
|
{
|
||||||
int mask = 0;
|
int mask = 0;
|
||||||
mask |= INITIAL_INTEGRATE;
|
mask |= INITIAL_INTEGRATE;
|
||||||
@ -129,7 +129,7 @@ int FixBdSphere::setmask()
|
|||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
FixBdSphere::~FixBdSphere()
|
FixBrownianSphere::~FixBrownianSphere()
|
||||||
{
|
{
|
||||||
delete random;
|
delete random;
|
||||||
}
|
}
|
||||||
@ -138,7 +138,7 @@ FixBdSphere::~FixBdSphere()
|
|||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
void FixBdSphere::init()
|
void FixBrownianSphere::init()
|
||||||
{
|
{
|
||||||
|
|
||||||
g1 = force->ftm2v/gamma_t;
|
g1 = force->ftm2v/gamma_t;
|
||||||
@ -161,14 +161,14 @@ void FixBdSphere::init()
|
|||||||
sqrtdt = sqrt(dt);
|
sqrtdt = sqrt(dt);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FixBdSphere::setup(int vflag)
|
void FixBrownianSphere::setup(int vflag)
|
||||||
{
|
{
|
||||||
post_force(vflag);
|
post_force(vflag);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
void FixBdSphere::initial_integrate(int /* vflag */)
|
void FixBrownianSphere::initial_integrate(int /* vflag */)
|
||||||
{
|
{
|
||||||
double **x = atom->x;
|
double **x = atom->x;
|
||||||
double **v = atom->v;
|
double **v = atom->v;
|
||||||
@ -270,7 +270,7 @@ void FixBdSphere::initial_integrate(int /* vflag */)
|
|||||||
apply random force, stolen from MISC/fix_efield.cpp
|
apply random force, stolen from MISC/fix_efield.cpp
|
||||||
------------------------------------------------------------------------- */
|
------------------------------------------------------------------------- */
|
||||||
|
|
||||||
void FixBdSphere::post_force(int vflag)
|
void FixBrownianSphere::post_force(int vflag)
|
||||||
{
|
{
|
||||||
double **f = atom->f;
|
double **f = atom->f;
|
||||||
double **x = atom->x;
|
double **x = atom->x;
|
||||||
@ -313,7 +313,7 @@ void FixBdSphere::post_force(int vflag)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void FixBdSphere::reset_dt()
|
void FixBrownianSphere::reset_dt()
|
||||||
{
|
{
|
||||||
|
|
||||||
dt = update->dt;
|
dt = update->dt;
|
||||||
@ -13,21 +13,21 @@
|
|||||||
|
|
||||||
#ifdef FIX_CLASS
|
#ifdef FIX_CLASS
|
||||||
|
|
||||||
FixStyle(bd/sphere,FixBdSphere)
|
FixStyle(brownian/sphere,FixBrownianSphere)
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#ifndef LMP_FIX_BD_SPHERE_H
|
#ifndef LMP_FIX_BROWNIAN_SPHERE_H
|
||||||
#define LMP_FIX_BD_SPHERE_H
|
#define LMP_FIX_BROWNIAN_SPHERE_H
|
||||||
|
|
||||||
#include "fix.h"
|
#include "fix.h"
|
||||||
|
|
||||||
namespace LAMMPS_NS {
|
namespace LAMMPS_NS {
|
||||||
|
|
||||||
class FixBdSphere : public Fix {
|
class FixBrownianSphere : public Fix {
|
||||||
public:
|
public:
|
||||||
FixBdSphere(class LAMMPS *, int, char **);
|
FixBrownianSphere(class LAMMPS *, int, char **);
|
||||||
virtual ~FixBdSphere();
|
virtual ~FixBrownianSphere();
|
||||||
void init();
|
void init();
|
||||||
void initial_integrate(int);
|
void initial_integrate(int);
|
||||||
void setup(int);
|
void setup(int);
|
||||||
@ -61,34 +61,34 @@ protected:
|
|||||||
|
|
||||||
/* ERROR/WARNING messages:
|
/* ERROR/WARNING messages:
|
||||||
|
|
||||||
E: Illegal fix bd/sphere command.
|
E: Illegal fix brownian/sphere command.
|
||||||
|
|
||||||
Wrong number/type of input arguments.
|
Wrong number/type of input arguments.
|
||||||
|
|
||||||
E: Compute bd/sphere requires atom style sphere
|
E: Compute brownian/sphere requires atom style sphere
|
||||||
|
|
||||||
Self-explanatory.
|
Self-explanatory.
|
||||||
|
|
||||||
E: Compute bd/sphere requires atom attribute mu
|
E: Compute brownian/sphere requires atom attribute mu
|
||||||
|
|
||||||
Self-explanatory.
|
Self-explanatory.
|
||||||
|
|
||||||
E: Fix bd/sphere translational viscous drag coefficient must be > 0.
|
E: Fix brownian/sphere translational viscous drag coefficient must be > 0.
|
||||||
|
|
||||||
Self-explanatory.
|
Self-explanatory.
|
||||||
|
|
||||||
E: Fix bd/sphere rotational viscous drag coefficient must be > 0.
|
E: Fix brownian/sphere rotational viscous drag coefficient must be > 0.
|
||||||
|
|
||||||
Self-explanatory.
|
Self-explanatory.
|
||||||
|
|
||||||
E: Fix bd/sphere translational diffusion coefficient must be > 0.
|
E: Fix brownian/sphere translational diffusion coefficient must be > 0.
|
||||||
|
|
||||||
Self-explanatory.
|
Self-explanatory.
|
||||||
|
|
||||||
E: Fix bd/sphere rotational diffusion coefficient must be > 0.
|
E: Fix brownian/sphere rotational diffusion coefficient must be > 0.
|
||||||
|
|
||||||
Self-explanatory.
|
Self-explanatory.
|
||||||
|
|
||||||
E: Fix bd/sphere seed must be > 0.
|
E: Fix brownian/sphere seed must be > 0.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
@ -53,8 +53,6 @@ dihedral_style table/cut, Mike Salerno, ksalerno@pha.jhu.edu, 11 May 18
|
|||||||
fix accelerate/cos, Zheng Gong (ENS de Lyon), z.gong@outlook.com, 24 Apr 20
|
fix accelerate/cos, Zheng Gong (ENS de Lyon), z.gong@outlook.com, 24 Apr 20
|
||||||
fix addtorque, Laurent Joly (U Lyon), ljoly.ulyon at gmail.com, 8 Aug 11
|
fix addtorque, Laurent Joly (U Lyon), ljoly.ulyon at gmail.com, 8 Aug 11
|
||||||
fix ave/correlate/long, Jorge Ramirez (UPM Madrid), jorge.ramirez at upm.es, 21 Oct 2015
|
fix ave/correlate/long, Jorge Ramirez (UPM Madrid), jorge.ramirez at upm.es, 21 Oct 2015
|
||||||
fix bd/sphere, Sam Cameron (U of Bristol), samuel.j.m.cameron at gmail.com, 13 Dec 2020
|
|
||||||
fix bd/asphere, Sam Cameron (U of Bristol), samuel.j.m.cameron at gmail.com, 13 Dec 2020
|
|
||||||
fix electron/stopping/fit, James Stewart (SNL), jstewa .at. sandia.gov, 23 Sep 2020
|
fix electron/stopping/fit, James Stewart (SNL), jstewa .at. sandia.gov, 23 Sep 2020
|
||||||
fix electron/stopping, Konstantin Avchaciov, k.avchachov at gmail.com, 26 Feb 2019
|
fix electron/stopping, Konstantin Avchaciov, k.avchachov at gmail.com, 26 Feb 2019
|
||||||
fix ffl, David Wilkins (EPFL Lausanne), david.wilkins @ epfl.ch, 28 Sep 2018
|
fix ffl, David Wilkins (EPFL Lausanne), david.wilkins @ epfl.ch, 28 Sep 2018
|
||||||
|
|||||||
@ -4,12 +4,12 @@ date_generated: Tue Dec 08 12:28:40 2020
|
|||||||
epsilon: 1e-12
|
epsilon: 1e-12
|
||||||
prerequisites: ! |
|
prerequisites: ! |
|
||||||
atom hybrid dipole sphere
|
atom hybrid dipole sphere
|
||||||
fix bd_sphere
|
fix brownian/sphere
|
||||||
pre_commands: ! ""
|
pre_commands: ! ""
|
||||||
post_commands: ! |
|
post_commands: ! |
|
||||||
fix test solute bd_sphere 1.0 1.0 1.0 1.0 1049270 dipole
|
fix test solute brownian/sphere 1.0 1.0 1.0 1.0 1049270 dipole
|
||||||
fix_modify test virial yes
|
fix_modify test virial yes
|
||||||
input_file: in.bdsphere
|
input_file: in.brownian
|
||||||
natoms: 32
|
natoms: 32
|
||||||
run_pos: ! |2
|
run_pos: ! |2
|
||||||
1 0.8198132185477983 -1.5120221815010249 1.069236010215717
|
1 0.8198132185477983 -1.5120221815010249 1.069236010215717
|
||||||
@ -2,7 +2,7 @@ variable newton_pair index on
|
|||||||
variable newton_bond index on
|
variable newton_bond index on
|
||||||
variable units index lj
|
variable units index lj
|
||||||
variable input_dir index .
|
variable input_dir index .
|
||||||
variable data_file index ${input_dir}/data.bdsphere
|
variable data_file index ${input_dir}/data.brownian
|
||||||
variable pair_style index 'zero 8.0'
|
variable pair_style index 'zero 8.0'
|
||||||
|
|
||||||
atom_style hybrid dipole sphere
|
atom_style hybrid dipole sphere
|
||||||
Reference in New Issue
Block a user