Merge pull request #330 from akohlmey/collected-small-bugfixes
Collected small bugfixes
This commit is contained in:
@ -1153,7 +1153,7 @@ Package, Description, Author(s), Doc page, Example, Pic/movie, Library
|
|||||||
"USER-MISC"_#USER-MISC, single-file contributions, USER-MISC/README, USER-MISC/README, -, -, -
|
"USER-MISC"_#USER-MISC, single-file contributions, USER-MISC/README, USER-MISC/README, -, -, -
|
||||||
"USER-MANIFOLD"_#USER-MANIFOLD, motion on 2d surface, Stefan Paquay (Eindhoven U of Technology), "fix manifoldforce"_fix_manifoldforce.html, USER/manifold, "manifold"_manifold, -
|
"USER-MANIFOLD"_#USER-MANIFOLD, motion on 2d surface, Stefan Paquay (Eindhoven U of Technology), "fix manifoldforce"_fix_manifoldforce.html, USER/manifold, "manifold"_manifold, -
|
||||||
"USER-MOLFILE"_#USER-MOLFILE, "VMD"_VMD molfile plug-ins, Axel Kohlmeyer (Temple U), "dump molfile"_dump_molfile.html, -, -, VMD-MOLFILE
|
"USER-MOLFILE"_#USER-MOLFILE, "VMD"_VMD molfile plug-ins, Axel Kohlmeyer (Temple U), "dump molfile"_dump_molfile.html, -, -, VMD-MOLFILE
|
||||||
"USER-NC-DUMP"_#USER-NC-DUMP, dump output via NetCDF, Lars Pastewka (Karlsruhe Institute of Technology, KIT), "dump nc, dump nc/mpiio"_dump_nc.html, -, -, lib/netcdf
|
"USER-NC-DUMP"_#USER-NC-DUMP, dump output via NetCDF, Lars Pastewka (Karlsruhe Institute of Technology, KIT), "dump nc / dump nc/mpiio"_dump_nc.html, -, -, lib/netcdf
|
||||||
"USER-OMP"_#USER-OMP, OpenMP threaded styles, Axel Kohlmeyer (Temple U), "Section 5.3.4"_accelerate_omp.html, -, -, -
|
"USER-OMP"_#USER-OMP, OpenMP threaded styles, Axel Kohlmeyer (Temple U), "Section 5.3.4"_accelerate_omp.html, -, -, -
|
||||||
"USER-PHONON"_#USER-PHONON, phonon dynamical matrix, Ling-Ti Kong (Shanghai Jiao Tong U), "fix phonon"_fix_phonon.html, USER/phonon, -, -
|
"USER-PHONON"_#USER-PHONON, phonon dynamical matrix, Ling-Ti Kong (Shanghai Jiao Tong U), "fix phonon"_fix_phonon.html, USER/phonon, -, -
|
||||||
"USER-QMMM"_#USER-QMMM, QM/MM coupling, Axel Kohlmeyer (Temple U), "fix qmmm"_fix_qmmm.html, USER/qmmm, -, lib/qmmm
|
"USER-QMMM"_#USER-QMMM, QM/MM coupling, Axel Kohlmeyer (Temple U), "fix qmmm"_fix_qmmm.html, USER/qmmm, -, lib/qmmm
|
||||||
@ -1610,11 +1610,12 @@ and a "dump nc/mpiio"_dump_nc.html command to output LAMMPS snapshots
|
|||||||
in this format. See src/USER-NC-DUMP/README for more details.
|
in this format. See src/USER-NC-DUMP/README for more details.
|
||||||
|
|
||||||
NetCDF files can be directly visualized with the following tools:
|
NetCDF files can be directly visualized with the following tools:
|
||||||
|
|
||||||
Ovito (http://www.ovito.org/). Ovito supports the AMBER convention
|
Ovito (http://www.ovito.org/). Ovito supports the AMBER convention
|
||||||
and all of the above extensions. :ulb,l
|
and all of the above extensions. :ulb,l
|
||||||
VMD (http://www.ks.uiuc.edu/Research/vmd/) :l
|
VMD (http://www.ks.uiuc.edu/Research/vmd/) :l
|
||||||
AtomEye (http://www.libatoms.org/). The libAtoms version of AtomEye contains
|
AtomEye (http://www.libatoms.org/). The libAtoms version of AtomEye contains
|
||||||
a NetCDF reader that is not present in the standard distribution of AtomEye :l,ule
|
a NetCDF reader that is not present in the standard distribution of AtomEye :l,ule
|
||||||
|
|
||||||
The person who created these files is Lars Pastewka at
|
The person who created these files is Lars Pastewka at
|
||||||
Karlsruhe Institute of Technology (lars.pastewka at kit.edu).
|
Karlsruhe Institute of Technology (lars.pastewka at kit.edu).
|
||||||
|
|||||||
@ -1727,7 +1727,7 @@ thermodynamic state and a total run time for the simulation. It then
|
|||||||
appends statistics about the CPU time and storage requirements for the
|
appends statistics about the CPU time and storage requirements for the
|
||||||
simulation. An example set of statistics is shown here:
|
simulation. An example set of statistics is shown here:
|
||||||
|
|
||||||
Loop time of 2.81192 on 4 procs for 300 steps with 2004 atoms
|
Loop time of 2.81192 on 4 procs for 300 steps with 2004 atoms :pre
|
||||||
|
|
||||||
Performance: 18.436 ns/day 1.302 hours/ns 106.689 timesteps/s
|
Performance: 18.436 ns/day 1.302 hours/ns 106.689 timesteps/s
|
||||||
97.0% CPU use with 4 MPI tasks x no OpenMP threads :pre
|
97.0% CPU use with 4 MPI tasks x no OpenMP threads :pre
|
||||||
@ -1757,14 +1757,14 @@ Ave special neighs/atom = 2.34032
|
|||||||
Neighbor list builds = 26
|
Neighbor list builds = 26
|
||||||
Dangerous builds = 0 :pre
|
Dangerous builds = 0 :pre
|
||||||
|
|
||||||
The first section provides a global loop timing summary. The loop time
|
The first section provides a global loop timing summary. The {loop time}
|
||||||
is the total wall time for the section. The {Performance} line is
|
is the total wall time for the section. The {Performance} line is
|
||||||
provided for convenience to help predicting the number of loop
|
provided for convenience to help predicting the number of loop
|
||||||
continuations required and for comparing performance with other
|
continuations required and for comparing performance with other,
|
||||||
similar MD codes. The CPU use line provides the CPU utilzation per
|
similar MD codes. The {CPU use} line provides the CPU utilzation per
|
||||||
MPI task; it should be close to 100% times the number of OpenMP
|
MPI task; it should be close to 100% times the number of OpenMP
|
||||||
threads (or 1). Lower numbers correspond to delays due to file I/O or
|
threads (or 1 of no OpenMP). Lower numbers correspond to delays due
|
||||||
insufficient thread utilization.
|
to file I/O or insufficient thread utilization.
|
||||||
|
|
||||||
The MPI task section gives the breakdown of the CPU run time (in
|
The MPI task section gives the breakdown of the CPU run time (in
|
||||||
seconds) into major categories:
|
seconds) into major categories:
|
||||||
@ -1791,7 +1791,7 @@ is present that also prints the CPU utilization in percent. In
|
|||||||
addition, when using {timer full} and the "package omp"_package.html
|
addition, when using {timer full} and the "package omp"_package.html
|
||||||
command are active, a similar timing summary of time spent in threaded
|
command are active, a similar timing summary of time spent in threaded
|
||||||
regions to monitor thread utilization and load balance is provided. A
|
regions to monitor thread utilization and load balance is provided. A
|
||||||
new entry is the {Reduce} section, which lists the time spend in
|
new entry is the {Reduce} section, which lists the time spent in
|
||||||
reducing the per-thread data elements to the storage for non-threaded
|
reducing the per-thread data elements to the storage for non-threaded
|
||||||
computation. These thread timings are taking from the first MPI rank
|
computation. These thread timings are taking from the first MPI rank
|
||||||
only and and thus, as the breakdown for MPI tasks can change from MPI
|
only and and thus, as the breakdown for MPI tasks can change from MPI
|
||||||
|
|||||||
@ -91,6 +91,7 @@ Commands :h1
|
|||||||
suffix
|
suffix
|
||||||
tad
|
tad
|
||||||
temper
|
temper
|
||||||
|
temper_grem
|
||||||
thermo
|
thermo
|
||||||
thermo_modify
|
thermo_modify
|
||||||
thermo_style
|
thermo_style
|
||||||
|
|||||||
@ -35,6 +35,7 @@ Computes :h1
|
|||||||
compute_erotate_sphere_atom
|
compute_erotate_sphere_atom
|
||||||
compute_event_displace
|
compute_event_displace
|
||||||
compute_fep
|
compute_fep
|
||||||
|
compute_global_atom
|
||||||
compute_group_group
|
compute_group_group
|
||||||
compute_gyration
|
compute_gyration
|
||||||
compute_gyration_chunk
|
compute_gyration_chunk
|
||||||
|
|||||||
@ -29,7 +29,7 @@ fix fxgREM all grem 502 -0.15 -80000 fxnvt :pre
|
|||||||
[Description:]
|
[Description:]
|
||||||
|
|
||||||
This fix implements the molecular dynamics version of the generalized
|
This fix implements the molecular dynamics version of the generalized
|
||||||
replica exchange method (gREM) originally developed by "(Kim)"_#Kim,
|
replica exchange method (gREM) originally developed by "(Kim)"_#Kim2010,
|
||||||
which uses non-Boltzmann ensembles to sample over first order phase
|
which uses non-Boltzmann ensembles to sample over first order phase
|
||||||
transitions. The is done by defining replicas with an enthalpy
|
transitions. The is done by defining replicas with an enthalpy
|
||||||
dependent effective temperature
|
dependent effective temperature
|
||||||
@ -103,7 +103,7 @@ npt"_fix_nh.html, "thermo_modify"_thermo_modify.html
|
|||||||
|
|
||||||
:line
|
:line
|
||||||
|
|
||||||
:link(Kim)
|
:link(Kim2010)
|
||||||
[(Kim)] Kim, Keyes, Straub, J Chem. Phys, 132, 224107 (2010).
|
[(Kim)] Kim, Keyes, Straub, J Chem. Phys, 132, 224107 (2010).
|
||||||
|
|
||||||
:link(Malolepsza)
|
:link(Malolepsza)
|
||||||
|
|||||||
@ -23,6 +23,7 @@ Section_history.html
|
|||||||
|
|
||||||
tutorial_drude.html
|
tutorial_drude.html
|
||||||
tutorial_github.html
|
tutorial_github.html
|
||||||
|
tutorial_pylammps.html
|
||||||
|
|
||||||
body.html
|
body.html
|
||||||
manifolds.html
|
manifolds.html
|
||||||
@ -113,6 +114,7 @@ special_bonds.html
|
|||||||
suffix.html
|
suffix.html
|
||||||
tad.html
|
tad.html
|
||||||
temper.html
|
temper.html
|
||||||
|
temper_grem.html
|
||||||
thermo.html
|
thermo.html
|
||||||
thermo_modify.html
|
thermo_modify.html
|
||||||
thermo_style.html
|
thermo_style.html
|
||||||
|
|||||||
@ -32,7 +32,7 @@ Run a parallel tempering or replica exchange simulation in LAMMPS
|
|||||||
partition mode using multiple generalized replicas (ensembles) of a
|
partition mode using multiple generalized replicas (ensembles) of a
|
||||||
system defined by "fix grem"_fix_grem.html, which stands for the
|
system defined by "fix grem"_fix_grem.html, which stands for the
|
||||||
generalized replica exchange method (gREM) originally developed by
|
generalized replica exchange method (gREM) originally developed by
|
||||||
"(Kim)"_#Kim. It uses non-Boltzmann ensembles to sample over first
|
"(Kim)"_#KimStraub. It uses non-Boltzmann ensembles to sample over first
|
||||||
order phase transitions. The is done by defining replicas with an
|
order phase transitions. The is done by defining replicas with an
|
||||||
enthalpy dependent effective temperature
|
enthalpy dependent effective temperature
|
||||||
|
|
||||||
@ -105,5 +105,5 @@ This command must be used with "fix grem"_fix_grem.html.
|
|||||||
|
|
||||||
[Default:] none
|
[Default:] none
|
||||||
|
|
||||||
:link(Kim)
|
:link(KimStraub)
|
||||||
[(Kim)] Kim, Keyes, Straub, J Chem Phys, 132, 224107 (2010).
|
[(Kim)] Kim, Keyes, Straub, J Chem Phys, 132, 224107 (2010).
|
||||||
|
|||||||
@ -33,14 +33,14 @@ timer loop :pre
|
|||||||
Select the level of detail at which LAMMPS performs its CPU timings.
|
Select the level of detail at which LAMMPS performs its CPU timings.
|
||||||
Multiple keywords can be specified with the {timer} command. For
|
Multiple keywords can be specified with the {timer} command. For
|
||||||
keywords that are mutually exclusive, the last one specified takes
|
keywords that are mutually exclusive, the last one specified takes
|
||||||
effect.
|
precedence.
|
||||||
|
|
||||||
During a simulation run LAMMPS collects information about how much
|
During a simulation run LAMMPS collects information about how much
|
||||||
time is spent in different sections of the code and thus can provide
|
time is spent in different sections of the code and thus can provide
|
||||||
information for determining performance and load imbalance problems.
|
information for determining performance and load imbalance problems.
|
||||||
This can be done at different levels of detail and accuracy. For more
|
This can be done at different levels of detail and accuracy. For more
|
||||||
information about the timing output, see this "discussion of screen
|
information about the timing output, see this "discussion of screen
|
||||||
output"_Section_start.html#start_8.
|
output in Section 2.8"_Section_start.html#start_8.
|
||||||
|
|
||||||
The {off} setting will turn all time measurements off. The {loop}
|
The {off} setting will turn all time measurements off. The {loop}
|
||||||
setting will only measure the total time for a run and not collect any
|
setting will only measure the total time for a run and not collect any
|
||||||
@ -52,20 +52,22 @@ procsessors. The {full} setting adds information about CPU
|
|||||||
utilization and thread utilization, when multi-threading is enabled.
|
utilization and thread utilization, when multi-threading is enabled.
|
||||||
|
|
||||||
With the {sync} setting, all MPI tasks are synchronized at each timer
|
With the {sync} setting, all MPI tasks are synchronized at each timer
|
||||||
call which meaures load imbalance more accuractly, though it can also
|
call which measures load imbalance for each section more accuractly,
|
||||||
slow down the simulation. Using the {nosync} setting (which is the
|
though it can also slow down the simulation by prohibiting overlapping
|
||||||
default) turns off this synchronization.
|
independent computations on different MPI ranks Using the {nosync}
|
||||||
|
setting (which is the default) turns this synchronization off.
|
||||||
|
|
||||||
With the {timeout} keyword a walltime limit can be imposed that
|
With the {timeout} keyword a walltime limit can be imposed, that
|
||||||
affects the "run"_run.html and "minimize"_minimize.html commands.
|
affects the "run"_run.html and "minimize"_minimize.html commands.
|
||||||
This can be convenient when runs have to confirm to time limits,
|
This can be convenient when calculations have to comply with execution
|
||||||
e.g. when running under a batch system and you want to maximize
|
time limits, e.g. when running under a batch system when you want to
|
||||||
the utilization of the batch time slot, especially when the time
|
maximize the utilization of the batch time slot, especially for runs
|
||||||
per timestep varies and is thus difficult to predict how many
|
where the time per timestep varies much and thus it becomes difficult
|
||||||
steps a simulation can perform, or for difficult to converge
|
to predict how many steps a simulation can perform for a given walltime
|
||||||
minimizations. The timeout {elapse} value should be somewhat smaller
|
limit. This also applies for difficult to converge minimizations.
|
||||||
than the time requested from the batch system, as there is usually
|
The timeout {elapse} value should be somewhat smaller than the maximum
|
||||||
some overhead to launch jobs, and it may be advisable to write
|
wall time requested from the batch system, as there is usually
|
||||||
|
some overhead to launch jobs, and it is advisable to write
|
||||||
out a restart after terminating a run due to a timeout.
|
out a restart after terminating a run due to a timeout.
|
||||||
|
|
||||||
The timeout timer starts when the command is issued. When the time
|
The timeout timer starts when the command is issued. When the time
|
||||||
|
|||||||
4
src/.gitignore
vendored
4
src/.gitignore
vendored
@ -374,6 +374,8 @@
|
|||||||
/fix_meso.h
|
/fix_meso.h
|
||||||
/fix_meso_stationary.cpp
|
/fix_meso_stationary.cpp
|
||||||
/fix_meso_stationary.h
|
/fix_meso_stationary.h
|
||||||
|
/fix_mscg.cpp
|
||||||
|
/fix_mscg.h
|
||||||
/fix_msst.cpp
|
/fix_msst.cpp
|
||||||
/fix_msst.h
|
/fix_msst.h
|
||||||
/fix_neb.cpp
|
/fix_neb.cpp
|
||||||
@ -394,6 +396,8 @@
|
|||||||
/fix_nph_body.h
|
/fix_nph_body.h
|
||||||
/fix_npt_body.cpp
|
/fix_npt_body.cpp
|
||||||
/fix_npt_body.h
|
/fix_npt_body.h
|
||||||
|
/fix_nvk.cpp
|
||||||
|
/fix_nvk.h
|
||||||
/fix_nvt_body.cpp
|
/fix_nvt_body.cpp
|
||||||
/fix_nvt_body.h
|
/fix_nvt_body.h
|
||||||
/fix_nve_body.cpp
|
/fix_nve_body.cpp
|
||||||
|
|||||||
@ -149,7 +149,7 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
if (narg < iarg+2) error->all(FLERR,"Illegal fix wall/gran command");
|
if (narg < iarg+2) error->all(FLERR,"Illegal fix wall/gran command");
|
||||||
wallstyle = ZCYLINDER;
|
wallstyle = ZCYLINDER;
|
||||||
lo = hi = 0.0;
|
lo = hi = 0.0;
|
||||||
cylradius = force->numeric(FLERR,arg[iarg+3]);
|
cylradius = force->numeric(FLERR,arg[iarg+1]);
|
||||||
iarg += 2;
|
iarg += 2;
|
||||||
} else if (strcmp(arg[iarg],"region") == 0) {
|
} else if (strcmp(arg[iarg],"region") == 0) {
|
||||||
if (narg < iarg+2) error->all(FLERR,"Illegal fix wall/gran command");
|
if (narg < iarg+2) error->all(FLERR,"Illegal fix wall/gran command");
|
||||||
|
|||||||
@ -51,6 +51,8 @@ PairBuckLongCoulLong::PairBuckLongCoulLong(LAMMPS *lmp) : Pair(lmp)
|
|||||||
dispersionflag = ewaldflag = pppmflag = 1;
|
dispersionflag = ewaldflag = pppmflag = 1;
|
||||||
respa_enable = 1;
|
respa_enable = 1;
|
||||||
writedata = 1;
|
writedata = 1;
|
||||||
|
ftable = NULL;
|
||||||
|
fdisptable = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------
|
/* ----------------------------------------------------------------------
|
||||||
@ -230,7 +232,27 @@ void PairBuckLongCoulLong::init_style()
|
|||||||
// require an atom style with charge defined
|
// require an atom style with charge defined
|
||||||
|
|
||||||
if (!atom->q_flag && (ewald_order&(1<<1)))
|
if (!atom->q_flag && (ewald_order&(1<<1)))
|
||||||
error->all(FLERR,"Pair style buck/long/coul/long requires atom attribute q");
|
error->all(FLERR,
|
||||||
|
"Invoking coulombic in pair style buck/long/coul/long requires atom attribute q");
|
||||||
|
|
||||||
|
// ensure use of KSpace long-range solver, set two g_ewalds
|
||||||
|
|
||||||
|
if (force->kspace == NULL)
|
||||||
|
error->all(FLERR,"Pair style requires a KSpace style");
|
||||||
|
if (ewald_order&(1<<1)) g_ewald = force->kspace->g_ewald;
|
||||||
|
if (ewald_order&(1<<6)) g_ewald_6 = force->kspace->g_ewald_6;
|
||||||
|
|
||||||
|
// set rRESPA cutoffs
|
||||||
|
|
||||||
|
if (strstr(update->integrate_style,"respa") &&
|
||||||
|
((Respa *) update->integrate)->level_inner >= 0)
|
||||||
|
cut_respa = ((Respa *) update->integrate)->cutoff;
|
||||||
|
else cut_respa = NULL;
|
||||||
|
|
||||||
|
// setup force tables
|
||||||
|
|
||||||
|
if (ncoultablebits && (ewald_order&(1<<1))) init_tables(cut_coul,cut_respa);
|
||||||
|
if (ndisptablebits && (ewald_order&(1<<6))) init_tables_disp(cut_buck_global);
|
||||||
|
|
||||||
// request regular or rRESPA neighbor lists if neighrequest_flag != 0
|
// request regular or rRESPA neighbor lists if neighrequest_flag != 0
|
||||||
|
|
||||||
@ -271,24 +293,6 @@ void PairBuckLongCoulLong::init_style()
|
|||||||
}
|
}
|
||||||
|
|
||||||
cut_coulsq = cut_coul * cut_coul;
|
cut_coulsq = cut_coul * cut_coul;
|
||||||
|
|
||||||
// set rRESPA cutoffs
|
|
||||||
|
|
||||||
if (strstr(update->integrate_style,"respa") &&
|
|
||||||
((Respa *) update->integrate)->level_inner >= 0)
|
|
||||||
cut_respa = ((Respa *) update->integrate)->cutoff;
|
|
||||||
else cut_respa = NULL;
|
|
||||||
|
|
||||||
// ensure use of KSpace long-range solver, set two g_ewalds
|
|
||||||
|
|
||||||
if (force->kspace == NULL)
|
|
||||||
error->all(FLERR,"Pair style requires a KSpace style");
|
|
||||||
if (ewald_order&(1<<1)) g_ewald = force->kspace->g_ewald;
|
|
||||||
if (ewald_order&(1<<6)) g_ewald_6 = force->kspace->g_ewald_6;
|
|
||||||
// setup force tables
|
|
||||||
|
|
||||||
if (ncoultablebits && (ewald_order&(1<<1))) init_tables(cut_coul,cut_respa);
|
|
||||||
if (ndisptablebits && (ewald_order&(1<<6))) init_tables_disp(cut_buck_global);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------
|
/* ----------------------------------------------------------------------
|
||||||
|
|||||||
@ -81,10 +81,12 @@ void PairLJLongCoulLong::settings(int narg, char **arg)
|
|||||||
{
|
{
|
||||||
if (narg != 3 && narg != 4) error->all(FLERR,"Illegal pair_style command");
|
if (narg != 3 && narg != 4) error->all(FLERR,"Illegal pair_style command");
|
||||||
|
|
||||||
ewald_off = 0;
|
|
||||||
ewald_order = 0;
|
ewald_order = 0;
|
||||||
options(arg, 6);
|
ewald_off = 0;
|
||||||
options(++arg, 1);
|
|
||||||
|
options(arg,6);
|
||||||
|
options(++arg,1);
|
||||||
|
|
||||||
if (!comm->me && ewald_order == ((1<<1) | (1<<6)))
|
if (!comm->me && ewald_order == ((1<<1) | (1<<6)))
|
||||||
error->warning(FLERR,"Using largest cutoff for lj/long/coul/long");
|
error->warning(FLERR,"Using largest cutoff for lj/long/coul/long");
|
||||||
if (!*(++arg))
|
if (!*(++arg))
|
||||||
@ -226,7 +228,26 @@ void PairLJLongCoulLong::init_style()
|
|||||||
|
|
||||||
if (!atom->q_flag && (ewald_order&(1<<1)))
|
if (!atom->q_flag && (ewald_order&(1<<1)))
|
||||||
error->all(FLERR,
|
error->all(FLERR,
|
||||||
"Invoking coulombic in pair style lj/coul requires atom attribute q");
|
"Invoking coulombic in pair style lj/long/coul/long requires atom attribute q");
|
||||||
|
|
||||||
|
// ensure use of KSpace long-range solver, set two g_ewalds
|
||||||
|
|
||||||
|
if (force->kspace == NULL)
|
||||||
|
error->all(FLERR,"Pair style requires a KSpace style");
|
||||||
|
if (ewald_order&(1<<1)) g_ewald = force->kspace->g_ewald;
|
||||||
|
if (ewald_order&(1<<6)) g_ewald_6 = force->kspace->g_ewald_6;
|
||||||
|
|
||||||
|
// set rRESPA cutoffs
|
||||||
|
|
||||||
|
if (strstr(update->integrate_style,"respa") &&
|
||||||
|
((Respa *) update->integrate)->level_inner >= 0)
|
||||||
|
cut_respa = ((Respa *) update->integrate)->cutoff;
|
||||||
|
else cut_respa = NULL;
|
||||||
|
|
||||||
|
// setup force tables
|
||||||
|
|
||||||
|
if (ncoultablebits && (ewald_order&(1<<1))) init_tables(cut_coul,cut_respa);
|
||||||
|
if (ndisptablebits && (ewald_order&(1<<6))) init_tables_disp(cut_lj_global);
|
||||||
|
|
||||||
// request regular or rRESPA neighbor lists if neighrequest_flag != 0
|
// request regular or rRESPA neighbor lists if neighrequest_flag != 0
|
||||||
|
|
||||||
@ -265,27 +286,8 @@ void PairLJLongCoulLong::init_style()
|
|||||||
|
|
||||||
} else irequest = neighbor->request(this,instance_me);
|
} else irequest = neighbor->request(this,instance_me);
|
||||||
}
|
}
|
||||||
|
|
||||||
cut_coulsq = cut_coul * cut_coul;
|
cut_coulsq = cut_coul * cut_coul;
|
||||||
|
|
||||||
// set rRESPA cutoffs
|
|
||||||
|
|
||||||
if (strstr(update->integrate_style,"respa") &&
|
|
||||||
((Respa *) update->integrate)->level_inner >= 0)
|
|
||||||
cut_respa = ((Respa *) update->integrate)->cutoff;
|
|
||||||
else cut_respa = NULL;
|
|
||||||
|
|
||||||
// ensure use of KSpace long-range solver, set g_ewald
|
|
||||||
|
|
||||||
if (force->kspace == NULL)
|
|
||||||
error->all(FLERR,"Pair style requires a KSpace style");
|
|
||||||
if (force->kspace) g_ewald = force->kspace->g_ewald;
|
|
||||||
if (force->kspace) g_ewald_6 = force->kspace->g_ewald_6;
|
|
||||||
|
|
||||||
// setup force tables
|
|
||||||
|
|
||||||
if (ncoultablebits && (ewald_order&(1<<1))) init_tables(cut_coul,cut_respa);
|
|
||||||
if (ndisptablebits && (ewald_order&(1<<6))) init_tables_disp(cut_lj_global);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------
|
/* ----------------------------------------------------------------------
|
||||||
|
|||||||
@ -54,7 +54,7 @@ MPI_LIB =
|
|||||||
|
|
||||||
FFT_INC = -DFFT_MKL -DFFT_SINGLE
|
FFT_INC = -DFFT_MKL -DFFT_SINGLE
|
||||||
FFT_PATH =
|
FFT_PATH =
|
||||||
FFT_LIB = -L$MKLROOT/lib/intel64/ -lmkl_intel_ilp64 \
|
FFT_LIB = -L$(MKLROOT)/lib/intel64/ -lmkl_intel_ilp64 \
|
||||||
-lmkl_sequential -lmkl_core
|
-lmkl_sequential -lmkl_core
|
||||||
|
|
||||||
# JPEG and/or PNG library
|
# JPEG and/or PNG library
|
||||||
|
|||||||
@ -54,7 +54,7 @@ MPI_LIB =
|
|||||||
|
|
||||||
FFT_INC = -DFFT_MKL -DFFT_SINGLE
|
FFT_INC = -DFFT_MKL -DFFT_SINGLE
|
||||||
FFT_PATH =
|
FFT_PATH =
|
||||||
FFT_LIB = -L$MKLROOT/lib/intel64/ -lmkl_intel_ilp64 \
|
FFT_LIB = -L$(MKLROOT)/lib/intel64/ -lmkl_intel_ilp64 \
|
||||||
-lmkl_sequential -lmkl_core
|
-lmkl_sequential -lmkl_core
|
||||||
|
|
||||||
# JPEG and/or PNG library
|
# JPEG and/or PNG library
|
||||||
|
|||||||
@ -54,7 +54,7 @@ MPI_LIB =
|
|||||||
|
|
||||||
FFT_INC = -DFFT_MKL -DFFT_SINGLE
|
FFT_INC = -DFFT_MKL -DFFT_SINGLE
|
||||||
FFT_PATH =
|
FFT_PATH =
|
||||||
FFT_LIB = -L$MKLROOT/lib/intel64/ -lmkl_intel_ilp64 \
|
FFT_LIB = -L$(MKLROOT)/lib/intel64/ -lmkl_intel_ilp64 \
|
||||||
-lmkl_sequential -lmkl_core
|
-lmkl_sequential -lmkl_core
|
||||||
|
|
||||||
# JPEG and/or PNG library
|
# JPEG and/or PNG library
|
||||||
|
|||||||
@ -493,7 +493,7 @@ ComputeChunkAtom::~ComputeChunkAtom()
|
|||||||
{
|
{
|
||||||
// check nfix in case all fixes have already been deleted
|
// check nfix in case all fixes have already been deleted
|
||||||
|
|
||||||
if (modify->nfix) modify->delete_fix(id_fix);
|
if (id_fix && modify->nfix) modify->delete_fix(id_fix);
|
||||||
delete [] id_fix;
|
delete [] id_fix;
|
||||||
|
|
||||||
memory->destroy(chunk);
|
memory->destroy(chunk);
|
||||||
|
|||||||
@ -247,7 +247,7 @@ void Finish::end(int flag)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// PRD stats using PAIR,BOND,KSPACE for dephase,dynamics,quench
|
// PRD stats
|
||||||
|
|
||||||
if (prdflag) {
|
if (prdflag) {
|
||||||
if (me == 0) {
|
if (me == 0) {
|
||||||
@ -329,7 +329,7 @@ void Finish::end(int flag)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TAD stats using PAIR,BOND,KSPACE for neb,dynamics,quench
|
// TAD stats
|
||||||
|
|
||||||
if (tadflag) {
|
if (tadflag) {
|
||||||
if (me == 0) {
|
if (me == 0) {
|
||||||
@ -415,7 +415,7 @@ void Finish::end(int flag)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// HYPER stats using PAIR,BOND,KSPACE for dynamics,quench
|
// HYPER stats
|
||||||
|
|
||||||
if (hyperflag) {
|
if (hyperflag) {
|
||||||
if (me == 0) {
|
if (me == 0) {
|
||||||
@ -912,7 +912,7 @@ void mpi_timings(const char *label, Timer *t, enum Timer::ttype tt,
|
|||||||
time_cpu = tmp/nprocs*100.0;
|
time_cpu = tmp/nprocs*100.0;
|
||||||
|
|
||||||
// % variance from the average as measure of load imbalance
|
// % variance from the average as measure of load imbalance
|
||||||
if ((time_sq/time - time) > 1.0e-10)
|
if ((time > 0.001) && ((time_sq/time - time) > 1.0e-10))
|
||||||
time_sq = sqrt(time_sq/time - time)*100.0;
|
time_sq = sqrt(time_sq/time - time)*100.0;
|
||||||
else
|
else
|
||||||
time_sq = 0.0;
|
time_sq = 0.0;
|
||||||
@ -964,7 +964,7 @@ void omp_times(FixOMP *fix, const char *label, enum Timer::ttype which,
|
|||||||
time_std /= nthreads;
|
time_std /= nthreads;
|
||||||
time_total /= nthreads;
|
time_total /= nthreads;
|
||||||
|
|
||||||
if ((time_std/time_avg -time_avg) > 1.0e-10)
|
if ((time_avg > 0.001) && ((time_std/time_avg -time_avg) > 1.0e-10))
|
||||||
time_std = sqrt(time_std/time_avg - time_avg)*100.0;
|
time_std = sqrt(time_std/time_avg - time_avg)*100.0;
|
||||||
else
|
else
|
||||||
time_std = 0.0;
|
time_std = 0.0;
|
||||||
|
|||||||
Reference in New Issue
Block a user