mirror of https://github.com/lammps/lammps.git
git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@13114 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
parent
20032cd0a7
commit
77f87a6d1b
|
@ -36,7 +36,7 @@
|
|||
6.21 <A HREF = "#howto_21">Calculating viscosity</A><BR>
|
||||
6.22 <A HREF = "#howto_22">Calculating a diffusion coefficient</A><BR>
|
||||
6.23 <A HREF = "#howto_23">Using chunks to calculate system properties</A><BR>
|
||||
6.24 <A HREF = "#howto_24">Setting parameters for the pppm/disp</A> <BR>
|
||||
6.24 <A HREF = "#howto_24">Setting parameters for the kspace_style pppm/disp command</A> <BR>
|
||||
|
||||
<P>The example input scripts included in the LAMMPS distribution and
|
||||
highlighted in <A HREF = "Section_example.html">Section_example</A> also show how to
|
||||
|
@ -2316,61 +2316,62 @@ fix 1 all ave/histo 100 1 100 0 20 20 c_size mode vector ave running beyond igno
|
|||
</PRE>
|
||||
<HR>
|
||||
|
||||
<A NAME = "howto_24"></A><H4>6.24 Setting parameters for pppm/disp
|
||||
<A NAME = "howto_24"></A><H4>6.24 Setting parameters for the <A HREF = "kspace_style.html">kspace_style pppm/disp</A> command
|
||||
</H4>
|
||||
<P>The PPPM method computes interactions by splitting the pair potential
|
||||
into two parts, one of which is computed in a normal pairwise fashion,
|
||||
the so-called real-space part, and one of which is computed using the
|
||||
Fourier transform, the so called reciprocal-space or kspace part.
|
||||
For both parts, the potential is not computed exactly but is approximated.
|
||||
Thus, there is an error in both parts of the computation, the real-space
|
||||
and the kspace error. The just mentioned facts are true both for the
|
||||
PPPM for Coulomb as well as dispersion interactions. The deciding
|
||||
difference - and also the reason why the parameters for pppm/disp
|
||||
have to be selected with more care - is the impact of the errors on
|
||||
the results: The kspace error of the PPPM for Coulomb and dispersion
|
||||
interaction and the real-space error of the PPPM for Coulomb interaction
|
||||
have the character of noise. In contrast, the real-space error of the
|
||||
PPPM for dispersion has a clear physical interpretation: the underprediction
|
||||
of cohesion. As a consequence, the real-space error has a much stronger
|
||||
effect than the kspace error on simulation results for pppm/disp.
|
||||
Parameters must thus be chosen in a way that this error is much smaller
|
||||
than the kspace error.
|
||||
Fourier transform, the so called reciprocal-space or kspace part. For
|
||||
both parts, the potential is not computed exactly but is approximated.
|
||||
Thus, there is an error in both parts of the computation, the
|
||||
real-space and the kspace error. The just mentioned facts are true
|
||||
both for the PPPM for Coulomb as well as dispersion interactions. The
|
||||
deciding difference - and also the reason why the parameters for
|
||||
pppm/disp have to be selected with more care - is the impact of the
|
||||
errors on the results: The kspace error of the PPPM for Coulomb and
|
||||
dispersion interaction and the real-space error of the PPPM for
|
||||
Coulomb interaction have the character of noise. In contrast, the
|
||||
real-space error of the PPPM for dispersion has a clear physical
|
||||
interpretation: the underprediction of cohesion. As a consequence, the
|
||||
real-space error has a much stronger effect than the kspace error on
|
||||
simulation results for pppm/disp. Parameters must thus be chosen in a
|
||||
way that this error is much smaller than the kspace error.
|
||||
</P>
|
||||
<P>When using pppm/disp and not making any specifications on the
|
||||
PPPM parameters via the kspace modify command, parameters will be
|
||||
tuned such that the real-space error and the kspace error are equal.
|
||||
This will result in simulations that are either inaccurate or slow,
|
||||
both of which is not desirable. For selecting parameters for the
|
||||
pppm/disp that provide fast and accurate simulations, there are two
|
||||
approaches, which both have their up- and downsides.
|
||||
<P>When using pppm/disp and not making any specifications on the PPPM
|
||||
parameters via the kspace modify command, parameters will be tuned
|
||||
such that the real-space error and the kspace error are equal. This
|
||||
will result in simulations that are either inaccurate or slow, both of
|
||||
which is not desirable. For selecting parameters for the pppm/disp
|
||||
that provide fast and accurate simulations, there are two approaches,
|
||||
which both have their up- and downsides.
|
||||
</P>
|
||||
<P>The first approach is to set desired real-space an kspace accuracies
|
||||
via the <I>kspace_modify force/disp/real</I> and
|
||||
<I>kspace_modify force/disp/kspace</I> commands. Note that the accuracies
|
||||
have to be specified in force units and are thus dependend on the chosen
|
||||
unit settings. For real units, 0.0001 and 0.002 seem to provide reasonable
|
||||
accurate and efficient computations for the real-space and kspace accuracies.
|
||||
0.002 and 0.05 work well for most systems using lj units. PPPM parameters will
|
||||
be generated based on the desired accuracies. The upside of
|
||||
this approach is that it usually provides
|
||||
a good set of parameters and will work for both the <I>kspace_modify diff ad</I>
|
||||
and <I>kspace_modify diff ik</I> options.
|
||||
The downside of the method is that setting
|
||||
the PPPM parameters will take some time during the initialization of
|
||||
the simulation.
|
||||
via the <I>kspace_modify force/disp/real</I> and <I>kspace_modify
|
||||
force/disp/kspace</I> commands. Note that the accuracies have to be
|
||||
specified in force units and are thus dependend on the chosen unit
|
||||
settings. For real units, 0.0001 and 0.002 seem to provide reasonable
|
||||
accurate and efficient computations for the real-space and kspace
|
||||
accuracies. 0.002 and 0.05 work well for most systems using lj
|
||||
units. PPPM parameters will be generated based on the desired
|
||||
accuracies. The upside of this approach is that it usually provides a
|
||||
good set of parameters and will work for both the <I>kspace_modify diff
|
||||
ad</I> and <I>kspace_modify diff ik</I> options. The downside of the method
|
||||
is that setting the PPPM parameters will take some time during the
|
||||
initialization of the simulation.
|
||||
</P>
|
||||
<P>The second approach is to set the parameters for the pppm/disp explicitly
|
||||
using the <I>kspace_modify mesh/disp</I>, <I>kspace_modify order/disp</I>,
|
||||
and <I>kspace_modify gewald/disp</I> commands. This approach requires a
|
||||
more experienced user who understands well the impact of the choice of parameters
|
||||
on the simulation accuracy and performance. This approach provides a
|
||||
fast initialization of the simulation. However, it is sensitive to errors:
|
||||
A combination of parameters that will perform well for one system might result
|
||||
in far-from-optimal conditions for other simulations. For example, parametes
|
||||
that provide accurate and fast computations for all-atomistic force fields
|
||||
can provide insufficient accuracy or united-atomistic force fields (which is
|
||||
related to that the latter typically have larger dispersion coefficients).
|
||||
<P>The second approach is to set the parameters for the pppm/disp
|
||||
explicitly using the <I>kspace_modify mesh/disp</I>, <I>kspace_modify
|
||||
order/disp</I>, and <I>kspace_modify gewald/disp</I> commands. This approach
|
||||
requires a more experienced user who understands well the impact of
|
||||
the choice of parameters on the simulation accuracy and
|
||||
performance. This approach provides a fast initialization of the
|
||||
simulation. However, it is sensitive to errors: A combination of
|
||||
parameters that will perform well for one system might result in
|
||||
far-from-optimal conditions for other simulations. For example,
|
||||
parametes that provide accurate and fast computations for
|
||||
all-atomistic force fields can provide insufficient accuracy or
|
||||
united-atomistic force fields (which is related to that the latter
|
||||
typically have larger dispersion coefficients).
|
||||
</P>
|
||||
<P>To avoid inaccurate or inefficient simulations, the pppm/disp stops
|
||||
simulations with an error message if no action is taken to control the
|
||||
|
@ -2379,34 +2380,35 @@ real-space and kspace accuracies are desired to be equal, this error
|
|||
message can be suppressed using the <I>kspace_modify disp/auto yes</I>
|
||||
command.
|
||||
</P>
|
||||
<P>A reasonable approach that combines the upsides of both methods
|
||||
is to make the first run using the <I>kspace_modify force/disp/real</I>
|
||||
and <I>kspace_modify force/disp/kspace</I> commands, write down the PPPM parameters
|
||||
from the outut, and specify these parameters using the second approach
|
||||
in subsequent runs (which have the same composition, force field, and
|
||||
approximately the same volume).
|
||||
<P>A reasonable approach that combines the upsides of both methods is to
|
||||
make the first run using the <I>kspace_modify force/disp/real</I> and
|
||||
<I>kspace_modify force/disp/kspace</I> commands, write down the PPPM
|
||||
parameters from the outut, and specify these parameters using the
|
||||
second approach in subsequent runs (which have the same composition,
|
||||
force field, and approximately the same volume).
|
||||
</P>
|
||||
<P>Concerning the performance of the pppm/disp there are two more
|
||||
things to consider. The first is that when using the pppm/disp, the
|
||||
cutoff parameter does no longer affect the accuracy of the simulation
|
||||
<P>Concerning the performance of the pppm/disp there are two more things
|
||||
to consider. The first is that when using the pppm/disp, the cutoff
|
||||
parameter does no longer affect the accuracy of the simulation
|
||||
(subject to that gewald/disp is adjusted when changing the cutoff).
|
||||
The performance can thus be increased by examining different values
|
||||
for the cutoff parameter. A lower bound for the cutoff is only set
|
||||
by the truncation error of the repulsive term of pair potentials.
|
||||
for the cutoff parameter. A lower bound for the cutoff is only set by
|
||||
the truncation error of the repulsive term of pair potentials.
|
||||
</P>
|
||||
<P>The second is that the mixing rule of the pair style has an impact on
|
||||
the computation time when using the pppm/disp. Fastest computations are
|
||||
achieved when using the geometric mixing rule. Using the arithmetic
|
||||
mixing rule substantially increases the computational cost.
|
||||
The computational overhead can be reduced using the
|
||||
<I>kspace_modify mix/disp geom</I> and <I>kspace_modify splittol</I>
|
||||
commands. The first command simply enforces geometric mixing of the
|
||||
dispersion coeffiecients in kspace computations.
|
||||
This introduces some error in the computations but will also significantly
|
||||
speed-up the simulations. The second keyword sets the accuracy with
|
||||
which the dispersion coefficients are approximated using a matrix factorization approach.
|
||||
This may result in better accuracy then using the first command, but will
|
||||
usually also not provide an equally good increase of efficiency.
|
||||
the computation time when using the pppm/disp. Fastest computations
|
||||
are achieved when using the geometric mixing rule. Using the
|
||||
arithmetic mixing rule substantially increases the computational cost.
|
||||
The computational overhead can be reduced using the <I>kspace_modify
|
||||
mix/disp geom</I> and <I>kspace_modify splittol</I> commands. The first
|
||||
command simply enforces geometric mixing of the dispersion
|
||||
coeffiecients in kspace computations. This introduces some error in
|
||||
the computations but will also significantly speed-up the
|
||||
simulations. The second keyword sets the accuracy with which the
|
||||
dispersion coefficients are approximated using a matrix factorization
|
||||
approach. This may result in better accuracy then using the first
|
||||
command, but will usually also not provide an equally good increase of
|
||||
efficiency.
|
||||
</P>
|
||||
<P>Finally, pppm/disp can also be used when no mixing rules apply.
|
||||
This can be achieved using the <I>kspace_modify mix/disp none</I> command.
|
||||
|
|
|
@ -33,7 +33,7 @@ This section describes how to perform common tasks using LAMMPS.
|
|||
6.21 "Calculating viscosity"_#howto_21
|
||||
6.22 "Calculating a diffusion coefficient"_#howto_22
|
||||
6.23 "Using chunks to calculate system properties"_#howto_23
|
||||
6.24 "Setting parameters for the pppm/disp"_#howto_24 :all(b)
|
||||
6.24 "Setting parameters for the kspace_style pppm/disp command"_#howto_24 :all(b)
|
||||
|
||||
The example input scripts included in the LAMMPS distribution and
|
||||
highlighted in "Section_example"_Section_example.html also show how to
|
||||
|
@ -2301,61 +2301,62 @@ fix 1 all ave/histo 100 1 100 0 20 20 c_size mode vector ave running beyond igno
|
|||
|
||||
:line
|
||||
|
||||
6.24 Setting parameters for pppm/disp :link(howto_24),h4
|
||||
6.24 Setting parameters for the "kspace_style pppm/disp"_kspace_style.html command :link(howto_24),h4
|
||||
|
||||
The PPPM method computes interactions by splitting the pair potential
|
||||
into two parts, one of which is computed in a normal pairwise fashion,
|
||||
the so-called real-space part, and one of which is computed using the
|
||||
Fourier transform, the so called reciprocal-space or kspace part.
|
||||
For both parts, the potential is not computed exactly but is approximated.
|
||||
Thus, there is an error in both parts of the computation, the real-space
|
||||
and the kspace error. The just mentioned facts are true both for the
|
||||
PPPM for Coulomb as well as dispersion interactions. The deciding
|
||||
difference - and also the reason why the parameters for pppm/disp
|
||||
have to be selected with more care - is the impact of the errors on
|
||||
the results: The kspace error of the PPPM for Coulomb and dispersion
|
||||
interaction and the real-space error of the PPPM for Coulomb interaction
|
||||
have the character of noise. In contrast, the real-space error of the
|
||||
PPPM for dispersion has a clear physical interpretation: the underprediction
|
||||
of cohesion. As a consequence, the real-space error has a much stronger
|
||||
effect than the kspace error on simulation results for pppm/disp.
|
||||
Parameters must thus be chosen in a way that this error is much smaller
|
||||
than the kspace error.
|
||||
Fourier transform, the so called reciprocal-space or kspace part. For
|
||||
both parts, the potential is not computed exactly but is approximated.
|
||||
Thus, there is an error in both parts of the computation, the
|
||||
real-space and the kspace error. The just mentioned facts are true
|
||||
both for the PPPM for Coulomb as well as dispersion interactions. The
|
||||
deciding difference - and also the reason why the parameters for
|
||||
pppm/disp have to be selected with more care - is the impact of the
|
||||
errors on the results: The kspace error of the PPPM for Coulomb and
|
||||
dispersion interaction and the real-space error of the PPPM for
|
||||
Coulomb interaction have the character of noise. In contrast, the
|
||||
real-space error of the PPPM for dispersion has a clear physical
|
||||
interpretation: the underprediction of cohesion. As a consequence, the
|
||||
real-space error has a much stronger effect than the kspace error on
|
||||
simulation results for pppm/disp. Parameters must thus be chosen in a
|
||||
way that this error is much smaller than the kspace error.
|
||||
|
||||
When using pppm/disp and not making any specifications on the
|
||||
PPPM parameters via the kspace modify command, parameters will be
|
||||
tuned such that the real-space error and the kspace error are equal.
|
||||
This will result in simulations that are either inaccurate or slow,
|
||||
both of which is not desirable. For selecting parameters for the
|
||||
pppm/disp that provide fast and accurate simulations, there are two
|
||||
approaches, which both have their up- and downsides.
|
||||
When using pppm/disp and not making any specifications on the PPPM
|
||||
parameters via the kspace modify command, parameters will be tuned
|
||||
such that the real-space error and the kspace error are equal. This
|
||||
will result in simulations that are either inaccurate or slow, both of
|
||||
which is not desirable. For selecting parameters for the pppm/disp
|
||||
that provide fast and accurate simulations, there are two approaches,
|
||||
which both have their up- and downsides.
|
||||
|
||||
The first approach is to set desired real-space an kspace accuracies
|
||||
via the {kspace_modify force/disp/real} and
|
||||
{kspace_modify force/disp/kspace} commands. Note that the accuracies
|
||||
have to be specified in force units and are thus dependend on the chosen
|
||||
unit settings. For real units, 0.0001 and 0.002 seem to provide reasonable
|
||||
accurate and efficient computations for the real-space and kspace accuracies.
|
||||
0.002 and 0.05 work well for most systems using lj units. PPPM parameters will
|
||||
be generated based on the desired accuracies. The upside of
|
||||
this approach is that it usually provides
|
||||
a good set of parameters and will work for both the {kspace_modify diff ad}
|
||||
and {kspace_modify diff ik} options.
|
||||
The downside of the method is that setting
|
||||
the PPPM parameters will take some time during the initialization of
|
||||
the simulation.
|
||||
via the {kspace_modify force/disp/real} and {kspace_modify
|
||||
force/disp/kspace} commands. Note that the accuracies have to be
|
||||
specified in force units and are thus dependend on the chosen unit
|
||||
settings. For real units, 0.0001 and 0.002 seem to provide reasonable
|
||||
accurate and efficient computations for the real-space and kspace
|
||||
accuracies. 0.002 and 0.05 work well for most systems using lj
|
||||
units. PPPM parameters will be generated based on the desired
|
||||
accuracies. The upside of this approach is that it usually provides a
|
||||
good set of parameters and will work for both the {kspace_modify diff
|
||||
ad} and {kspace_modify diff ik} options. The downside of the method
|
||||
is that setting the PPPM parameters will take some time during the
|
||||
initialization of the simulation.
|
||||
|
||||
The second approach is to set the parameters for the pppm/disp explicitly
|
||||
using the {kspace_modify mesh/disp}, {kspace_modify order/disp},
|
||||
and {kspace_modify gewald/disp} commands. This approach requires a
|
||||
more experienced user who understands well the impact of the choice of parameters
|
||||
on the simulation accuracy and performance. This approach provides a
|
||||
fast initialization of the simulation. However, it is sensitive to errors:
|
||||
A combination of parameters that will perform well for one system might result
|
||||
in far-from-optimal conditions for other simulations. For example, parametes
|
||||
that provide accurate and fast computations for all-atomistic force fields
|
||||
can provide insufficient accuracy or united-atomistic force fields (which is
|
||||
related to that the latter typically have larger dispersion coefficients).
|
||||
The second approach is to set the parameters for the pppm/disp
|
||||
explicitly using the {kspace_modify mesh/disp}, {kspace_modify
|
||||
order/disp}, and {kspace_modify gewald/disp} commands. This approach
|
||||
requires a more experienced user who understands well the impact of
|
||||
the choice of parameters on the simulation accuracy and
|
||||
performance. This approach provides a fast initialization of the
|
||||
simulation. However, it is sensitive to errors: A combination of
|
||||
parameters that will perform well for one system might result in
|
||||
far-from-optimal conditions for other simulations. For example,
|
||||
parametes that provide accurate and fast computations for
|
||||
all-atomistic force fields can provide insufficient accuracy or
|
||||
united-atomistic force fields (which is related to that the latter
|
||||
typically have larger dispersion coefficients).
|
||||
|
||||
To avoid inaccurate or inefficient simulations, the pppm/disp stops
|
||||
simulations with an error message if no action is taken to control the
|
||||
|
@ -2364,34 +2365,35 @@ real-space and kspace accuracies are desired to be equal, this error
|
|||
message can be suppressed using the {kspace_modify disp/auto yes}
|
||||
command.
|
||||
|
||||
A reasonable approach that combines the upsides of both methods
|
||||
is to make the first run using the {kspace_modify force/disp/real}
|
||||
and {kspace_modify force/disp/kspace} commands, write down the PPPM parameters
|
||||
from the outut, and specify these parameters using the second approach
|
||||
in subsequent runs (which have the same composition, force field, and
|
||||
approximately the same volume).
|
||||
A reasonable approach that combines the upsides of both methods is to
|
||||
make the first run using the {kspace_modify force/disp/real} and
|
||||
{kspace_modify force/disp/kspace} commands, write down the PPPM
|
||||
parameters from the outut, and specify these parameters using the
|
||||
second approach in subsequent runs (which have the same composition,
|
||||
force field, and approximately the same volume).
|
||||
|
||||
Concerning the performance of the pppm/disp there are two more
|
||||
things to consider. The first is that when using the pppm/disp, the
|
||||
cutoff parameter does no longer affect the accuracy of the simulation
|
||||
Concerning the performance of the pppm/disp there are two more things
|
||||
to consider. The first is that when using the pppm/disp, the cutoff
|
||||
parameter does no longer affect the accuracy of the simulation
|
||||
(subject to that gewald/disp is adjusted when changing the cutoff).
|
||||
The performance can thus be increased by examining different values
|
||||
for the cutoff parameter. A lower bound for the cutoff is only set
|
||||
by the truncation error of the repulsive term of pair potentials.
|
||||
for the cutoff parameter. A lower bound for the cutoff is only set by
|
||||
the truncation error of the repulsive term of pair potentials.
|
||||
|
||||
The second is that the mixing rule of the pair style has an impact on
|
||||
the computation time when using the pppm/disp. Fastest computations are
|
||||
achieved when using the geometric mixing rule. Using the arithmetic
|
||||
mixing rule substantially increases the computational cost.
|
||||
The computational overhead can be reduced using the
|
||||
{kspace_modify mix/disp geom} and {kspace_modify splittol}
|
||||
commands. The first command simply enforces geometric mixing of the
|
||||
dispersion coeffiecients in kspace computations.
|
||||
This introduces some error in the computations but will also significantly
|
||||
speed-up the simulations. The second keyword sets the accuracy with
|
||||
which the dispersion coefficients are approximated using a matrix factorization approach.
|
||||
This may result in better accuracy then using the first command, but will
|
||||
usually also not provide an equally good increase of efficiency.
|
||||
the computation time when using the pppm/disp. Fastest computations
|
||||
are achieved when using the geometric mixing rule. Using the
|
||||
arithmetic mixing rule substantially increases the computational cost.
|
||||
The computational overhead can be reduced using the {kspace_modify
|
||||
mix/disp geom} and {kspace_modify splittol} commands. The first
|
||||
command simply enforces geometric mixing of the dispersion
|
||||
coeffiecients in kspace computations. This introduces some error in
|
||||
the computations but will also significantly speed-up the
|
||||
simulations. The second keyword sets the accuracy with which the
|
||||
dispersion coefficients are approximated using a matrix factorization
|
||||
approach. This may result in better accuracy then using the first
|
||||
command, but will usually also not provide an equally good increase of
|
||||
efficiency.
|
||||
|
||||
Finally, pppm/disp can also be used when no mixing rules apply.
|
||||
This can be achieved using the {kspace_modify mix/disp none} command.
|
||||
|
|
Loading…
Reference in New Issue