forked from lijiext/lammps
USER-DPD: Added support to use VV integrator with USER-DPD if desired.
Includes documentation and examples. NOTE: VV requires very small timesteps under isoenergetic conditions. Consider using fix_shardlow instead, since this VV support is primarily for comparison purposes.
This commit is contained in:
parent
e9fed80928
commit
e27ed6c94a
Binary file not shown.
Before Width: | Height: | Size: 1.6 KiB |
|
@ -1,9 +0,0 @@
|
|||
\documentclass[12pt]{article}
|
||||
\pagestyle{empty}
|
||||
\begin{document}
|
||||
|
||||
$$
|
||||
F^C = A \omega_{ij} \qquad \qquad r_{ij} < r_c
|
||||
$$
|
||||
|
||||
\end{document}
|
Binary file not shown.
After Width: | Height: | Size: 25 KiB |
|
@ -0,0 +1,12 @@
|
|||
\documentclass[12pt]{article}
|
||||
\pagestyle{empty}
|
||||
\begin{document}
|
||||
|
||||
\begin{eqnarray*}
|
||||
du_{i}^{cond} & = & \kappa_{ij}(\frac{1}{\theta_{i}}-\frac{1}{\theta_{j}})\omega_{ij}^{2} + \alpha_{ij}\omega_{ij}\zeta_{ij}^{q}(\Delta{t})^{-1/2} \\
|
||||
du_{i}^{mech} & = & -\frac{1}{2}\gamma_{ij}\omega_{ij}^{2}(\frac{\vec{r_{ij}}}{r_{ij}}\bullet\vec{v_{ij}})^{2} -
|
||||
\frac{\sigma^{2}_{ij}}{4}(\frac{1}{m_{i}}+\frac{1}{m_{j}})\omega_{ij}^{2} -
|
||||
\frac{1}{2}\sigma_{ij}\omega_{ij}(\frac{\vec{r_{ij}}}{r_{ij}}\bullet\vec{v_{ij}})\zeta_{ij}(\Delta{t})^{-1/2} \\
|
||||
\end{eqnarray*}
|
||||
|
||||
\end{document}
|
Binary file not shown.
After Width: | Height: | Size: 8.7 KiB |
|
@ -0,0 +1,11 @@
|
|||
\documentclass[12pt]{article}
|
||||
\pagestyle{empty}
|
||||
\begin{document}
|
||||
|
||||
\begin{eqnarray*}
|
||||
\alpha_{ij}^{2} & = & 2k_{B}\kappa_{ij} \\
|
||||
\sigma^{2}_{ij} & = & 2\gamma_{ij}k_{B}\Theta_{ij} \\
|
||||
\Theta_{ij}^{-1} & = & \frac{1}{2}(\frac{1}{\theta_{i}}+\frac{1}{\theta_{j}}) \\
|
||||
\end{eqnarray*}
|
||||
|
||||
\end{document}
|
|
@ -0,0 +1,83 @@
|
|||
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:link(lws,http://lammps.sandia.gov)
|
||||
:link(ld,Manual.html)
|
||||
:link(lc,Section_commands.html#comm)
|
||||
|
||||
:line
|
||||
|
||||
fix dpd/energy command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
fix ID group-ID dpd/energy :pre
|
||||
|
||||
ID, group-ID are documented in "fix"_fix.html command
|
||||
dpd/energy = style name of this fix command :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
fix 1 all dpd/energy :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Perform constant energy dissipative particle dynamics (DPD-E) integration.
|
||||
The fix {dpd/energy} updates the internal energies for particles in the group
|
||||
at each timestep. The fix {dpd/energy} must be used in conjunction with a
|
||||
deterministic integrator (e.g. "fix nve"_fix_nve.html) that updates
|
||||
the particle positions and velocities.
|
||||
|
||||
For fix {dpd/energy}, the particle internal temperature is related to
|
||||
the particle internal energy through a mesoparticle equation of state.
|
||||
An additional fix must be specified that defines the equation of state
|
||||
for each particle, e.g. "fix eos/cv"_fix_eos_cv.html.
|
||||
|
||||
The fix {dpd/energy} must be used with the "pair_style
|
||||
dpd/fdt/energy"_pair_style.html command.
|
||||
|
||||
Note that numerous variants of DPD can be specified by choosing an
|
||||
appropriate combination of the integrator and "pair_style
|
||||
dpd/fdt/energy"_pair_style.html command. DPD under isoenergetic conditions
|
||||
can be specified by using fix {dpd/energy}, fix {nve} and pair_style
|
||||
{dpd/fdt/energy}. DPD under isoenthalpic conditions can
|
||||
be specified by using fix {dpd/energy}, fix {nph} and pair_style
|
||||
{dpd/fdt/energy}. Examples of each DPD variant are provided in the
|
||||
examples/USER/dpd directory.
|
||||
|
||||
:line
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
This command is part of the USER-DPD package. It is only enabled if
|
||||
LAMMPS was built with that package. See the "Making
|
||||
LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
This fix must be used with an additional fix that specifies time
|
||||
integration, e.g. "fix nve"_fix_nve.html.
|
||||
|
||||
The fix {dpd/energy} requires the {dpd} "atom_style"_atom_style.html
|
||||
to be used in order to properly account for the particle internal
|
||||
energies and temperature.
|
||||
|
||||
The fix {dpd/energy} must be used with an additional fix that specifies the
|
||||
mesoparticle equation of state for each particle.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"fix nve"_fix_nve.html "fix eos/cv"_fix_eos_cv.html
|
||||
|
||||
[Default:] none
|
||||
|
||||
:line
|
||||
|
||||
:link(Lisal)
|
||||
[(Lisal)] M. Lisal, J.K. Brennan, J. Bonet Avalos, "Dissipative
|
||||
particle dynamics at isothermal, isobaric, isoenergetic, and
|
||||
isoenthalpic conditions using Shardlow-like splitting algorithms.",
|
||||
J. Chem. Phys., 135, 204105 (2011).
|
||||
|
||||
:link(Larentzos)
|
||||
[(Larentzos)] J.P. Larentzos, J.K. Brennan, J.D. Moore, and
|
||||
W.D. Mattson, "LAMMPS Implementation of Constant Energy Dissipative
|
||||
Particle Dynamics (DPD-E)", ARL-TR-6863, U.S. Army Research
|
||||
Laboratory, Aberdeen Proving Ground, MD (2014).
|
|
@ -33,78 +33,95 @@ pair_coeff * * 3.0 1.0 0.1 2.5 :pre
|
|||
|
||||
[Description:]
|
||||
|
||||
Styles {dpd/fdt} and {dpd/fdt/energy} set the fluctuation-dissipation
|
||||
theorem parameters and compute the conservative force for dissipative
|
||||
particle dynamics (DPD). The conservative force on atom I due to atom
|
||||
J is given by
|
||||
Styles {dpd/fdt} and {dpd/fdt/energy} compute the force for dissipative
|
||||
particle dynamics (DPD) simulations. The {dpd/fdt} style is used to
|
||||
perform DPD simulations under isothermal and isobaric conditions,
|
||||
while the {dpd/fdt/energy} style is used to perform DPD simulations
|
||||
under isoenergetic and isoenthalpic conditions (see "(Lisal)"_#Lisal).
|
||||
For DPD simulations in general, the force on atom I due to atom J is
|
||||
given as a sum of 3 terms
|
||||
|
||||
:c,image(Eqs/pair_dpd_conservative.jpg)
|
||||
:c,image(Eqs/pair_dpd.jpg)
|
||||
|
||||
where the weighting factor, omega_ij, varies between 0 and 1, and is
|
||||
chosen to have the following functional form:
|
||||
where Fc is a conservative force, Fd is a dissipative force, and Fr is
|
||||
a random force. Rij is a unit vector in the direction Ri - Rj, Vij is
|
||||
the vector difference in velocities of the two atoms = Vi - Vj, alpha
|
||||
is a Gaussian random number with zero mean and unit variance, dt is
|
||||
the timestep size, and w(r) is a weighting factor that varies between
|
||||
0 and 1. Rc is the cutoff. The weighting factor, omega_ij, varies
|
||||
between 0 and 1, and is chosen to have the following functional form:
|
||||
|
||||
:c,image(Eqs/pair_dpd_omega.jpg)
|
||||
|
||||
where Rij is a unit vector in the direction Ri - Rj, and Rc is the
|
||||
cutoff. Note that alternative definitions of the weighting function
|
||||
exist, but would have to be implemented as a separate pair style
|
||||
command.
|
||||
Note that alternative definitions of the weighting function exist, but
|
||||
would have to be implemented as a separate pair style command.
|
||||
|
||||
These pair style differ from the other dpd styles in that the
|
||||
dissipative and random forces are not computed within the pair style.
|
||||
This style can be combined with the "fix shardlow"_fix_shardlow.html
|
||||
to perform the stochastic integration of the dissipative and random
|
||||
forces through the Shardlow splitting algorithm approach.
|
||||
For style {dpd/fdt}, the fluctuation-dissipation theorem defines gamma
|
||||
to be set equal to sigma*sigma/(2 T), where T is the set point
|
||||
temperature specified as a pair style parameter in the above examples.
|
||||
The following coefficients must be defined for each pair of atoms types
|
||||
via the "pair_coeff"_pair_coeff.html command as in the examples above,
|
||||
or in the data file or restart files read by the
|
||||
"read_data"_read_data.html or "read_restart"_read_restart.html commands:
|
||||
|
||||
A (force units)
|
||||
sigma (force*time^(1/2) units)
|
||||
cutoff (distance units) :ul
|
||||
|
||||
The last coefficient is optional. If not specified, the global DPD
|
||||
cutoff is used.
|
||||
|
||||
Style {dpd/fdt/energy} is used to perform DPD simulations
|
||||
under isoenergetic and isoenthalpic conditions. The fluctuation-dissipation
|
||||
theorem defines gamma to be set equal to sigma*sigma/(2 dpdTheta), where
|
||||
dpdTheta is the average internal temperature for the pair. The particle
|
||||
internal temperature is related to the particle internal energy through
|
||||
a mesoparticle equation of state (see "fix eos"_fix.html). The
|
||||
differential internal conductive and mechanical energies are computed
|
||||
within style {dpd/fdt/energy} as:
|
||||
|
||||
:c,image(Eqs/pair_dpd_energy.jpg)
|
||||
|
||||
where
|
||||
|
||||
:c,image(Eqs/pair_dpd_energy_terms.jpg)
|
||||
|
||||
Zeta_ij^q is a second Gaussian random number with zero mean and unit
|
||||
variance that is used to compute the internal conductive energy. The
|
||||
fluctuation-dissipation theorem defines alpha*alpha to be set
|
||||
equal to 2*kB*kappa, where kappa is the mesoparticle thermal
|
||||
conductivity parameter. The following coefficients must be defined for
|
||||
each pair of atoms types via the "pair_coeff"_pair_coeff.html
|
||||
command as in the examples above, or in the data file or restart files
|
||||
read by the "read_data"_read_data.html or "read_restart"_read_restart.html
|
||||
commands:
|
||||
|
||||
A (force units)
|
||||
sigma (force*time^(1/2) units)
|
||||
kappa (energy*temperature/time units)
|
||||
cutoff (distance units) :ul
|
||||
|
||||
The last coefficient is optional. If not specified, the global DPD
|
||||
cutoff is used.
|
||||
|
||||
The pairwise energy associated with styles {dpd/fdt} and
|
||||
{dpd/fdt/energy} is only due to the conservative force term Fc, and is
|
||||
shifted to be zero at the cutoff distance Rc. The pairwise virial is
|
||||
calculated using only the conservative term.
|
||||
|
||||
For style {dpd/fdt}, the fluctuation-dissipation theorem defines gamma
|
||||
to be set equal to sigma*sigma/(2 T), where T is the set point
|
||||
temperature specified as a pair style parameter in the above examples.
|
||||
This style can be combined with "fix shardlow"_fix_shardlow.html to
|
||||
perform DPD simulations under isothermal and isobaric conditions (see
|
||||
"(Lisal)"_#Lisal). The following coefficients must be defined for
|
||||
each pair of atoms types via the "pair_coeff"_pair_coeff.html command
|
||||
as in the examples above, or in the data file or restart files read by
|
||||
the "read_data"_read_data.html or "read_restart"_read_restart.html
|
||||
commands:
|
||||
|
||||
A (force units)
|
||||
sigma (force*time^(1/2) units)
|
||||
cutoff (distance units) :ul
|
||||
|
||||
The last coefficient is optional. If not specified, the global DPD
|
||||
cutoff is used.
|
||||
|
||||
For style {dpd/fdt/energy}, the fluctuation-dissipation theorem
|
||||
defines gamma to be set equal to sigma*sigma/(2 dpdTheta), where
|
||||
dpdTheta is the average internal temperature for the pair.
|
||||
Furthermore, the fluctuation-dissipation defines alpha*alpha to be set
|
||||
equal to 2*kB*kappa, where kappa is the mesoparticle thermal
|
||||
conductivity parameter. This style can be combined with "fix
|
||||
shardlow"_fix_shardlow.html to perform DPD simulations under
|
||||
isoenergetic and isoenthalpic conditions (see "(Lisal)"_#Lisal). The
|
||||
following coefficients must be defined for each pair of atoms types
|
||||
via the "pair_coeff"_pair_coeff.html command as in the examples above,
|
||||
or in the data file or restart files read by the
|
||||
"read_data"_read_data.html or "read_restart"_read_restart.html
|
||||
commands:
|
||||
|
||||
A (force units)
|
||||
sigma (force*time^(1/2) units)
|
||||
kappa (1/time units)
|
||||
cutoff (distance units) :ul
|
||||
|
||||
The last coefficient is optional. If not specified, the global DPD
|
||||
cutoff is used.
|
||||
|
||||
For style {dpd/fdt/energy}, the particle internal temperature is
|
||||
related to the particle internal energy through a mesoparticle
|
||||
equation of state. Thus, an an additional "fix eos"_fix.html must be
|
||||
specified.
|
||||
The forces computed through the {dpd/fdt} and {dpd/fdt/energy} styles
|
||||
can be integrated with the velocity-Verlet integration scheme or the
|
||||
Shardlow splitting integration scheme described by "(Lisal)"_#Lisal.
|
||||
In the cases when these pair styles are combined with the
|
||||
"fix shardlow"_fix_shardlow.html, these pair styles differ from the
|
||||
other dpd styles in that the dissipative and random forces are split
|
||||
from the force calculation and are not computed within the pair style.
|
||||
Thus, only the conservative force is computed by the pair style,
|
||||
while the stochastic integration of the dissipative and random forces
|
||||
are handled through the Shardlow splitting algorithm approach. The
|
||||
Shardlow splitting algorithm is advantageous, especially when
|
||||
performing DPD under isoenergetic conditions, as it allows
|
||||
significantly larger timesteps to be taken.
|
||||
|
||||
:line
|
||||
|
||||
|
@ -115,7 +132,7 @@ enabled if LAMMPS was built with that package. See the "Making
|
|||
LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
Pair styles {dpd/fdt} and {dpd/fdt/energy} require use of the
|
||||
"comm_modify vel yes"_comm_modify.html option so that velocites are
|
||||
"communicate vel yes"_communicate.html option so that velocites are
|
||||
stored by ghost atoms.
|
||||
|
||||
Pair style {dpd/fdt/energy} requires "atom_style dpd"_atom_style.html
|
||||
|
@ -132,6 +149,6 @@ energies and temperatures.
|
|||
|
||||
:link(Lisal)
|
||||
[(Lisal)] M. Lisal, J.K. Brennan, J. Bonet Avalos, "Dissipative
|
||||
particle dynamics as isothermal, isobaric, isoenergetic, and
|
||||
particle dynamics at isothermal, isobaric, isoenergetic, and
|
||||
isoenthalpic conditions using Shardlow-like splitting algorithms.",
|
||||
J. Chem. Phys., 135, 204105 (2011).
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
This directory contains input files for DPD simulations under
|
||||
isothermal, isoenergetic, isobaric and isoenthalpic conditions. In
|
||||
addition, there is also an example for a reaction DPD simulation under
|
||||
isoenergetic conditions. All the DPD scenarios use the Shardlow
|
||||
splitting algorithm to integrate the equations of motion. The compute
|
||||
dpd command is used in the isoenergetic and isenthalpic case to
|
||||
isoenergetic conditions. All the DPD scenarios that are named with
|
||||
*-shardlow use the Shardlow splitting algorithm to integrate the
|
||||
equations of motion. All the DPD scenarious that are named with
|
||||
*-vv utilize the velocity-Verlet integration scheme. The compute dpd
|
||||
command is used in the isoenergetic and isenthalpic case to
|
||||
demonstrate how one can access the particle internal energies.
|
||||
|
||||
|
||||
|
|
|
@ -24,4 +24,4 @@ thermo_modify format float %15.10f
|
|||
fix 1 all shardlow
|
||||
fix 2 all nve
|
||||
|
||||
run 100
|
||||
run 100
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,29 @@
|
|||
# INPUT FILE FOR DPD_Fluid
|
||||
|
||||
log log.dpd.vv
|
||||
boundary p p p
|
||||
|
||||
units metal # ev, ps
|
||||
atom_style dpd # atomic atom style can also be used
|
||||
read_data data.dpd
|
||||
|
||||
comm_modify mode single vel yes
|
||||
mass 1 125.9
|
||||
|
||||
pair_style dpd/fdt 300.0 8.6 245455
|
||||
pair_coeff 1 1 0.075 0.022 8.60
|
||||
|
||||
neighbor 2.0 bin
|
||||
neigh_modify every 1 delay 0 check no once no
|
||||
|
||||
timestep 0.001
|
||||
|
||||
fix 2 all nve
|
||||
|
||||
variable totEnergy equal pe+ke
|
||||
|
||||
thermo 10
|
||||
thermo_style custom step temp press pe ke v_totEnergy
|
||||
thermo_modify format float %24.16f
|
||||
|
||||
run 1000
|
|
@ -0,0 +1,169 @@
|
|||
boundary p p p
|
||||
|
||||
units metal # ev, ps
|
||||
atom_style dpd # atomic atom style can also be used
|
||||
read_data data.dpd
|
||||
orthogonal box = (-64.5 -64.5 -64.5) to (64.5 64.5 64.5)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
reading atoms ...
|
||||
10125 atoms
|
||||
reading velocities ...
|
||||
10125 velocities
|
||||
|
||||
comm_modify mode single vel yes
|
||||
mass 1 125.9
|
||||
|
||||
pair_style dpd/fdt 300.0 8.6 245455
|
||||
pair_coeff 1 1 0.075 0.022 8.60
|
||||
|
||||
neighbor 2.0 bin
|
||||
neigh_modify every 1 delay 0 check no once no
|
||||
|
||||
timestep 0.001
|
||||
|
||||
fix 2 all nve
|
||||
|
||||
variable totEnergy equal pe+ke
|
||||
|
||||
thermo 10
|
||||
thermo_style custom step temp press pe ke v_totEnergy
|
||||
thermo_modify format float %24.16f
|
||||
|
||||
run 1000
|
||||
Neighbor list info ...
|
||||
1 neighbor list requests
|
||||
update every 1 steps, delay 0 steps, check no
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 10.6
|
||||
ghost atom cutoff = 10.6
|
||||
binsize = 5.3 -> bins = 25 25 25
|
||||
Memory usage per processor = 3.36353 Mbytes
|
||||
Step Temp Press PotEng KinEng totEnerg
|
||||
0 301.4391322267262012 1549.5478087303101802 1188.6488072196075336 394.4722035796053206 1583.1210107992128542
|
||||
10 301.1781716844517973 1472.5220704074258720 1188.7073118945891110 394.1307028613744592 1582.8380147559637408
|
||||
20 301.3348035346626830 1561.5334938481944391 1188.7674931713575006 394.3356759537762741 1583.1031691251339453
|
||||
30 301.2401656988171226 1589.1590400358697934 1188.8329522652118158 394.2118300702898637 1583.0447823355016226
|
||||
40 301.2467282647567686 1612.7005954259229838 1188.8998661625835211 394.2204180390390889 1583.1202842016225532
|
||||
50 301.3868530330685758 1538.2867560691227027 1188.9661306187103946 394.4037894736757153 1583.3699200923861099
|
||||
60 301.2473566745931635 1442.8478446697063191 1189.0327863162422091 394.2212403948197448 1583.2540267110618970
|
||||
70 301.3817325834245366 1449.9468021148040862 1189.0958917710288461 394.3970887011532795 1583.4929804721821256
|
||||
80 301.6350661579101597 1528.7144337987856488 1189.1603115791012897 394.7286085427539319 1583.8889201218553353
|
||||
90 301.1547075640817752 1512.1770835959391661 1189.2223449446209997 394.0999970163866237 1583.3223419610076235
|
||||
100 301.1746038085076407 1564.5706067669630102 1189.2844219062417324 394.1260338329195747 1583.4104557391613071
|
||||
110 301.2018622721547558 1515.4879381876478419 1189.3504251156646205 394.1617050682420427 1583.5121301839067200
|
||||
120 301.0009801124808746 1557.0329613835108375 1189.4208319594404202 393.8988247062896448 1583.3196566657300082
|
||||
130 301.0638502637480087 1548.3634383875801177 1189.4951157625748692 393.9810984539830088 1583.4762142165579917
|
||||
140 301.0311113459680428 1495.2262845183092850 1189.5675481417181345 393.9382553335690318 1583.5058034752871663
|
||||
150 300.8177209477242968 1428.8898919254606881 1189.6378084330842739 393.6590063190295723 1583.2968147521139599
|
||||
160 300.8119775481492866 1570.2720283468345315 1189.7083716809170255 393.6514903357208937 1583.3598620166380897
|
||||
170 300.9335106840651406 1557.4332901198356467 1189.7769958158935424 393.8105322078843642 1583.5875280237778497
|
||||
180 300.5874591455081486 1520.5298514112478188 1189.8453389121093551 393.3576788840364884 1583.2030177961460140
|
||||
190 300.4011803057076122 1519.7398182018555417 1189.9061296006261728 393.1139088603054574 1583.0200384609315734
|
||||
200 300.2169140033788608 1458.2437505784371297 1189.9657655046762557 392.8727725028984423 1582.8385380075746980
|
||||
210 300.2545970072605428 1496.2729155341944534 1190.0262935280243255 392.9220856012639729 1582.9483791292882415
|
||||
220 300.3703364838469838 1606.0230144299584936 1190.0833027226285594 393.0735457187110455 1583.1568484413396618
|
||||
230 300.2033407044385172 1459.9549740461752663 1190.1416131684939046 392.8550100806698424 1582.9966232491638038
|
||||
240 300.4842762279440080 1670.3474276721599381 1190.2009109755038025 393.2226506527560446 1583.4235616282599040
|
||||
250 300.2564573977282976 1557.2460328592983387 1190.2596238049020485 392.9245201634984710 1583.1841439684005763
|
||||
260 300.0449762246657883 1505.0192578442329250 1190.3199416408035631 392.6477696177504413 1582.9677112585541181
|
||||
270 300.0116460395993840 1509.1981340752874985 1190.3755696034054381 392.6041527474000645 1582.9797223508055595
|
||||
280 300.3512486599616977 1518.9752783067149267 1190.4261072017084189 393.0485668253140261 1583.4746740270225018
|
||||
290 300.3552418223666791 1555.5638176571371787 1190.4711084084599406 393.0537923962659761 1583.5249008047260304
|
||||
300 300.1459940856701678 1599.6176002364270516 1190.5119834703857578 392.7799645916973645 1583.2919480620830655
|
||||
310 300.0728060417839629 1641.1130631848700432 1190.5527862243702657 392.6841885431988999 1583.2369747675693361
|
||||
320 300.2437004299285945 1480.0125150324997776 1190.5921170370866093 392.9078260164520771 1583.4999430535385727
|
||||
330 300.0598571495680176 1558.1995284077859196 1190.6308838646666572 392.6672432381596991 1583.2981271028263563
|
||||
340 300.2932457229409806 1504.8291140224341689 1190.6648789420764842 392.9726624587786432 1583.6375414008552980
|
||||
350 300.0508025680157402 1578.6970748006153826 1190.6930603315840926 392.6553941437470598 1583.3484544753312093
|
||||
360 300.2273424995200344 1514.2714360556169595 1190.7166098654090547 392.8864195427583468 1583.6030294081674583
|
||||
370 300.1967941947076497 1511.8859175802710979 1190.7410406890940067 392.8464431235524330 1583.5874838126464965
|
||||
380 300.4506922864080138 1551.8880937733538303 1190.7641303867110310 393.1787017091509711 1583.9428320958620588
|
||||
390 300.6154615731483091 1491.6540598720953312 1190.7833472426700610 393.3943236927419775 1584.1776709354121522
|
||||
400 300.4131888226039564 1518.2806993851895641 1190.8000216950692902 393.1296235622648396 1583.9296452573341867
|
||||
410 300.2164206099615740 1492.4202869919267869 1190.8161806634459481 392.8721268336148569 1583.6883074970608050
|
||||
420 299.9241651579524728 1437.1178040001384488 1190.8321211036075056 392.4896726667966504 1583.3217937704041560
|
||||
430 300.1750324308378026 1592.1759851574147433 1190.8470728579757179 392.8179650328543175 1583.6650378908300354
|
||||
440 300.3203232687658897 1610.5956304714243288 1190.8532393510406564 393.0080969396643127 1583.8613362907049122
|
||||
450 300.3593377128640896 1514.2015724302684703 1190.8519495611074035 393.0591524002515484 1583.9111019613590088
|
||||
460 300.2776675433439664 1593.6798981330246079 1190.8459747756926390 392.9522763901617282 1583.7982511658544809
|
||||
470 299.8777606563146492 1525.3321416074670651 1190.8391264353911083 392.4289463573693979 1583.2680727927604494
|
||||
480 300.0893325105251392 1577.2512023261501781 1190.8279401949505427 392.7058155711616223 1583.5337557661123356
|
||||
490 299.7991035093193659 1480.4333732192587831 1190.8067847458823962 392.3260132780663980 1583.1327980239489079
|
||||
500 299.9677949259065599 1495.0278787582676614 1190.7825410253908558 392.5467678772936324 1583.3293089026844882
|
||||
510 300.0900811274785838 1639.6696686241484713 1190.7573430643649317 392.7067952335468135 1583.4641382979116315
|
||||
520 299.9891246673826686 1600.2278532870618619 1190.7251960532680641 392.5746806106528197 1583.2998766639209407
|
||||
530 300.1603400289337742 1539.5535066502893642 1190.6928984528917681 392.7987381192411362 1583.4916365721328475
|
||||
540 300.3076269358371064 1595.8675994337206703 1190.6566703473422422 392.9914821412112929 1583.6481524885534782
|
||||
550 300.4698674068501418 1466.7075904710538907 1190.6131481694715148 393.2037948414156290 1583.8169430108871438
|
||||
560 300.7206981383459947 1630.2609903270983978 1190.5710873654240913 393.5320393883254724 1584.1031267537496205
|
||||
570 300.8610815763000801 1556.2884022342934713 1190.5267109994711063 393.7157493257405463 1584.2424603252115958
|
||||
580 300.8964633483230955 1554.3498972944150864 1190.4812222884629591 393.7620509637308146 1584.2432732521938306
|
||||
590 300.9107621433564077 1547.4258400009293837 1190.4362818919200890 393.7807627916997149 1584.2170446836198607
|
||||
600 301.3417451159045868 1536.4134563739632995 1190.3902887741264749 394.3447599132098276 1584.7350486873363025
|
||||
610 301.6508989111560481 1593.7194612348321243 1190.3421610929228791 394.7493277540106646 1585.0914888469335438
|
||||
620 301.5698128071562110 1576.1181463329294274 1190.2920606752038566 394.6432160694121194 1584.9352767446159760
|
||||
630 301.3274041972170494 1509.2272524137167693 1190.2374741364671991 394.3259929609755545 1584.5634670974427536
|
||||
640 301.3505920687090338 1592.1600851563937340 1190.1794204537056885 394.3563372984747843 1584.5357577521804160
|
||||
650 301.5804461741747673 1544.9875554279788048 1190.1204065811846249 394.6571312093884103 1584.7775377905732057
|
||||
660 301.3626783799006716 1580.4147481776246877 1190.0589205400190167 394.3721538043600958 1584.4310743443791125
|
||||
670 301.3027587470089657 1570.9258836881758725 1189.9974183012857338 394.2937411926667437 1584.2911594939523638
|
||||
680 301.1174106753824162 1503.7441951732278085 1189.9385560058665305 394.0511891998194187 1583.9897452056859493
|
||||
690 301.1637317889510541 1485.4239754399382036 1189.8822999581352633 394.1118063851420743 1583.9941063432772808
|
||||
700 300.7577284964789897 1497.3081311764262864 1189.8265818908062101 393.5804984150753967 1583.4070803058816637
|
||||
710 300.7582337772330447 1443.2789996571227675 1189.7722579196474726 393.5811596404810757 1583.3534175601284915
|
||||
720 300.7789291839181942 1480.1771366249440689 1189.7219401607019336 393.6082422644879557 1583.3301824251898324
|
||||
730 300.2392032164640909 1573.9469162403477185 1189.6722050348257653 392.9019408293092965 1582.5741458641350619
|
||||
740 300.1498721141535952 1495.8935024851589333 1189.6232009109410228 392.7850394949791735 1582.4082404059201963
|
||||
750 299.7668955745961625 1587.0579224766738662 1189.5725329834669992 392.2838650178549074 1581.8563980013218497
|
||||
760 300.1701246080039596 1476.2647356200668582 1189.5185800849983480 392.8115425100924085 1582.3301225950908702
|
||||
770 300.0596917060458395 1476.9822776185715156 1189.4588693098098702 392.6670267338515714 1582.1258960436614416
|
||||
780 300.0000978359947794 1656.0447969129154444 1189.3974011035750209 392.5890404250892516 1581.9864415286642725
|
||||
790 299.8879395255003146 1498.3733949813802155 1189.3295612656791036 392.4422667279793586 1581.7718279936584622
|
||||
800 299.5399296208984765 1536.5356907957773274 1189.2608026516977588 391.9868506281461009 1581.2476532798439166
|
||||
810 299.7477702176124694 1527.7843172708692236 1189.1905997605733774 392.2588370075303601 1581.4494367681036238
|
||||
820 299.6526441282849760 1520.2339634236541315 1189.1179282568584767 392.1343521810324546 1581.2522804378909314
|
||||
830 299.7117040573266991 1519.3977355174736203 1189.0462571599487092 392.2116397587276424 1581.2578969186763516
|
||||
840 299.8248393061855950 1492.9872520312876532 1188.9746922447459383 392.3596919064040662 1581.3343841511500614
|
||||
850 299.8949042735604849 1548.8768511646296702 1188.9003206285556189 392.4513810041995043 1581.3517016327550664
|
||||
860 299.8659753723545691 1612.8888123513652317 1188.8228698817265467 392.4135237846622317 1581.2363936663887216
|
||||
870 299.4869644032466454 1501.1368986196648621 1188.7463971708889403 391.9175387708373250 1580.6639359417263222
|
||||
880 299.4723145868707093 1610.5504771450550834 1188.6685353091816069 391.8983675859113305 1580.5669028950928805
|
||||
890 299.4069994806968111 1463.6021272210502957 1188.5912631304524893 391.8128942975922655 1580.4041574280447549
|
||||
900 299.3089704777128759 1566.2168185333537167 1188.5136206415772904 391.6846106320438139 1580.1982312736211043
|
||||
910 299.5247041888713966 1495.6606753393346025 1188.4345654328315049 391.9669261754786476 1580.4014916083101525
|
||||
920 298.9408951189174104 1640.3193219922034132 1188.3550783333539584 391.2029362827486807 1579.5580146161025823
|
||||
930 299.1796032826328542 1446.8716230397401432 1188.2706215145833539 391.5153168773240964 1579.7859383919073935
|
||||
940 299.3701987753102571 1492.9872751566520037 1188.1849188108451472 391.7647358012488326 1579.9496546120940366
|
||||
950 299.2072786172182077 1562.8791943561946027 1188.0966113636370665 391.5515336423407575 1579.6481450059777671
|
||||
960 299.3656085727831169 1560.6583667351628719 1188.0078929542075912 391.7587289258561327 1579.7666218800636670
|
||||
970 299.3550703551497350 1470.6811691697564584 1187.9234716336211477 391.7449383011919508 1579.6684099348130985
|
||||
980 299.3253482475715259 1439.7552468745359420 1187.8461953635626287 391.7060430682313381 1579.5522384317939668
|
||||
990 299.5720628053321093 1537.8753917835113043 1187.7698518865311144 392.0289010679079524 1579.7987529544391236
|
||||
1000 299.6565043425953832 1587.6003924664994429 1187.6939067472808347 392.1394037721581753 1579.8333105194390100
|
||||
Loop time of 10.6177 on 1 procs for 1000 steps with 10125 atoms
|
||||
|
||||
Performance: 8.137 ns/day, 2.949 hours/ns, 94.182 timesteps/s
|
||||
100.0% CPU use with 1 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 3.7217 | 3.7217 | 3.7217 | 0.0 | 35.05
|
||||
Neigh | 6.377 | 6.377 | 6.377 | 0.0 | 60.06
|
||||
Comm | 0.37065 | 0.37065 | 0.37065 | 0.0 | 3.49
|
||||
Output | 0.0035086 | 0.0035086 | 0.0035086 | 0.0 | 0.03
|
||||
Modify | 0.094853 | 0.094853 | 0.094853 | 0.0 | 0.89
|
||||
Other | | 0.05005 | | | 0.47
|
||||
|
||||
Nlocal: 10125 ave 10125 max 10125 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 5827 ave 5827 max 5827 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 114808 ave 114808 max 114808 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 114808
|
||||
Ave neighs/atom = 11.3391
|
||||
Neighbor list builds = 1000
|
||||
Dangerous builds not checked
|
||||
Total wall time: 0:00:10
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,33 @@
|
|||
# INPUT FILE FOR DPD_Fluid
|
||||
|
||||
log log.dpde.vv
|
||||
boundary p p p
|
||||
|
||||
units metal # ev, ps
|
||||
atom_style dpd
|
||||
read_data data.dpd
|
||||
|
||||
comm_modify mode single vel yes
|
||||
mass 1 125.9
|
||||
|
||||
pair_style dpd/fdt/energy 8.6 245455
|
||||
pair_coeff 1 1 0.075 0.022 3.2E-05 8.60
|
||||
|
||||
neighbor 2.0 bin
|
||||
neigh_modify every 1 delay 0 check no once no
|
||||
|
||||
timestep 0.001
|
||||
|
||||
fix 1 all dpd/energy
|
||||
fix 2 all nve
|
||||
fix 3 all eos/cv 0.00517041
|
||||
|
||||
compute dpdU all dpd
|
||||
|
||||
variable totEnergy equal pe+ke+c_dpdU[1]+c_dpdU[2]
|
||||
|
||||
thermo 10
|
||||
thermo_style custom step temp press pe ke c_dpdU[1] c_dpdU[2] v_totEnergy c_dpdU[4]
|
||||
thermo_modify format float %24.16f
|
||||
|
||||
run 1000
|
|
@ -0,0 +1,173 @@
|
|||
boundary p p p
|
||||
|
||||
units metal # ev, ps
|
||||
atom_style dpd
|
||||
read_data data.dpd
|
||||
orthogonal box = (-64.5 -64.5 -64.5) to (64.5 64.5 64.5)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
reading atoms ...
|
||||
10125 atoms
|
||||
reading velocities ...
|
||||
10125 velocities
|
||||
|
||||
comm_modify mode single vel yes
|
||||
mass 1 125.9
|
||||
|
||||
pair_style dpd/fdt/energy 8.6 245455
|
||||
pair_coeff 1 1 0.075 0.022 3.2E-05 8.60
|
||||
|
||||
neighbor 2.0 bin
|
||||
neigh_modify every 1 delay 0 check no once no
|
||||
|
||||
timestep 0.001
|
||||
|
||||
fix 1 all dpd/energy
|
||||
fix 2 all nve
|
||||
fix 3 all eos/cv 0.00517041
|
||||
|
||||
compute dpdU all dpd
|
||||
|
||||
variable totEnergy equal pe+ke+c_dpdU[1]+c_dpdU[2]
|
||||
|
||||
thermo 10
|
||||
thermo_style custom step temp press pe ke c_dpdU[1] c_dpdU[2] v_totEnergy c_dpdU[4]
|
||||
thermo_modify format float %24.16f
|
||||
|
||||
run 1000
|
||||
Neighbor list info ...
|
||||
1 neighbor list requests
|
||||
update every 1 steps, delay 0 steps, check no
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 10.6
|
||||
ghost atom cutoff = 10.6
|
||||
binsize = 5.3 -> bins = 25 25 25
|
||||
Memory usage per processor = 3.36353 Mbytes
|
||||
Step Temp Press PotEng KinEng dpdU[1] dpdU[2] totEnerg dpdU[4]
|
||||
0 301.4391322267262012 1636.1776395935087294 1188.6488072196075336 394.4722035796053206 7852.5601874986105031 7852.5601874986105031 17288.2413857964347699 299.9999999999841407
|
||||
10 301.4791572483523510 1486.4422375141180055 1188.7147620806101713 394.5245815119678241 7852.5601874999802021 7852.3731942333779443 17288.1727253259377903 299.9960221120699089
|
||||
20 301.4275643919337426 1677.9356110821624952 1188.7839634625399867 394.4570655673388728 7852.5601874999938445 7852.3711851933012440 17288.1724017231754260 299.9955485734552099
|
||||
30 301.2240988054542186 1452.7304951528913080 1188.8550809767796181 394.1908044563202225 7852.5601875000002110 7852.5679666239848302 17288.1740395570850524 299.9988968405210130
|
||||
40 301.1023506886409109 1527.9758363521398223 1188.9264527568634549 394.0314812537677085 7852.5601874999947540 7852.6574764573806533 17288.1755979680056043 300.0001694462812338
|
||||
50 301.0409654880461972 1597.1737251233491861 1188.9944523606984603 393.9511507566391515 7852.5601875000029395 7852.6700547249911324 17288.1758453423317405 299.9999653064982681
|
||||
60 301.2904978886139133 1610.8630327676821707 1189.0651026961211301 394.2776962691256131 7852.5601874999829306 7852.2734988976435488 17288.1764853628737910 299.9919857290491905
|
||||
70 300.8575037843164068 1489.3259312130885519 1189.1295686642288274 393.7110673208617300 7852.5601874999856591 7852.7707182199101226 17288.1715417049854295 300.0010992278233743
|
||||
80 300.5955830326474825 1449.3896097889601151 1189.1880764967559116 393.3683100440913449 7852.5601875000411383 7853.0484238882281716 17288.1649979291178170 300.0059513551503301
|
||||
90 301.0092332775843147 1553.9266324350323885 1189.2470037925056658 393.9096250433288446 7852.5601875000420478 7852.4452067113825251 17288.1620230472581170 299.9940347326859182
|
||||
100 301.0478004479094238 1539.2270336322208095 1189.3010269201699884 393.9600951881690207 7852.5601875000074870 7852.3416236045995902 17288.1629332129450631 299.9916385566916119
|
||||
110 300.9609384905551224 1500.0429484565033817 1189.3524514939088021 393.8464250502818800 7852.5601874999983920 7852.4114980357189779 17288.1705620799075405 299.9925626482005327
|
||||
120 300.9625536631413070 1630.5065919443020448 1189.4006029528841282 393.8485387131116795 7852.5601875000575092 7852.3600810123671181 17288.1694101784196391 299.9911580775880680
|
||||
130 301.0373750247309204 1539.2267307640177023 1189.4426173625224692 393.9464521696793895 7852.5601874999993015 7852.2178388309775983 17288.1670958631802932 299.9879581026651181
|
||||
140 300.7465104415114183 1550.8353679735098467 1189.4887352230998658 393.5658181350790983 7852.5601874999920256 7852.5559582333216895 17288.1706990914935886 299.9939749909034958
|
||||
150 300.6667173911142186 1634.8987162883261135 1189.5368575067818711 393.4613985788390096 7852.5601874999920256 7852.6079668015609059 17288.1664103871735279 299.9946423938895350
|
||||
160 300.4684731724561289 1462.9400882126756187 1189.5825022927965620 393.2019703048677002 7852.5601874999847496 7852.8265187980177870 17288.1711788956672535 299.9983600613423960
|
||||
170 300.1439323338467489 1510.2352578813565742 1189.6305700279476696 392.7772665220107342 7852.5601874999802021 7853.2009671047326265 17288.1689911546709482 300.0051118582463232
|
||||
180 300.1074244553407766 1529.6307083879921720 1189.6764977580119194 392.7294912276225318 7852.5601874999729262 7853.2047509722533505 17288.1709274578606710 300.0047089238623812
|
||||
190 300.4193298066089710 1546.3205495807171701 1189.7172820166240399 393.1376598363700055 7852.5601874999847496 7852.7461854379362194 17288.1613147909156396 299.9954451643528159
|
||||
200 300.3353919251508728 1532.5496449337256308 1189.7600175880224924 393.0278162310690391 7852.5601874999683787 7852.8107089913455638 17288.1587303104060993 299.9962707550171785
|
||||
210 300.3276568499738914 1504.8178651700854971 1189.7998299597820733 393.0176938818989925 7852.5601875000156724 7852.7810130200659842 17288.1587243617614149 299.9953436245502871
|
||||
220 300.5768315696972195 1592.5896084568337301 1189.8391466344737637 393.3437713226065284 7852.5601875000329528 7852.4205574703573802 17288.1636629274726147 299.9880321846658831
|
||||
230 300.6587445618569063 1672.3049358942298568 1189.8766340798690635 393.4509650976162334 7852.5601874999847496 7852.2733199687863817 17288.1611066462573945 299.9848228571166828
|
||||
240 300.7517707836824457 1527.1722267937798279 1189.9126240081129708 393.5727019751182638 7852.5601875000065775 7852.1160682173085661 17288.1615817005440476 299.9814952182625802
|
||||
250 300.8473715548367409 1589.1847713095273775 1189.9441342461950626 393.6978079843565865 7852.5601875000047585 7851.9625847797897222 17288.1647145103452203 299.9782210858571148
|
||||
260 300.8450266408960942 1623.1896863377055524 1189.9636161513915340 393.6947393603111891 7852.5601874999820211 7851.9471828473979258 17288.1657258590821584 299.9775302202895659
|
||||
270 300.6663619570709898 1564.5160171187867491 1189.9764081239700317 393.4609334472908131 7852.5601875000193104 7852.1708276117251444 17288.1683566830033669 299.9812899253168439
|
||||
280 300.7668534205726587 1618.5400526904272738 1189.9872008155407457 393.5924395618274616 7852.5601875000184009 7852.0271568534708422 17288.1669847308585304 299.9781169783826158
|
||||
290 300.8462727198648281 1562.6765776748161443 1189.9918265985252219 393.6963700162681334 7852.5601875000211294 7851.9189772084137076 17288.1673613232269417 299.9756806168044818
|
||||
300 300.8095414073813458 1525.1785808192823879 1189.9873922767765180 393.6483023295391490 7852.5601875000020300 7851.9657301693559930 17288.1616122756749974 299.9761279889730758
|
||||
310 300.9496330741350221 1566.5597234051313080 1189.9752299662607129 393.8316304464934774 7852.5601875000056680 7851.7898117189633922 17288.1568596317229094 299.9723726900591032
|
||||
320 301.2370566356515269 1513.6869483705045241 1189.9626455872523820 394.2077614578673774 7852.5601874999929350 7851.4248466706330873 17288.1554412157456682 299.9650543775110236
|
||||
330 301.3279721508966986 1549.0667862452532972 1189.9513389477854162 394.3267362020335440 7852.5601874999929350 7851.3129955581916875 17288.1512582080031279 299.9625537201162615
|
||||
340 301.1145736537582707 1414.7930515101752462 1189.9408691169965095 394.0474765890398885 7852.5601874999993015 7851.6028846074832472 17288.1514178135184920 299.9677356565828745
|
||||
350 301.1651600907369470 1529.8016115175878440 1189.9314470205474663 394.1136755032910628 7852.5601874999929350 7851.5441417268766600 17288.1494517507089768 299.9662576716460194
|
||||
360 301.0550563185082638 1536.7721716375513097 1189.9200519814728523 393.9695904359919041 7852.5601875000074870 7851.7101209691463737 17288.1599508866202086 299.9690811750865009
|
||||
370 301.1008976932965311 1522.3385843459493572 1189.9109162496640693 394.0295798208944689 7852.5601875000211294 7851.6603423306560217 17288.1610259012340975 299.9677565060027860
|
||||
380 301.1656898730701073 1505.0548721701966315 1189.9005648244356053 394.1143687921909873 7852.5601875000056680 7851.5816827598300733 17288.1568038764598896 299.9659906785156522
|
||||
390 300.8379322662877371 1740.9151205755611045 1189.8851457594089425 393.6854554509391164 7852.5601875000238579 7852.0268864110385039 17288.1576751214088290 299.9741278188615752
|
||||
400 300.8663790447544670 1564.9461156870268042 1189.8690133470406636 393.7226817503370171 7852.5601875000411383 7852.0043792319993372 17288.1562618294192362 299.9732593416579789
|
||||
410 300.6263441860636476 1564.2840871092398629 1189.8566574093874806 393.4085650033034653 7852.5601874999892971 7852.3284491703716412 17288.1538590830532485 299.9792095875052951
|
||||
420 300.5302259436974168 1438.1569922368742027 1189.8406936554465574 393.2827818158641549 7852.5601875000302243 7852.4696075433648730 17288.1532705147074012 299.9815165752025337
|
||||
430 300.5877786105220366 1503.3641639033023694 1189.8251514530138593 393.3580969454443448 7852.5601874999802021 7852.4023373559457468 17288.1457732543858583 299.9798346272511935
|
||||
440 300.7289160804472772 1689.2527029957309423 1189.8035410609209066 393.5427936314976591 7852.5601875000029395 7852.2436462415207643 17288.1501684339418716 299.9764596782897570
|
||||
450 300.9487198282456575 1497.3668092174807498 1189.7808137689632986 393.8304353457919547 7852.5601874999938445 7851.9788323927423335 17288.1502690074921702 299.9710227473042323
|
||||
460 300.9359942496023450 1625.1573864018453150 1189.7615359247629385 393.8137822755280695 7852.5601875000147629 7852.0165192783370003 17288.1520249786408385 299.9713565393226986
|
||||
470 301.0000133856357252 1486.1561922844025503 1189.7439269526958014 393.8975596188205941 7852.5601874999656502 7851.9561324572259764 17288.1578065287103527 299.9697143418395626
|
||||
480 300.8568627175956749 1535.6080526199089036 1189.7237810071801505 393.7102284019061926 7852.5601874999601932 7852.1697010727639281 17288.1638979818089865 299.9732503057674649
|
||||
490 301.0608040775521204 1497.3221544489865664 1189.7062242497636362 393.9771121242310414 7852.5601874999974825 7851.9258988739020424 17288.1694227478947141 299.9682362511933320
|
||||
500 301.0232592587148019 1517.5854528541199215 1189.6911287485859248 393.9279798589197981 7852.5601875000247674 7851.9823225510317570 17288.1616186585597461 299.9690333355835037
|
||||
510 300.7038579923686257 1420.2615974401126095 1189.6747661513456933 393.5100018730127545 7852.5601874999674692 7852.4114869568056747 17288.1564424811294884 299.9768186576545759
|
||||
520 300.5917863355051622 1537.4862082427132464 1189.6604754398758814 393.3633415734186656 7852.5601875000029395 7852.5789017095057716 17288.1629062228021212 299.9795694302102333
|
||||
530 300.4751352158504574 1481.1071694751813084 1189.6453243069920518 393.2106884527693751 7852.5601874999811116 7852.7451655714030494 17288.1613658311471227 299.9823181268525900
|
||||
540 300.5380123640740635 1547.3461372766362274 1189.6261485232855648 393.2929713568878469 7852.5601875000375003 7852.6850583598343292 17288.1643657400454686 299.9808112190538054
|
||||
550 300.4253885005188067 1544.3485889749679245 1189.6033595464525661 393.1455884232119615 7852.5601874999756546 7852.8598718466746504 17288.1690073163154011 299.9835860164698147
|
||||
560 300.3263552442091964 1556.5150300058239736 1189.5759163336824713 393.0159905619271967 7852.5601875000111249 7853.0148613782694156 17288.1669557738896401 299.9861837797674866
|
||||
570 300.1977324643196994 1511.2320626303899189 1189.5441090918313876 392.8476709710408272 7852.5601875000102154 7853.2098259401755058 17288.1617935030590161 299.9896761688499964
|
||||
580 300.3543631005174461 1588.9566243200406461 1189.5094471319723652 393.0526424747490069 7852.5601875000156724 7853.0374555421631158 17288.1597326488990802 299.9859298211932810
|
||||
590 300.5019108864805730 1504.4406939723223786 1189.4809412920112663 393.2457278908070748 7852.5601874999874781 7852.8704277855331384 17288.1572844683396397 299.9823573257917815
|
||||
600 300.4791158523048011 1540.4690749004166719 1189.4551948503105905 393.2158976318902432 7852.5601875000220389 7852.9312239063829111 17288.1625038886049879 299.9832002920041987
|
||||
610 300.5939139841889869 1368.0565839211092225 1189.4252547652592966 393.3661258776944578 7852.5601874999574648 7852.8130977336268188 17288.1646658765384927 299.9807742697515778
|
||||
620 300.7674247480806002 1483.2566452708949782 1189.3941250938435132 393.5931872179773450 7852.5601875000193104 7852.6187967208716145 17288.1662965327122947 299.9766963671718258
|
||||
630 300.7920034341022983 1543.0699124130626387 1189.3598279316652224 393.6253516166884765 7852.5601875000302243 7852.6219971866230480 17288.1673642350069713 299.9762538437231001
|
||||
640 300.8032734267029014 1423.2549819291627955 1189.3293074476887341 393.6400998638143278 7852.5601874999847496 7852.6384826097773839 17288.1680774212654796 299.9762118202994543
|
||||
650 300.7516995878240778 1542.6559695158528029 1189.3021161045703593 393.5726088061028918 7852.5601874999720167 7852.7361949473252025 17288.1711073579717777 299.9775656396504928
|
||||
660 300.8699697098109596 1675.5121937767828513 1189.2687179804188418 393.7273806013013768 7852.5601874999802021 7852.6179739687167967 17288.1742600504185248 299.9750492262036232
|
||||
670 301.0255004186899441 1520.7397686587880798 1189.2284265783687260 393.9309127074436105 7852.5601874999847496 7852.4592279727139612 17288.1787547585117863 299.9715123049731460
|
||||
680 301.1071983488761248 1651.9751417063259851 1189.1858967311384276 394.0378250459656897 7852.5601875000002110 7852.3982826328629017 17288.1821919099675142 299.9699481289110281
|
||||
690 301.0027086454254572 1496.1607274163652619 1189.1436949551207363 393.9010867158521592 7852.5601875000293148 7852.5788938360929023 17288.1838630070960789 299.9731939774295597
|
||||
700 300.9009090279178054 1551.8182127127645344 1189.0993919251336592 393.7678687121206167 7852.5601875000102154 7852.7513665452243004 17288.1788146824910655 299.9761043445071209
|
||||
710 301.2325536720837249 1678.1546953970862432 1189.0528341066979010 394.2018687459686248 7852.5601874999956635 7852.3633298995819132 17288.1782202522445004 299.9683013583347133
|
||||
720 301.2122298224125529 1524.1415452491380620 1189.0046957644281065 394.1752723525083866 7852.5601875000093059 7852.4351629896154918 17288.1753186065616319 299.9693315350040166
|
||||
730 301.0763282392692872 1547.1987029633148722 1188.9602551214052255 393.9974275034455786 7852.5601874999883876 7852.6518053705112834 17288.1696754953518393 299.9732715774841267
|
||||
740 301.3262401480514541 1544.7045314021531794 1188.9131307177485724 394.3244696516559316 7852.5601874999965730 7852.3694201272992359 17288.1672079966992897 299.9674666811456518
|
||||
750 301.5740779122830872 1591.1785078054831502 1188.8637580645940943 394.6487975126887591 7852.5601875000029395 7852.0919529470393172 17288.1646960243233480 299.9616008527093527
|
||||
760 301.4385361878656227 1547.3218422039205961 1188.8113669183101138 394.4714235854452795 7852.5601874999838401 7852.3161911124070684 17288.1591691161447670 299.9656339783694534
|
||||
770 301.6110125684814989 1494.5039561806663642 1188.7581685915927210 394.6971313010440667 7852.5601875000083965 7852.1351720579086759 17288.1506594505553949 299.9619855799394941
|
||||
780 301.8360352039435384 1588.1458619705329056 1188.7039178696472845 394.9916026067776329 7852.5601874999956635 7851.9015195838410364 17288.1572275602629816 299.9572350302978521
|
||||
790 302.1008324754312184 1545.4409171812194472 1188.6491103416556143 395.3381241828384418 7852.5601875000138534 7851.6150048936606254 17288.1624269181702402 299.9513959104631340
|
||||
800 301.9660372380566855 1563.9565804790699985 1188.5964649891607223 395.1617271307159172 7852.5601874999874781 7851.8461249560641591 17288.1645045759287314 299.9555810527747326
|
||||
810 302.0507207347627627 1511.4560763489942019 1188.5468477146607711 395.2725464702810996 7852.5601875000120344 7851.7904104899025697 17288.1699921748586348 299.9541551776504775
|
||||
820 302.4700213214912878 1458.5135514273586068 1188.4981381693974072 395.8212556746475457 7852.5601875000202199 7851.2935886962222867 17288.1731700402888237 299.9441803241180651
|
||||
830 302.2853997979336782 1496.2544527963116252 1188.4496917372189273 395.5796544641875130 7852.5601875000447762 7851.5862641793482908 17288.1757978808018379 299.9494768794835977
|
||||
840 302.0840465730900632 1518.8301331998704882 1188.3994383226181526 395.3161576523595500 7852.5601875000038490 7851.8962146812327774 17288.1719981562127941 299.9550476592922337
|
||||
850 301.8910942560262356 1469.8827850510886037 1188.3489956121345585 395.0636545180262829 7852.5601874999829306 7852.2025804631475694 17288.1754180932912277 299.9606927700139067
|
||||
860 301.7284384160518016 1657.6802015862324424 1188.3052233777652873 394.8507982536592635 7852.5601875000093059 7852.4644669022700327 17288.1806760337058222 299.9652835238809416
|
||||
870 301.6331619894115192 1501.5829953208531151 1188.2628815714099346 394.7261166912876433 7852.5601875000202199 7852.6378180648598573 17288.1870038275774277 299.9682811831179379
|
||||
880 301.3703918424367885 1499.1595903074523903 1188.2195190931643083 394.3822478705862409 7852.5601874999956635 7853.0266423250850494 17288.1885967888301820 299.9755099056965264
|
||||
890 301.4157954313302525 1598.8758859042497988 1188.1845892608291706 394.4416643558611213 7852.5601875000065775 7853.0036606192506952 17288.1901017359487014 299.9745322513491601
|
||||
900 301.4752150615485107 1621.2148728756792480 1188.1517520946140394 394.5194226492019425 7852.5601874999711072 7852.9579580608560718 17288.1893203046420240 299.9733125337182855
|
||||
910 301.4308816315937634 1538.4823217911609845 1188.1159856659228353 394.4614066057064861 7852.5601875000002110 7853.0558695713280031 17288.1934493429580471 299.9748317405193916
|
||||
920 301.4323110133493628 1594.7193046491199766 1188.0835779842025204 394.4632771371358899 7852.5601875000202199 7853.0942701464355196 17288.2013127677928424 299.9751127806910631
|
||||
930 301.4801256941950101 1387.6885377097628407 1188.0464206196893429 394.5258488489681099 7852.5601875000229484 7853.0656502842966802 17288.1981072529779340 299.9740698440909341
|
||||
940 301.8075611840245074 1534.2487040663784228 1188.0124217312882138 394.9543406584059539 7852.5601874999701977 7852.6729444202828745 17288.1998943099461030 299.9660570413493588
|
||||
950 301.6915970126173647 1567.7725992489251894 1187.9790455470047164 394.8025864986412898 7852.5601875000274958 7852.8619557087586145 17288.2037752544347313 299.9694678653150959
|
||||
960 301.6392594677008674 1504.8502165144939227 1187.9439133338109968 394.7340960325208243 7852.5601874999711072 7852.9728807988849439 17288.2110776651898050 299.9711546356286362
|
||||
970 301.6049535791644871 1514.0198965433546618 1187.9094123369411591 394.6892023276234909 7852.5601874999765641 7853.0497909819905544 17288.2085931465298927 299.9722547114341751
|
||||
980 301.2982841679705643 1634.1208149125827731 1187.8768454876480973 394.2878856256063500 7852.5601874999856591 7853.4862008383497596 17288.2111194515891839 299.9802110109069986
|
||||
990 301.2573007350167700 1489.7316698898248433 1187.8432331161866387 394.2342534877080311 7852.5601875000047585 7853.5840096862739301 17288.2216837901723920 299.9819468620867724
|
||||
1000 301.3195135766228532 1562.6587211933881463 1187.8034267774901309 394.3156670604516307 7852.5601874999356369 7853.5372636956635688 17288.2165450335414789 299.9807651637231629
|
||||
Loop time of 13.772 on 1 procs for 1000 steps with 10125 atoms
|
||||
|
||||
Performance: 6.274 ns/day, 3.826 hours/ns, 72.611 timesteps/s
|
||||
99.9% CPU use with 1 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 6.7733 | 6.7733 | 6.7733 | 0.0 | 49.18
|
||||
Neigh | 6.3694 | 6.3694 | 6.3694 | 0.0 | 46.25
|
||||
Comm | 0.36819 | 0.36819 | 0.36819 | 0.0 | 2.67
|
||||
Output | 0.008424 | 0.008424 | 0.008424 | 0.0 | 0.06
|
||||
Modify | 0.20221 | 0.20221 | 0.20221 | 0.0 | 1.47
|
||||
Other | | 0.05047 | | | 0.37
|
||||
|
||||
Nlocal: 10125 ave 10125 max 10125 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 5824 ave 5824 max 5824 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 114682 ave 114682 max 114682 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 114682
|
||||
Ave neighs/atom = 11.3266
|
||||
Neighbor list builds = 1000
|
||||
Dangerous builds not checked
|
||||
Total wall time: 0:00:13
|
|
@ -307,6 +307,8 @@
|
|||
/fix_cmap.h
|
||||
/fix_deposit.cpp
|
||||
/fix_deposit.h
|
||||
/fix_dpd_energy.cpp
|
||||
/fix_dpd_energy.h
|
||||
/fix_efield.cpp
|
||||
/fix_efield.h
|
||||
/fix_eos_cv.cpp
|
||||
|
|
|
@ -0,0 +1,90 @@
|
|||
/* ----------------------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
http://lammps.sandia.gov, Sandia National Laboratories
|
||||
Steve Plimpton, sjplimp@sandia.gov
|
||||
|
||||
Copyright (2003) Sandia Corporation. Under the terms of Contract
|
||||
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
|
||||
certain rights in this software. This software is distributed under
|
||||
the GNU General Public License.
|
||||
|
||||
See the README file in the top-level LAMMPS directory.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#include "stdio.h"
|
||||
#include "string.h"
|
||||
#include "fix_dpd_energy.h"
|
||||
#include "atom.h"
|
||||
#include "force.h"
|
||||
#include "update.h"
|
||||
#include "respa.h"
|
||||
#include "modify.h"
|
||||
#include "error.h"
|
||||
#include "pair_dpd_fdt_energy.h"
|
||||
|
||||
using namespace LAMMPS_NS;
|
||||
using namespace FixConst;
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
FixDPDenergy::FixDPDenergy(LAMMPS *lmp, int narg, char **arg) :
|
||||
Fix(lmp, narg, arg)
|
||||
{
|
||||
if (narg != 3 ) error->all(FLERR,"Illegal fix dpd/energy command");
|
||||
|
||||
pairDPDE = NULL;
|
||||
pairDPDE = (PairDPDfdtEnergy *) force->pair_match("dpd/fdt/energy",1);
|
||||
|
||||
if(pairDPDE == NULL)
|
||||
error->all(FLERR,"Must use pair_style dpd/fdt/energy with fix dpd/energy");
|
||||
if(!(atom->dpd_flag))
|
||||
error->all(FLERR,"Must use atom_style dpd/fdt/energy with fix dpd/energy");
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
int FixDPDenergy::setmask()
|
||||
{
|
||||
int mask = 0;
|
||||
mask |= INITIAL_INTEGRATE;
|
||||
mask |= FINAL_INTEGRATE;
|
||||
return mask;
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
allow for both per-type and per-atom mass
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void FixDPDenergy::initial_integrate(int vflag)
|
||||
{
|
||||
int nlocal = atom->nlocal;
|
||||
if (igroup == atom->firstgroup) nlocal = atom->nfirst;
|
||||
|
||||
double *uCond = atom->uCond;
|
||||
double *uMech = atom->uMech;
|
||||
double *duCond = pairDPDE->duCond;
|
||||
double *duMech = pairDPDE->duMech;
|
||||
|
||||
for (int i = 0; i < nlocal; i++){
|
||||
uCond[i] += 0.5*update->dt*duCond[i];
|
||||
uMech[i] += 0.5*update->dt*duMech[i];
|
||||
}
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void FixDPDenergy::final_integrate()
|
||||
{
|
||||
int nlocal = atom->nlocal;
|
||||
if (igroup == atom->firstgroup) nlocal = atom->nfirst;
|
||||
|
||||
double *uCond = atom->uCond;
|
||||
double *uMech = atom->uMech;
|
||||
double *duCond = pairDPDE->duCond;
|
||||
double *duMech = pairDPDE->duMech;
|
||||
|
||||
for (int i = 0; i < nlocal; i++){
|
||||
uCond[i] += 0.5*update->dt*duCond[i];
|
||||
uMech[i] += 0.5*update->dt*duMech[i];
|
||||
}
|
||||
}
|
|
@ -0,0 +1,56 @@
|
|||
/* ----------------------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
http://lammps.sandia.gov, Sandia National Laboratories
|
||||
Steve Plimpton, sjplimp@sandia.gov
|
||||
|
||||
Copyright (2003) Sandia Corporation. Under the terms of Contract
|
||||
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
|
||||
certain rights in this software. This software is distributed under
|
||||
the GNU General Public License.
|
||||
|
||||
See the README file in the top-level LAMMPS directory.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#ifdef FIX_CLASS
|
||||
|
||||
FixStyle(dpd/energy,FixDPDenergy)
|
||||
|
||||
#else
|
||||
|
||||
#ifndef LMP_FIX_DPDE_H
|
||||
#define LMP_FIX_DPDE_H
|
||||
|
||||
#include "fix.h"
|
||||
|
||||
namespace LAMMPS_NS {
|
||||
|
||||
class FixDPDenergy : public Fix {
|
||||
public:
|
||||
FixDPDenergy(class LAMMPS *, int, char **);
|
||||
virtual ~FixDPDenergy() {}
|
||||
int setmask();
|
||||
virtual void initial_integrate(int);
|
||||
virtual void final_integrate();
|
||||
|
||||
protected:
|
||||
double dtv,dtf;
|
||||
int mass_require;
|
||||
int eos;
|
||||
|
||||
class PairDPDfdtEnergy *pairDPDE;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* ERROR/WARNING messages:
|
||||
|
||||
E: Illegal ... command
|
||||
|
||||
Self-explanatory. Check the input script syntax and compare to the
|
||||
documentation for the command. You can use -echo screen as a
|
||||
command-line option when running LAMMPS to see the offending line.
|
||||
|
||||
*/
|
|
@ -68,19 +68,23 @@ void PairDPDfdt::compute(int eflag, int vflag)
|
|||
{
|
||||
int i,j,ii,jj,inum,jnum,itype,jtype;
|
||||
double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair;
|
||||
double rsq,r,rinv,wd,wr,factor_dpd;
|
||||
double vxtmp,vytmp,vztmp,delvx,delvy,delvz;
|
||||
double rsq,r,rinv,dot,wd,wr,randnum,factor_dpd;
|
||||
int *ilist,*jlist,*numneigh,**firstneigh;
|
||||
double gamma_ij;
|
||||
|
||||
evdwl = 0.0;
|
||||
if (eflag || vflag) ev_setup(eflag,vflag);
|
||||
else evflag = vflag_fdotr = 0;
|
||||
|
||||
double **x = atom->x;
|
||||
double **v = atom->v;
|
||||
double **f = atom->f;
|
||||
int *type = atom->type;
|
||||
int nlocal = atom->nlocal;
|
||||
double *special_lj = force->special_lj;
|
||||
int newton_pair = force->newton_pair;
|
||||
double dtinvsqrt = 1.0/sqrt(update->dt);
|
||||
|
||||
inum = list->inum;
|
||||
ilist = list->ilist;
|
||||
|
@ -89,6 +93,7 @@ void PairDPDfdt::compute(int eflag, int vflag)
|
|||
|
||||
// loop over neighbors of my atoms
|
||||
|
||||
if(splitFDT_flag){
|
||||
for (ii = 0; ii < inum; ii++) {
|
||||
i = ilist[ii];
|
||||
xtmp = x[i][0];
|
||||
|
@ -142,7 +147,75 @@ void PairDPDfdt::compute(int eflag, int vflag)
|
|||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (ii = 0; ii < inum; ii++) {
|
||||
i = ilist[ii];
|
||||
xtmp = x[i][0];
|
||||
ytmp = x[i][1];
|
||||
ztmp = x[i][2];
|
||||
vxtmp = v[i][0];
|
||||
vytmp = v[i][1];
|
||||
vztmp = v[i][2];
|
||||
itype = type[i];
|
||||
jlist = firstneigh[i];
|
||||
jnum = numneigh[i];
|
||||
|
||||
for (jj = 0; jj < jnum; jj++) {
|
||||
j = jlist[jj];
|
||||
factor_dpd = special_lj[sbmask(j)];
|
||||
j &= NEIGHMASK;
|
||||
|
||||
delx = xtmp - x[j][0];
|
||||
dely = ytmp - x[j][1];
|
||||
delz = ztmp - x[j][2];
|
||||
rsq = delx*delx + dely*dely + delz*delz;
|
||||
jtype = type[j];
|
||||
|
||||
if (rsq < cutsq[itype][jtype]) {
|
||||
r = sqrt(rsq);
|
||||
if (r < EPSILON) continue; // r can be 0.0 in DPD systems
|
||||
rinv = 1.0/r;
|
||||
delvx = vxtmp - v[j][0];
|
||||
delvy = vytmp - v[j][1];
|
||||
delvz = vztmp - v[j][2];
|
||||
dot = delx*delvx + dely*delvy + delz*delvz;
|
||||
wr = 1.0 - r/cut[itype][jtype];
|
||||
wd = wr*wr;
|
||||
randnum = random->gaussian();
|
||||
gamma_ij = sigma[itype][jtype]*sigma[itype][jtype]/(2.0*force->boltz*temperature);
|
||||
|
||||
// conservative force = a0 * wd
|
||||
// drag force = -gamma * wd^2 * (delx dot delv) / r
|
||||
// random force = sigma * wd * rnd * dtinvsqrt;
|
||||
|
||||
fpair = a0[itype][jtype]*wr;
|
||||
fpair -= gamma_ij*wd*dot*rinv;
|
||||
fpair += sigma[itype][jtype]*wr*randnum*dtinvsqrt;
|
||||
fpair *= factor_dpd*rinv;
|
||||
|
||||
f[i][0] += delx*fpair;
|
||||
f[i][1] += dely*fpair;
|
||||
f[i][2] += delz*fpair;
|
||||
if (newton_pair || j < nlocal) {
|
||||
f[j][0] -= delx*fpair;
|
||||
f[j][1] -= dely*fpair;
|
||||
f[j][2] -= delz*fpair;
|
||||
}
|
||||
|
||||
if (eflag) {
|
||||
// unshifted eng of conservative term:
|
||||
// evdwl = -a0[itype][jtype]*r * (1.0-0.5*r/cut[itype][jtype]);
|
||||
// eng shifted to 0.0 at cutoff
|
||||
evdwl = 0.5*a0[itype][jtype]*cut[itype][jtype] * wd;
|
||||
evdwl *= factor_dpd;
|
||||
}
|
||||
|
||||
if (evflag) ev_tally(i,j,nlocal,newton_pair,
|
||||
evdwl,0.0,fpair,delx,dely,delz);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (vflag_fdotr) virial_fdotr_compute();
|
||||
}
|
||||
|
||||
|
@ -244,11 +317,14 @@ void PairDPDfdt::init_style()
|
|||
if (force->newton_pair == 0 && comm->me == 0) error->warning(FLERR,
|
||||
"Pair dpd/fdt requires newton pair on");
|
||||
|
||||
splitFDT_flag = false;
|
||||
int irequest = neighbor->request(this,instance_me);
|
||||
neighbor->requests[irequest]->ssa = 0;
|
||||
for (int i = 0; i < modify->nfix; i++)
|
||||
if (strcmp(modify->fix[i]->style,"shardlow") == 0)
|
||||
if (strcmp(modify->fix[i]->style,"shardlow") == 0){
|
||||
splitFDT_flag = true;
|
||||
neighbor->requests[irequest]->ssa = 1;
|
||||
}
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
|
|
|
@ -49,6 +49,7 @@ class PairDPDfdt : public Pair {
|
|||
protected:
|
||||
double cut_global;
|
||||
int seed;
|
||||
bool splitFDT_flag;
|
||||
|
||||
void allocate();
|
||||
|
||||
|
|
|
@ -43,6 +43,8 @@ using namespace LAMMPS_NS;
|
|||
PairDPDfdtEnergy::PairDPDfdtEnergy(LAMMPS *lmp) : Pair(lmp)
|
||||
{
|
||||
random = NULL;
|
||||
|
||||
comm_reverse = 2;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
@ -57,9 +59,12 @@ PairDPDfdtEnergy::~PairDPDfdtEnergy()
|
|||
memory->destroy(a0);
|
||||
memory->destroy(sigma);
|
||||
memory->destroy(kappa);
|
||||
if(!splitFDT_flag){
|
||||
memory->destroy(duCond);
|
||||
memory->destroy(duMech);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (random) delete random;
|
||||
}
|
||||
|
||||
|
@ -69,7 +74,9 @@ void PairDPDfdtEnergy::compute(int eflag, int vflag)
|
|||
{
|
||||
int i,j,ii,jj,inum,jnum,itype,jtype;
|
||||
double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair;
|
||||
double rsq,r,rinv,wd,wr,factor_dpd;
|
||||
double vxtmp,vytmp,vztmp,delvx,delvy,delvz;
|
||||
double rsq,r,rinv,wd,wr,factor_dpd,uTmp;
|
||||
double dot,randnum;
|
||||
int *ilist,*jlist,*numneigh,**firstneigh;
|
||||
|
||||
evdwl = 0.0;
|
||||
|
@ -77,11 +84,22 @@ void PairDPDfdtEnergy::compute(int eflag, int vflag)
|
|||
else evflag = vflag_fdotr = 0;
|
||||
|
||||
double **x = atom->x;
|
||||
double **v = atom->v;
|
||||
double **f = atom->f;
|
||||
int *type = atom->type;
|
||||
int nlocal = atom->nlocal;
|
||||
int nghost = atom->nghost;
|
||||
double *special_lj = force->special_lj;
|
||||
int newton_pair = force->newton_pair;
|
||||
double dtinvsqrt = 1.0/sqrt(update->dt);
|
||||
|
||||
double *rmass = atom->rmass;
|
||||
double *mass = atom->mass;
|
||||
double *dpdTheta = atom->dpdTheta;
|
||||
double kappa_ij, alpha_ij, theta_ij, gamma_ij;
|
||||
double mass_i, mass_j;
|
||||
double massinv_i, massinv_j;
|
||||
double randPair, mu_ij;
|
||||
|
||||
inum = list->inum;
|
||||
ilist = list->ilist;
|
||||
|
@ -90,6 +108,7 @@ void PairDPDfdtEnergy::compute(int eflag, int vflag)
|
|||
|
||||
// loop over neighbors of my atoms
|
||||
|
||||
if(splitFDT_flag){
|
||||
for (ii = 0; ii < inum; ii++) {
|
||||
i = ilist[ii];
|
||||
xtmp = x[i][0];
|
||||
|
@ -143,8 +162,136 @@ void PairDPDfdtEnergy::compute(int eflag, int vflag)
|
|||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
// Allocate memory for duCond and duMech
|
||||
if (allocated) {
|
||||
memory->destroy(duCond);
|
||||
memory->destroy(duMech);
|
||||
}
|
||||
memory->create(duCond,nlocal+nghost,"pair:duCond");
|
||||
memory->create(duMech,nlocal+nghost,"pair:duMech");
|
||||
for (int ii = 0; ii < nlocal+nghost; ii++) {
|
||||
duCond[ii] = double(0.0);
|
||||
duMech[ii] = double(0.0);
|
||||
}
|
||||
|
||||
// loop over neighbors of my atoms
|
||||
for (int ii = 0; ii < inum; ii++) {
|
||||
i = ilist[ii];
|
||||
xtmp = x[i][0];
|
||||
ytmp = x[i][1];
|
||||
ztmp = x[i][2];
|
||||
vxtmp = v[i][0];
|
||||
vytmp = v[i][1];
|
||||
vztmp = v[i][2];
|
||||
itype = type[i];
|
||||
jlist = firstneigh[i];
|
||||
jnum = numneigh[i];
|
||||
|
||||
for (jj = 0; jj < jnum; jj++) {
|
||||
j = jlist[jj];
|
||||
factor_dpd = special_lj[sbmask(j)];
|
||||
j &= NEIGHMASK;
|
||||
|
||||
delx = xtmp - x[j][0];
|
||||
dely = ytmp - x[j][1];
|
||||
delz = ztmp - x[j][2];
|
||||
rsq = delx*delx + dely*dely + delz*delz;
|
||||
jtype = type[j];
|
||||
|
||||
if (rsq < cutsq[itype][jtype]) {
|
||||
r = sqrt(rsq);
|
||||
if (r < EPSILON) continue; // r can be 0.0 in DPD systems
|
||||
rinv = 1.0/r;
|
||||
wr = 1.0 - r/cut[itype][jtype];
|
||||
wd = wr*wr;
|
||||
|
||||
delvx = vxtmp - v[j][0];
|
||||
delvy = vytmp - v[j][1];
|
||||
delvz = vztmp - v[j][2];
|
||||
dot = delx*delvx + dely*delvy + delz*delvz;
|
||||
randnum = random->gaussian();
|
||||
|
||||
// Compute the current temperature
|
||||
theta_ij = double(0.5)*(double(1.0)/dpdTheta[i] + double(1.0)/dpdTheta[j]);
|
||||
theta_ij = double(1.0)/theta_ij;
|
||||
|
||||
gamma_ij = sigma[itype][jtype]*sigma[itype][jtype]/(2.0*force->boltz*theta_ij);
|
||||
|
||||
// conservative force = a0 * wr
|
||||
// drag force = -gamma * wr^2 * (delx dot delv) / r
|
||||
// random force = sigma * wr * rnd * dtinvsqrt;
|
||||
|
||||
fpair = a0[itype][jtype]*wr;
|
||||
fpair -= gamma_ij*wd*dot*rinv;
|
||||
fpair += sigma[itype][jtype]*wr*randnum*dtinvsqrt;
|
||||
fpair *= factor_dpd*rinv;
|
||||
|
||||
f[i][0] += delx*fpair;
|
||||
f[i][1] += dely*fpair;
|
||||
f[i][2] += delz*fpair;
|
||||
if (newton_pair || j < nlocal) {
|
||||
f[j][0] -= delx*fpair;
|
||||
f[j][1] -= dely*fpair;
|
||||
f[j][2] -= delz*fpair;
|
||||
}
|
||||
|
||||
if (rmass) {
|
||||
mass_i = rmass[i];
|
||||
mass_j = rmass[j];
|
||||
} else {
|
||||
mass_i = mass[itype];
|
||||
mass_j = mass[jtype];
|
||||
}
|
||||
massinv_i = double(1.0) / mass_i;
|
||||
massinv_j = double(1.0) / mass_j;
|
||||
|
||||
// Compute the mechanical and conductive energy, uMech and uCond
|
||||
mu_ij = massinv_i + massinv_j;
|
||||
mu_ij *= force->ftm2v;
|
||||
|
||||
uTmp = gamma_ij*wd*rinv*rinv*dot*dot - double(0.5)*sigma[itype][jtype]*sigma[itype][jtype]*mu_ij*wd;
|
||||
uTmp -= sigma[itype][jtype]*wr*rinv*dot*randnum*dtinvsqrt;
|
||||
uTmp *= double(0.5);
|
||||
|
||||
duMech[i] += uTmp;
|
||||
if (newton_pair || j < nlocal) {
|
||||
duMech[j] += uTmp;
|
||||
}
|
||||
|
||||
// Compute uCond
|
||||
randnum = random->gaussian();
|
||||
kappa_ij = kappa[itype][jtype];
|
||||
alpha_ij = sqrt(2.0*force->boltz*kappa_ij);
|
||||
randPair = alpha_ij*wr*randnum*dtinvsqrt;
|
||||
|
||||
uTmp = kappa_ij*(double(1.0)/dpdTheta[i] - double(1.0)/dpdTheta[j])*wd;
|
||||
uTmp += randPair;
|
||||
|
||||
duCond[i] += uTmp;
|
||||
if (newton_pair || j < nlocal) {
|
||||
duCond[j] -= uTmp;
|
||||
}
|
||||
|
||||
if (eflag) {
|
||||
// unshifted eng of conservative term:
|
||||
// evdwl = -a0[itype][jtype]*r * (1.0-0.5*r/cut[itype][jtype]);
|
||||
// eng shifted to 0.0 at cutoff
|
||||
evdwl = 0.5*a0[itype][jtype]*cut[itype][jtype] * wd;
|
||||
evdwl *= factor_dpd;
|
||||
}
|
||||
|
||||
if (evflag) ev_tally(i,j,nlocal,newton_pair,
|
||||
evdwl,0.0,fpair,delx,dely,delz);
|
||||
}
|
||||
}
|
||||
}
|
||||
// Communicate the ghost delta energies to the locally owned atoms
|
||||
comm->reverse_comm_pair(this);
|
||||
}
|
||||
if (vflag_fdotr) virial_fdotr_compute();
|
||||
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
|
@ -155,6 +302,8 @@ void PairDPDfdtEnergy::allocate()
|
|||
{
|
||||
allocated = 1;
|
||||
int n = atom->ntypes;
|
||||
int nlocal = atom->nlocal;
|
||||
int nghost = atom->nghost;
|
||||
|
||||
memory->create(setflag,n+1,n+1,"pair:setflag");
|
||||
for (int i = 1; i <= n; i++)
|
||||
|
@ -167,6 +316,10 @@ void PairDPDfdtEnergy::allocate()
|
|||
memory->create(a0,n+1,n+1,"pair:a0");
|
||||
memory->create(sigma,n+1,n+1,"pair:sigma");
|
||||
memory->create(kappa,n+1,n+1,"pair:kappa");
|
||||
if(!splitFDT_flag){
|
||||
memory->create(duCond,nlocal+nghost+1,"pair:duCond");
|
||||
memory->create(duMech,nlocal+nghost+1,"pair:duMech");
|
||||
}
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
|
@ -250,11 +403,14 @@ void PairDPDfdtEnergy::init_style()
|
|||
if (force->newton_pair == 0 && comm->me == 0) error->warning(FLERR,
|
||||
"Pair dpd/fdt/energy requires newton pair on");
|
||||
|
||||
splitFDT_flag = false;
|
||||
int irequest = neighbor->request(this,instance_me);
|
||||
neighbor->requests[irequest]->ssa = 0;
|
||||
for (int i = 0; i < modify->nfix; i++)
|
||||
if (strcmp(modify->fix[i]->style,"shardlow") == 0)
|
||||
if (strcmp(modify->fix[i]->style,"shardlow") == 0){
|
||||
splitFDT_flag = true;
|
||||
neighbor->requests[irequest]->ssa = 1;
|
||||
}
|
||||
|
||||
bool eos_flag = false;
|
||||
for (int i = 0; i < modify->nfix; i++)
|
||||
|
@ -385,3 +541,32 @@ double PairDPDfdtEnergy::single(int i, int j, int itype, int jtype, double rsq,
|
|||
return factor_dpd*phi;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
int PairDPDfdtEnergy::pack_reverse_comm(int n, int first, double *buf)
|
||||
{
|
||||
int i,m,last;
|
||||
|
||||
m = 0;
|
||||
last = first + n;
|
||||
for (i = first; i < last; i++) {
|
||||
buf[m++] = duCond[i];
|
||||
buf[m++] = duMech[i];
|
||||
}
|
||||
return m;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void PairDPDfdtEnergy::unpack_reverse_comm(int n, int *list, double *buf)
|
||||
{
|
||||
int i,j,m;
|
||||
|
||||
m = 0;
|
||||
for (i = 0; i < n; i++) {
|
||||
j = list[i];
|
||||
|
||||
duCond[j] += buf[m++];
|
||||
duMech[j] += buf[m++];
|
||||
}
|
||||
}
|
||||
|
|
|
@ -38,16 +38,20 @@ class PairDPDfdtEnergy : public Pair {
|
|||
virtual void write_restart_settings(FILE *);
|
||||
virtual void read_restart_settings(FILE *);
|
||||
double single(int, int, int, int, double, double, double, double &);
|
||||
int pack_reverse_comm(int, int, double *);
|
||||
void unpack_reverse_comm(int, int *, double *);
|
||||
|
||||
double **cut;
|
||||
double **a0;
|
||||
double **sigma,**kappa;
|
||||
double *duCond,*duMech;
|
||||
|
||||
class RanMars *random;
|
||||
|
||||
protected:
|
||||
double cut_global;
|
||||
int seed;
|
||||
bool splitFDT_flag;
|
||||
|
||||
void allocate();
|
||||
|
||||
|
|
Loading…
Reference in New Issue