diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index ed37fa80b9..0e42635244 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -83,7 +83,7 @@ src/bond.* @sjplimp src/comm*.* @sjplimp src/compute.* @sjplimp src/dihedral.* @sjplimp -src/domain.* @sjplimp +src/domain.* @sjplimp @stanmoore1 src/dump*.* @sjplimp src/error.* @sjplimp src/finish.* @sjplimp diff --git a/cmake/Modules/Packages/KOKKOS.cmake b/cmake/Modules/Packages/KOKKOS.cmake index 9324ea95c4..e74893d0d0 100644 --- a/cmake/Modules/Packages/KOKKOS.cmake +++ b/cmake/Modules/Packages/KOKKOS.cmake @@ -139,12 +139,9 @@ if(PKG_KSPACE) message(WARNING "Using KISS FFT with the CUDA backend of Kokkos may be sub-optimal.") target_compile_definitions(lammps PRIVATE -DFFT_KOKKOS_KISS) elseif(FFT_KOKKOS STREQUAL "CUFFT") - find_library(CUFFT_LIBRARY cufft) - if (CUFFT_LIBRARY STREQUAL "CUFFT_LIBRARY-NOTFOUND") - message(FATAL_ERROR "Required cuFFT library not found. Check your environment or set CUFFT_LIBRARY to its location") - endif() + find_package(CUDAToolkit REQUIRED) target_compile_definitions(lammps PRIVATE -DFFT_KOKKOS_CUFFT) - target_link_libraries(lammps PRIVATE ${CUFFT_LIBRARY}) + target_link_libraries(lammps PRIVATE CUDA::cufft) endif() elseif(Kokkos_ENABLE_HIP) if(NOT ((FFT_KOKKOS STREQUAL "KISS") OR (FFT_KOKKOS STREQUAL "HIPFFT"))) diff --git a/doc/src/Developer_utils.rst b/doc/src/Developer_utils.rst index 625ce15202..76e90e17ba 100644 --- a/doc/src/Developer_utils.rst +++ b/doc/src/Developer_utils.rst @@ -635,10 +635,10 @@ Tohoku University (under MIT license) ---------- -.. doxygenfunction:: MathEigen::jacobi3(double const *const *mat, double *eval, double **evec) +.. doxygenfunction:: MathEigen::jacobi3(double const *const *mat, double *eval, double **evec, int sort) :project: progguide -.. doxygenfunction:: MathEigen::jacobi3(double const mat[3][3], double *eval, double evec[3][3]) +.. doxygenfunction:: MathEigen::jacobi3(double const mat[3][3], double *eval, double evec[3][3], int sort) :project: progguide --------------------------- diff --git a/doc/src/Errors_details.rst b/doc/src/Errors_details.rst index b63d80a9ae..c798784106 100644 --- a/doc/src/Errors_details.rst +++ b/doc/src/Errors_details.rst @@ -13,15 +13,44 @@ discussions of such cases. Unknown identifier in data file ------------------------------- -This error happens when LAMMPS encounters a line of text in an unexpected format -while reading a data file. This is most commonly cause by inconsistent header and -section data. The header section informs LAMMPS how many entries or lines are expected in the -various sections (like Atoms, Masses, Pair Coeffs, *etc.*\ ) of the data file. -If there is a mismatch, LAMMPS will either keep reading beyond the end of a section -or stop reading before the section has ended. +This error happens when LAMMPS encounters a line of text with an +unexpected keyword while :doc:`reading a data file `. This +would be either header keywords or section header keywords. This is +most commonly due to a mistyped keyword or due to a keyword that is +inconsistent with the :doc:`atom style ` used. -Such a mismatch can happen unexpectedly when the first line of the data -is *not* a comment as required by the format. That would result in -LAMMPS expecting, for instance, 0 atoms because the "atoms" header line -is treated as a comment. +The header section informs LAMMPS how many entries or lines are expected +in the various sections (like Atoms, Masses, Pair Coeffs, *etc.*\ ) of +the data file. If there is a mismatch, LAMMPS will either keep reading +beyond the end of a section or stop reading before the section has +ended. In that case the next line will not contain a recognized keyword. +Such a mismatch can also happen when the first line of the data +is *not* a comment as required by the format, but a line with a valid +header keyword. That would result in LAMMPS expecting, for instance, +0 atoms because the "atoms" header line is the first line and thus +treated as a comment. + +Another possibility to trigger this error is to have a keyword in the +data file that corresponds to a fix (e.g. :doc:`fix cmap `) +but the :doc:`read_data ` command is missing the (optional) +arguments that identify the fix and the header keyword and section +keyword or those arguments are inconsistent with the keywords in the +data file. + +.. _err0002: + +Incorrect format in ... section of data file +-------------------------------------------- + +This error happens when LAMMPS reads the contents of a section of a +:doc:`data file ` and the number of parameters in the line +differs from what is expected. This most commonly happens, when the +atom style is different from what is expected for a specific data file +since changing the atom style usually changes the format of the line. + +This error can also happen when the number of entries indicated in the +header of a data file (e.g. the number of atoms) is larger than the +number of lines provided (e.g. in the corresponding Atoms section) +and then LAMMPS will continue reading into the next section and that +would have a completely different format. diff --git a/doc/src/Fortran.rst b/doc/src/Fortran.rst index 64fca57a02..e9976b9032 100644 --- a/doc/src/Fortran.rst +++ b/doc/src/Fortran.rst @@ -1255,8 +1255,8 @@ Procedures Bound to the :f:type:`lammps` Derived Type three elements of the global vector calculated by fix recenter into the variables *dx*, *dy*, and *dz*, respectively. - If asked for per-atom or local data, :f:func:`extract_compute` returns a - pointer to actual LAMMPS data. The pointer so returned will have the + If asked for per-atom or local data, :f:func:`extract_fix` returns a + pointer to actual LAMMPS data. The pointer returned will have the appropriate size to match the internal data, and will be type/kind/rank-checked at the time of the assignment. For example, diff --git a/doc/src/fix_ave_chunk.rst b/doc/src/fix_ave_chunk.rst index adbfb43d72..57ce52f7c7 100644 --- a/doc/src/fix_ave_chunk.rst +++ b/doc/src/fix_ave_chunk.rst @@ -31,7 +31,7 @@ Syntax v_name = per-atom vector calculated by an atom-style variable with name * zero or more keyword/arg pairs may be appended -* keyword = *norm* or *ave* or *bias* or *adof* or *cdof* or *file* or *overwrite* or *format* or *title1* or *title2* or *title3* +* keyword = *norm* or *ave* or *bias* or *adof* or *cdof* or *file* or *append* or *overwrite* or *format* or *title1* or *title2* or *title3* .. parsed-literal:: @@ -51,6 +51,8 @@ Syntax dof_per_chunk = define this many degrees-of-freedom per chunk for temperature calculation *file* arg = filename filename = file to write results to + *append* arg = filename + filename = file to append results to *overwrite* arg = none = overwrite output file with only latest output *format* arg = string string = C-style format string @@ -433,15 +435,21 @@ molecule. ---------- -The *file* keyword allows a filename to be specified. Every -:math:`N_\text{freq}` timesteps, a section of chunk info will be written to a -text file in the following format. A line with the timestep and number of -chunks is written. Then one line per chunk is written, containing the chunk -ID :math:`(1-N_\text{chunk}),` an optional original ID value, optional -coordinate values for chunks that represent spatial bins, the number of atoms -in the chunk, and one or more calculated values. More explanation of the -optional values is given below. The number of values in each line -corresponds to the number of values specified in the fix ave/chunk +.. versionadded:: TBD + new keyword *append* + +The *file* or *append* keywords allow a filename to be specified. If +*file* is used, then the filename is overwritten if it already exists. +If *append* is used, then the filename is appended to if it already +exists, or created if it does not exist. Every :math:`N_\text{freq}` +timesteps, a section of chunk info will be written to a text file in the +following format. A line with the timestep and number of chunks is +written. Then one line per chunk is written, containing the chunk ID +:math:`(1-N_\text{chunk}),` an optional original ID value, optional +coordinate values for chunks that represent spatial bins, the number of +atoms in the chunk, and one or more calculated values. More explanation +of the optional values is given below. The number of values in each +line corresponds to the number of values specified in the fix ave/chunk command. The number of atoms and the value(s) are summed or average quantities, as explained above. diff --git a/doc/src/fix_ave_correlate.rst b/doc/src/fix_ave_correlate.rst index 1aff749048..659e15105c 100644 --- a/doc/src/fix_ave_correlate.rst +++ b/doc/src/fix_ave_correlate.rst @@ -65,7 +65,6 @@ Examples fix 1 all ave/correlate 1 50 10000 & c_thermo_press[1] c_thermo_press[2] c_thermo_press[3] & type upper ave running title1 "My correlation data" - fix 1 all ave/correlate 1 50 10000 c_thermo_press[*] Description diff --git a/doc/src/fix_ave_correlate_long.rst b/doc/src/fix_ave_correlate_long.rst index e2b23248f2..003bdf897d 100644 --- a/doc/src/fix_ave_correlate_long.rst +++ b/doc/src/fix_ave_correlate_long.rst @@ -20,11 +20,11 @@ Syntax .. parsed-literal:: c_ID = global scalar calculated by a compute with ID - c_ID[I] = Ith component of global vector calculated by a compute with ID + c_ID[I] = Ith component of global vector calculated by a compute with ID, I can include wildcard (see below) f_ID = global scalar calculated by a fix with ID - f_ID[I] = Ith component of global vector calculated by a fix with ID + f_ID[I] = Ith component of global vector calculated by a fix with ID, I can include wildcard (see below) v_name = global value calculated by an equal-style variable with name - v_name[I] = Ith component of global vector calculated by a vector-style variable with name + v_name[I] = Ith component of a vector-style variable with name, I can include wildcard (see below) * zero or more keyword/arg pairs may be appended * keyword = *type* or *start* or *file* or *overwrite* or *title1* or *title2* or *ncorr* or *nlen* or *ncount* @@ -63,6 +63,7 @@ Examples fix 1 all ave/correlate/long 1 10000 & c_thermo_press[1] c_thermo_press[2] c_thermo_press[3] & type upper title1 "My correlation data" nlen 15 ncount 3 + fix 1 all ave/correlate/long 1 10000 c_thermo_press[*] Description """"""""""" @@ -80,8 +81,10 @@ specified values may represent calculations performed by computes and fixes which store their own "group" definitions. Each listed value can be the result of a compute or fix or the -evaluation of an equal-style variable. See the -:doc:`fix ave/correlate ` page for details. +evaluation of an equal-style or vector-style variable. For +vector-style variables, the specified indices can include a wildcard +character. See the :doc:`fix ave/correlate ` page +for details. The *Nevery* and *Nfreq* arguments specify on what time steps the input values will be used to calculate correlation data and the frequency diff --git a/doc/src/fix_ave_histo.rst b/doc/src/fix_ave_histo.rst index 9699e4238c..b9ecc31cec 100644 --- a/doc/src/fix_ave_histo.rst +++ b/doc/src/fix_ave_histo.rst @@ -35,7 +35,7 @@ Syntax v_name[I] = value calculated by a vector-style variable with name, I can include wildcard (see below) * zero or more keyword/arg pairs may be appended -* keyword = *mode* or *kind* or *file* or *ave* or *start* or *beyond* or *overwrite* or *title1* or *title2* or *title3* +* keyword = *mode* or *kind* or *file* or *append* or *ave* or *start* or *beyond* or *overwrite* or *title1* or *title2* or *title3* .. parsed-literal:: @@ -45,6 +45,8 @@ Syntax *kind* arg = *global* or *peratom* or *local* *file* arg = filename filename = name of file to output histogram(s) to + *append* arg = filename + filename = name of file to append histogram(s) to *ave* args = *one* or *running* or *window* one = output a new average value every Nfreq steps running = output cumulative average of all previous Nfreq steps @@ -317,19 +319,25 @@ on. The default is step 0. Often input values can be 0.0 at time 0, so setting *start* to a larger value can avoid including a 0.0 in a running or windowed histogram. -The *file* keyword allows a filename to be specified. Every *Nfreq* -steps, one histogram is written to the file. This includes a leading -line that contains the timestep, number of bins, the total count of -values contributing to the histogram, the count of values that were -not histogrammed (see the *beyond* keyword), the minimum value -encountered, and the maximum value encountered. The min/max values -include values that were not histogrammed. Following the leading -line, one line per bin is written into the file. Each line contains -the bin #, the coordinate for the center of the bin (between *lo* and -*hi*\ ), the count of values in the bin, and the normalized count. The -normalized count is the bin count divided by the total count (not -including values not histogrammed), so that the normalized values sum -to 1.0 across all bins. +.. versionadded:: TBD + new keyword *append* + +The *file* or *append* keywords allow a filename to be specified. If +*file* is used, then the filename is overwritten if it already exists. +If *append* is used, then the filename is appended to if it already +exists, or created if it does not exist. Every *Nfreq* steps, one +histogram is written to the file. This includes a leading line that +contains the timestep, number of bins, the total count of values +contributing to the histogram, the count of values that were not +histogrammed (see the *beyond* keyword), the minimum value encountered, +and the maximum value encountered. The min/max values include values +that were not histogrammed. Following the leading line, one line per +bin is written into the file. Each line contains the bin #, the +coordinate for the center of the bin (between *lo* and *hi*\ ), the +count of values in the bin, and the normalized count. The normalized +count is the bin count divided by the total count (not including values +not histogrammed), so that the normalized values sum to 1.0 across all +bins. The *overwrite* keyword will continuously overwrite the output file with the latest output, so that it only contains one timestep worth of diff --git a/doc/src/fix_ave_time.rst b/doc/src/fix_ave_time.rst index aa82e676ea..ea6a6dc2a9 100644 --- a/doc/src/fix_ave_time.rst +++ b/doc/src/fix_ave_time.rst @@ -28,7 +28,7 @@ Syntax v_name[I] = value calculated by a vector-style variable with name, I can include wildcard (see below) * zero or more keyword/arg pairs may be appended -* keyword = *mode* or *file* or *ave* or *start* or *off* or *overwrite* or *format* or *title1* or *title2* or *title3* +* keyword = *mode* or *file* or *append* or *ave* or *start* or *off* or *overwrite* or *format* or *title1* or *title2* or *title3* .. parsed-literal:: @@ -45,6 +45,8 @@ Syntax M = value # from 1 to Nvalues *file* arg = filename filename = name of file to output time averages to + *append* arg = filename + filename = name of file to append time averages to *overwrite* arg = none = overwrite output file with only latest output *format* arg = string string = C-style format string @@ -270,16 +272,21 @@ are effectively constant or are simply current values (e.g., they are being written to a file with other time-averaged values for purposes of creating well-formatted output). -The *file* keyword allows a filename to be specified. Every *Nfreq* -steps, one quantity or vector of quantities is written to the file for -each input value specified in the fix ave/time command. For *mode* = -scalar, this means a single line is written each time output is -performed. Thus the file ends up to be a series of lines, i.e. one -column of numbers for each input value. For *mode* = vector, an array -of numbers is written each time output is performed. The number of rows -is the length of the input vectors, and the number of columns is the -number of values. Thus the file ends up to be a series of these array -sections. +.. versionadded:: TBD + new keyword *append* + +The *file* or *append* keywords allow a filename to be specified. If +*file* is used, then the filename is overwritten if it already exists. +If *append* is used, then the filename is appended to if it already +exists, or created if it does not exist. Every *Nfreq* steps, one +quantity or vector of quantities is written to the file for each input +value specified in the fix ave/time command. For *mode* = scalar, this +means a single line is written each time output is performed. Thus the +file ends up to be a series of lines, i.e. one column of numbers for +each input value. For *mode* = vector, an array of numbers is written +each time output is performed. The number of rows is the length of the +input vectors, and the number of columns is the number of values. Thus +the file ends up to be a series of these array sections. .. versionadded:: 4May2022 diff --git a/doc/src/fix_electrode.rst b/doc/src/fix_electrode.rst index 8a7a44454d..692b187841 100644 --- a/doc/src/fix_electrode.rst +++ b/doc/src/fix_electrode.rst @@ -255,23 +255,24 @@ and the fix will issue an error in that case. .. versionadded:: TBD -The keyword *qtotal* causes *fix electrode/conp* and *fix electrode/thermo* -to add an overall potential to all electrodes so that the total charge on -the electrodes is a specified amount (which may be an equal-style variable). -For example, if a user wanted to simulate a solution of excess cations -such that the total electrolyte charge is +2, setting *qtotal -2* would cause -the total electrode charge to be -2, so that the simulation box remains overall -electroneutral. Since *fix electrode/conq* constrains the total charges of -individual electrodes, and since *symm on* constrains the total charge of all -electrodes to be zero, either option is incompatible with the *qtotal* keyword -(even if *qtotal* is set to zero). +The keyword *qtotal* causes *fix electrode/conp* and *fix +electrode/thermo* to add an overall potential to all electrodes so that +the total charge on the electrodes is a specified amount (which may be +an equal-style variable). For example, if a user wanted to simulate a +solution of excess cations such that the total electrolyte charge is +2, +setting *qtotal -2* would cause the total electrode charge to be -2, so +that the simulation box remains overall electroneutral. Since *fix +electrode/conq* constrains the total charges of individual electrodes, +and since *symm on* constrains the total charge of all electrodes to be +zero, either option is incompatible with the *qtotal* keyword (even if +*qtotal* is set to zero). .. versionadded:: TBD -The keyword *eta* takes the name of a custom double vector defined via fix -property/atom. The values will be used instead of the standard eta value. The -property/atom fix must be for vector of double values and use the *ghost on* -option. +The keyword *eta* takes the name of a custom double vector defined via +fix property/atom. The values will be used instead of the standard eta +value. The property/atom fix must be for vector of double values and +use the *ghost on* option. Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" diff --git a/doc/src/fix_ttm.rst b/doc/src/fix_ttm.rst index 5a7f864686..f3e6a08d61 100644 --- a/doc/src/fix_ttm.rst +++ b/doc/src/fix_ttm.rst @@ -136,23 +136,23 @@ transfer between the subsystems: \bigtriangledown (\kappa_e \bigtriangledown T_e) - g_p (T_e - T_a) + g_s T_a' -where C_e is the specific heat, rho_e is the density, kappa_e is the -thermal conductivity, T is temperature, the "e" and "a" subscripts -represent electronic and atomic subsystems respectively, g_p is the -coupling constant for the electron-ion interaction, and g_s is the -electron stopping coupling parameter. C_e, rho_e, and kappa_e are -specified as parameters to the fix. The other quantities are derived. -The form of the heat diffusion equation used here is almost the same -as that in equation 6 of :ref:`(Duffy) `, with the exception that the -electronic density is explicitly represented, rather than being part -of the specific heat parameter. +where :math:`C_e` is the specific heat, :math:`\rho_e` is the density, +:math:`\kappa_e` is the thermal conductivity, *T* is temperature, the +"e" and "a" subscripts represent electronic and atomic subsystems +respectively, :math:`g_p` is the coupling constant for the electron-ion +interaction, and :math:`g_s` is the electron stopping coupling +parameter. :math:`C_e`, :math:`\rho_e`, and :math:`\kappa_e` are +specified as parameters to the fix *ttm* or *ttm/grid*. The other +quantities are derived. The form of the heat diffusion equation used +here is almost the same as that in equation 6 of :ref:`(Duffy) `, +with the exception that the electronic density is explicitly +represented, rather than being part of the specific heat parameter. Currently, the TTM fixes assume that none of the user-supplied -parameters will vary with temperature. Note that :ref:`(Duffy) -` used a tanh() functional form for the temperature dependence -of the electronic specific heat, but ignored temperature dependencies -of any of the other parameters. See more discussion below for fix -ttm/mod. +parameters will vary with temperature. Note that :ref:`(Duffy) ` +used a tanh() functional form for the temperature dependence of the +electronic specific heat, but ignored temperature dependencies of any of +the other parameters. See more discussion below for fix *ttm/mod*. .. note:: @@ -265,27 +265,27 @@ heat sources (e.g. laser heating in ablation simulations): \bigtriangledown (\kappa_e \bigtriangledown T_e) - g_p (T_e - T_a) + g_s T_a' + \theta (x-x_{surface})I_0 \exp(-x/l_{skin}) -where theta is the Heaviside step function, I_0 is the (absorbed) -laser pulse intensity for ablation simulations, l_skin is the depth -of skin-layer, and all other designations have the same meaning as in -the former equation. The duration of the pulse is set by the parameter -*tau* in the *init_file*. +where :math:`\theta` is the Heaviside step function, :math:`I_0` is the +(absorbed) laser pulse intensity for ablation simulations, +:math:`l_{skin}` is the depth of the skin-layer, and all other +designations have the same meaning as in the former equation. The +duration of the pulse is set by the parameter *tau* in the *init_file*. -Fix ttm/mod also allows users to specify the dependencies of C_e and -kappa_e on the electronic temperature. The specific heat is expressed -as +Fix *ttm/mod* also allows users to specify the dependencies of +:math:`C_e` and :math:`\kappa_e` on the electronic temperature. The +specific heat is expressed as .. math:: C_e = C_0 + (a_0 + a_1 X + a_2 X^2 + a_3 X^3 + a_4 X^4) \exp (-(AX)^2) -where *X* = T_e/1000, and the thermal conductivity is defined as -kappa_e = D_e\*rho_e\*C_e, where D_e is the thermal diffusion -coefficient. +where :math:`X = \frac{T_e}{1000}`, and the thermal conductivity is +defined as :math:`\kappa_e = D_e \cdot rho_e \cdot C_e`, where +:math:`D_e` is the thermal diffusion coefficient. -Electronic pressure effects are included in the TTM model to account -for the blast force acting on ions because of electronic pressure -gradient (see :ref:`(Chen) `, :ref:`(Norman) `). The total force +Electronic pressure effects are included in the TTM model to account for +the blast force acting on ions because of electronic pressure gradient +(see :ref:`(Chen) `, :ref:`(Norman) `). The total force acting on an ion is: .. math:: @@ -293,13 +293,14 @@ acting on an ion is: {\vec F}_i = - \partial U / \partial {\vec r}_i + {\vec F}_{langevin} - \nabla P_e/n_{ion} -where F_langevin is a force from Langevin thermostat simulating -electron-phonon coupling, and nabla P_e/n_ion is the electron blast -force. +where :math:`F_{langevin}` is a force from Langevin thermostat +simulating electron-phonon coupling, and :math:`\nabla P_e/n_{ion}` is +the electron blast force. -The electronic pressure is taken to be P_e = B\*rho_e\*C_e\*T_e +The electronic pressure is taken to be :math:`P_e = B \cdot rho_e \cdot +C_e \cdot T_e` -The current fix ttm/mod implementation allows TTM simulations with a +The current fix *ttm/mod* implementation allows TTM simulations with a vacuum. The vacuum region is defined as the grid cells with zero electronic temperature. The numerical scheme does not allow energy exchange with such cells. Since the material can expand to previously @@ -319,10 +320,10 @@ electronic pressure gradient is calculated as \frac{x}{x+\lambda}\frac{(C_e{}T_e)_{x+\Delta x}-(C_e{}T_e)_{x}}{\Delta x} \right] -where lambda is the electron mean free path (see :ref:`(Norman) `, -:ref:`(Pisarev) `) +where :math:`\lambda` is the electron mean free path (see :ref:`(Norman) +`, :ref:`(Pisarev) `) -The fix ttm/mod parameter file *init_file* has the following syntax. +The fix *ttm/mod* parameter file *init_file* has the following syntax. Every line with an odd number is considered as a comment and ignored. The lines with the even numbers are treated as follows: diff --git a/doc/src/processors.rst b/doc/src/processors.rst index a11febb1c2..f909790304 100644 --- a/doc/src/processors.rst +++ b/doc/src/processors.rst @@ -159,17 +159,17 @@ surface-to-volume ratio of each processor's subdomain. for most MPI implementations, but some MPIs provide options for this ordering, e.g. via environment variable settings. -The *numa* style operates similar to the *twolevel* keyword except -that it auto-detects which cores are running on which nodes. -It will also subdivide the cores into numa domains. Currently, the -number of numa domains is not autodetected and must be specified using -the *numa_nodes* keyword; otherwise, the default value is used. The -*numa* style uses a different algorithm than the *twolevel* keyword for -doing the two-level factorization of the simulation box into a 3d -processor grid to minimize off-node communication and communication -across numa domains. It does its own MPI-based mapping of nodes and -cores to the regular 3d grid. Thus it may produce a different layout -of the processors than the *twolevel* options. +The *numa* style operates similar to the *twolevel* keyword except that +it auto-detects which cores are running on which nodes. It will also +subdivide the cores into numa domains. Currently, the number of numa +domains is not auto-detected and must be specified using the +*numa_nodes* keyword; otherwise, the default value is used. The *numa* +style uses a different algorithm than the *twolevel* keyword for doing +the two-level factorization of the simulation box into a 3d processor +grid to minimize off-node communication and communication across numa +domains. It does its own MPI-based mapping of nodes and cores to the +regular 3d grid. Thus it may produce a different layout of the +processors than the *twolevel* options. The *numa* style will give an error if the number of MPI processes is not divisible by the number of cores used per node, or any of the Px @@ -182,7 +182,7 @@ or Py or Pz values is greater than 1. is because it auto-detects which processes are running on which nodes. However, it assumes that the lowest ranks are in the first numa domain, and so forth. MPI rank orderings that do not preserve this - property might result in more intranode communication between CPUs. + property might result in more intra-node communication between CPUs. The *custom* style uses the file *infile* to define both the 3d factorization and the mapping of processors to the grid. @@ -213,7 +213,7 @@ any order, but no processor ID should appear more than once. ---------- -The *numa_nodes* keyword is used to specifiy the number of numa domains +The *numa_nodes* keyword is used to specify the number of numa domains per node. It is currently only used by the *numa* style for two-level factorization to reduce the amount of MPI communications between CPUs. A good setting for this will typically be equal to the number of CPU diff --git a/doc/src/variable.rst b/doc/src/variable.rst index 1cd96543f5..483e95045c 100644 --- a/doc/src/variable.rst +++ b/doc/src/variable.rst @@ -1174,12 +1174,17 @@ custom atom properties are the same; just replace the leading "i" with +--------+---------------+------------------------------------------+ | equal | i_name[I] | element of per-atom vector (I = atom ID) | ++--------+---------------+------------------------------------------+ | equal | i2_name[I][J] | element of per-atom array (I = atom ID) | +--------+---------------+------------------------------------------+ ++--------+---------------+------------------------------------------+ | vector | i_name[I] | element of per-atom vector (I = atom ID) | ++--------+---------------+------------------------------------------+ | vector | i2_name[I][J] | element of per-atom array (I = atom ID) | +--------+---------------+------------------------------------------+ ++--------+---------------+------------------------------------------+ | atom | i_name | per-atom vector | ++--------+---------------+------------------------------------------+ | atom | i2_name[I] | column of per-atom array | +--------+---------------+------------------------------------------+ @@ -1222,15 +1227,23 @@ table: +--------+------------+------------------------------------------+ | equal | c_ID | global scalar | ++--------+------------+------------------------------------------+ | equal | c_ID[I] | element of global vector | ++--------+------------+------------------------------------------+ | equal | c_ID[I][J] | element of global array | ++--------+------------+------------------------------------------+ | equal | C_ID[I] | element of per-atom vector (I = atom ID) | ++--------+------------+------------------------------------------+ | equal | C_ID[I][J] | element of per-atom array (I = atom ID) | +--------+------------+------------------------------------------+ ++--------+------------+------------------------------------------+ | vector | c_ID | global vector | ++--------+------------+------------------------------------------+ | vector | c_ID[I] | column of global array | +--------+------------+------------------------------------------+ ++--------+------------+------------------------------------------+ | atom | c_ID | per-atom vector | ++--------+------------+------------------------------------------+ | atom | c_ID[I] | column of per-atom array | +--------+------------+------------------------------------------+ @@ -1286,15 +1299,23 @@ and atom-style variables are listed in the following table: +--------+------------+------------------------------------------+ | equal | f_ID | global scalar | ++--------+------------+------------------------------------------+ | equal | f_ID[I] | element of global vector | ++--------+------------+------------------------------------------+ | equal | f_ID[I][J] | element of global array | ++--------+------------+------------------------------------------+ | equal | F_ID[I] | element of per-atom vector (I = atom ID) | ++--------+------------+------------------------------------------+ | equal | F_ID[I][J] | element of per-atom array (I = atom ID) | +--------+------------+------------------------------------------+ ++--------+------------+------------------------------------------+ | vector | f_ID | global vector | ++--------+------------+------------------------------------------+ | vector | f_ID[I] | column of global array | +--------+------------+------------------------------------------+ ++--------+------------+------------------------------------------+ | atom | f_ID | per-atom vector | ++--------+------------+------------------------------------------+ | atom | f_ID[I] | column of per-atom array | +--------+------------+------------------------------------------+ @@ -1365,17 +1386,27 @@ per-atom vector. +--------+-----------+-----------------------------------------------------------------------------------+ | equal | v_name | global scalar from an equal-style variable | ++--------+-----------+-----------------------------------------------------------------------------------+ | equal | v_name[I] | element of global vector from a vector-style variable | ++--------+-----------+-----------------------------------------------------------------------------------+ | equal | v_name[I] | element of per-atom vector (I = atom ID) from an atom- or atomfile-style variable | +--------+-----------+-----------------------------------------------------------------------------------+ ++--------+-----------+-----------------------------------------------------------------------------------+ | vector | v_name | global scalar from an equal-style variable | ++--------+-----------+-----------------------------------------------------------------------------------+ | vector | v_name | global vector from a vector-style variable | ++--------+-----------+-----------------------------------------------------------------------------------+ | vector | v_name[I] | element of global vector from a vector-style variable | ++--------+-----------+-----------------------------------------------------------------------------------+ | vector | v_name[I] | element of per-atom vector (I = atom ID) from an atom- or atomfile-style variable | +--------+-----------+-----------------------------------------------------------------------------------+ ++--------+-----------+-----------------------------------------------------------------------------------+ | atom | v_name | global scalar from an equal-style variable | ++--------+-----------+-----------------------------------------------------------------------------------+ | atom | v_name | per-atom vector from an atom-style or atomfile-style variable | ++--------+-----------+-----------------------------------------------------------------------------------+ | atom | v_name[I] | element of global vector from a vector-style variable | ++--------+-----------+-----------------------------------------------------------------------------------+ | atom | v_name[I] | element of per-atom vector (I = atom ID) from an atom- or atomfile-style variable | +--------+-----------+-----------------------------------------------------------------------------------+ diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index 030c80d30c..04ea69575a 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -947,6 +947,7 @@ elastance Electroneg electronegative electronegativity +electroneutral electroneutrality Eleftheriou ElementN diff --git a/examples/micelle/log.29Mar2019.micelle-rigid.g++.1 b/examples/micelle/log.29Mar2019.micelle-rigid.g++.1 deleted file mode 100644 index f1001e6cea..0000000000 --- a/examples/micelle/log.29Mar2019.micelle-rigid.g++.1 +++ /dev/null @@ -1,260 +0,0 @@ -LAMMPS (29 Mar 2019) - using 1 OpenMP thread(s) per MPI task -# 2d micelle simulation - -dimension 2 - -neighbor 0.3 bin -neigh_modify delay 5 - -atom_style bond - -# Soft potential push-off - -read_data data.micelle - orthogonal box = (0 0 -0.1) to (35.8569 35.8569 0.1) - 1 by 1 by 1 MPI processor grid - reading atoms ... - 1200 atoms - scanning bonds ... - 1 = max bonds/atom - reading bonds ... - 300 bonds - 2 = max # of 1-2 neighbors - 1 = max # of 1-3 neighbors - 1 = max # of 1-4 neighbors - 2 = max # of special neighbors - special bonds CPU = 0.000473022 secs - read_data CPU = 0.0024147 secs -special_bonds fene - 2 = max # of 1-2 neighbors - 2 = max # of special neighbors - special bonds CPU = 0.00022316 secs - -pair_style soft 1.12246 -pair_coeff * * 0.0 1.12246 - -bond_style harmonic -bond_coeff 1 50.0 0.75 - -velocity all create 0.45 2349852 - -variable prefactor equal ramp(1.0,20.0) - -fix 1 all nve -fix 2 all temp/rescale 100 0.45 0.45 0.02 1.0 -fix 3 all adapt 1 pair soft a * * v_prefactor -fix 4 all enforce2d - -thermo 50 -run 500 -Neighbor list info ... - update every 1 steps, delay 5 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 1.42246 - ghost atom cutoff = 1.42246 - binsize = 0.71123, bins = 51 51 1 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair soft, perpetual - attributes: half, newton on - pair build: half/bin/newton - stencil: half/bin/2d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 3.799 | 3.799 | 3.799 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 0.45 0.40003481 2.2200223e-06 0.84966203 0.78952518 - 50 0.54981866 0.93548899 0.068440043 1.5532895 1.9232786 - 100 0.45 0.99659327 0.079228519 1.5254468 3.2135679 - 150 0.86965411 0.90456016 0.07493355 1.8484231 4.3821925 - 200 0.45 1.01454 0.10663502 1.5708 4.7598476 - 250 0.79636561 0.82567712 0.12105337 1.7424325 5.4983899 - 300 0.45 0.86475538 0.11819875 1.4325791 5.8554758 - 350 0.72135464 0.70693069 0.10912636 1.5368106 6.0388247 - 400 0.45 0.75067331 0.14165013 1.3419484 6.3840708 - 450 0.64839221 0.62402486 0.14173679 1.4136135 6.4791009 - 500 0.45 0.66669513 0.13695201 1.2532721 6.807146 -Loop time of 0.103162 on 1 procs for 500 steps with 1200 atoms - -Performance: 2093802.885 tau/day, 4846.766 timesteps/s -99.6% CPU use with 1 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.068308 | 0.068308 | 0.068308 | 0.0 | 66.21 -Bond | 0.004235 | 0.004235 | 0.004235 | 0.0 | 4.11 -Neigh | 0.014069 | 0.014069 | 0.014069 | 0.0 | 13.64 -Comm | 0.0019219 | 0.0019219 | 0.0019219 | 0.0 | 1.86 -Output | 0.00017262 | 0.00017262 | 0.00017262 | 0.0 | 0.17 -Modify | 0.011728 | 0.011728 | 0.011728 | 0.0 | 11.37 -Other | | 0.002726 | | | 2.64 - -Nlocal: 1200 ave 1200 max 1200 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 197 ave 197 max 197 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 3094 ave 3094 max 3094 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 3094 -Ave neighs/atom = 2.57833 -Ave special neighs/atom = 0.5 -Neighbor list builds = 52 -Dangerous builds = 0 - -unfix 3 - -# Main run - -pair_style lj/cut 2.5 - -# solvent/head - full-size and long-range - -pair_coeff 1 1 1.0 1.0 2.5 -pair_coeff 2 2 1.0 1.0 2.5 -pair_coeff 1 2 1.0 1.0 2.5 - -# tail/tail - size-averaged and long-range - -pair_coeff 3 3 1.0 0.75 2.5 -pair_coeff 4 4 1.0 0.50 2.5 -pair_coeff 3 4 1.0 0.67 2.5 - -# solvent/tail - full-size and repulsive - -pair_coeff 1 3 1.0 1.0 1.12246 -pair_coeff 1 4 1.0 1.0 1.12246 - -# head/tail - size-averaged and repulsive - -pair_coeff 2 3 1.0 0.88 1.12246 -pair_coeff 2 4 1.0 0.75 1.12246 - -thermo 50 - -#dump 1 all atom 2000 dump.micelle - -#dump 2 all image 2000 image.*.jpg type type zoom 1.6 -#dump_modify 2 pad 5 adiam 1 0.5 adiam 2 1.5 adiam 3 1.0 adiam 4 0.75 - -#dump 3 all movie 2000 movie.mpg type type zoom 1.6 -#dump_modify 3 pad 5 adiam 1 0.5 adiam 2 1.5 adiam 3 1.0 adiam 4 0.75 - -reset_timestep 0 -group solvent molecule 0 -750 atoms in group solvent -group solute subtract all solvent -450 atoms in group solute -unfix 1 -unfix 2 -unfix 4 -fix 1 solvent nve -fix 2 solvent temp/rescale 100 0.45 0.45 0.02 1.0 -fix 5 solute rigid molecule langevin 0.45 0.45 0.5 112211 -150 rigid bodies with 450 atoms -fix 4 all enforce2d -run 500 -Neighbor list info ... - update every 1 steps, delay 5 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2.8 - ghost atom cutoff = 2.8 - binsize = 1.4, bins = 26 26 1 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair lj/cut, perpetual - attributes: half, newton on - pair build: half/bin/newton - stencil: half/bin/2d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 5.274 | 5.274 | 5.274 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 0.45318168 -1.3753652 0.13695201 -0.8705807 1.975423 - 50 0.77871641 -1.6955252 0.13695201 -0.92651507 0.64222539 - 100 0.5336062 -1.7124572 0.13695201 -1.1423948 -0.11959696 - 150 0.58789067 -1.7926109 0.13695201 -1.1784877 1.2592743 - 200 0.47864796 -1.8040298 0.13695201 -1.2785752 3.6739793 - 250 0.51124651 -1.8614797 0.13695201 -1.309566 2.5817722 - 300 0.45695639 -1.8708384 0.13695201 -1.3629901 3.0833794 - 350 0.477504 -1.8924359 0.13695201 -1.3679098 -5.1605926 - 400 0.45328205 -1.87754 0.13695201 -1.372674 -4.0355858 - 450 0.47465031 -1.9071924 0.13695201 -1.3849826 3.1949617 - 500 0.45533691 -1.9072316 0.13695201 -1.4006978 0.48079061 -Loop time of 0.178806 on 1 procs for 500 steps with 1200 atoms - -Performance: 1208012.705 tau/day, 2796.326 timesteps/s -99.6% CPU use with 1 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.086131 | 0.086131 | 0.086131 | 0.0 | 48.17 -Bond | 0.0042472 | 0.0042472 | 0.0042472 | 0.0 | 2.38 -Neigh | 0.021317 | 0.021317 | 0.021317 | 0.0 | 11.92 -Comm | 0.0025985 | 0.0025985 | 0.0025985 | 0.0 | 1.45 -Output | 0.000175 | 0.000175 | 0.000175 | 0.0 | 0.10 -Modify | 0.061408 | 0.061408 | 0.061408 | 0.0 | 34.34 -Other | | 0.00293 | | | 1.64 - -Nlocal: 1200 ave 1200 max 1200 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 416 ave 416 max 416 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 8769 ave 8769 max 8769 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 8769 -Ave neighs/atom = 7.3075 -Ave special neighs/atom = 0.5 -Neighbor list builds = 47 -Dangerous builds = 2 -unfix 2 -unfix 4 -unfix 5 -fix 5 solute rigid/small molecule - create bodies CPU = 0.00015378 secs -150 rigid bodies with 450 atoms - 1.30435 = max distance from body owner to body atom -fix 4 all enforce2d -run 500 -Per MPI rank memory allocation (min/avg/max) = 8.64 | 8.64 | 8.64 Mbytes -Step Temp E_pair E_mol TotEng Press - 500 0.45533691 -1.9072316 0.13695201 -1.4006978 2.4545793 - 550 0.45627282 -1.912409 0.13695201 -1.4051155 2.1845065 - 600 0.44734553 -1.8890695 0.13695201 -1.389022 2.3458965 - 650 0.46444648 -1.9042462 0.13695201 -1.3903185 2.1609319 - 700 0.47113236 -1.8977576 0.13695201 -1.3784032 2.2420351 - 750 0.48554548 -1.9253545 0.13695201 -1.3943015 2.143907 - 800 0.46350091 -1.8865749 0.13695201 -1.3734146 2.294431 - 850 0.4766104 -1.9094039 0.13695201 -1.3856031 2.2077157 - 900 0.48988467 -1.9051538 0.13695201 -1.3705787 2.0107056 - 950 0.48351943 -1.9162485 0.13695201 -1.3868399 2.1891332 - 1000 0.49033701 -1.9115165 0.13695201 -1.3765742 2.1508141 -Loop time of 0.166502 on 1 procs for 500 steps with 1200 atoms - -Performance: 1297278.008 tau/day, 3002.958 timesteps/s -99.6% CPU use with 1 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.085767 | 0.085767 | 0.085767 | 0.0 | 51.51 -Bond | 0.0042562 | 0.0042562 | 0.0042562 | 0.0 | 2.56 -Neigh | 0.018039 | 0.018039 | 0.018039 | 0.0 | 10.83 -Comm | 0.0024002 | 0.0024002 | 0.0024002 | 0.0 | 1.44 -Output | 0.00018239 | 0.00018239 | 0.00018239 | 0.0 | 0.11 -Modify | 0.052717 | 0.052717 | 0.052717 | 0.0 | 31.66 -Other | | 0.003141 | | | 1.89 - -Nlocal: 1200 ave 1200 max 1200 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 415 ave 415 max 415 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 8743 ave 8743 max 8743 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 8743 -Ave neighs/atom = 7.28583 -Ave special neighs/atom = 0.5 -Neighbor list builds = 40 -Dangerous builds = 0 -Total wall time: 0:00:00 diff --git a/examples/micelle/log.29Mar2019.micelle-rigid.g++.4 b/examples/micelle/log.29Mar2019.micelle-rigid.g++.4 deleted file mode 100644 index e65f67a527..0000000000 --- a/examples/micelle/log.29Mar2019.micelle-rigid.g++.4 +++ /dev/null @@ -1,260 +0,0 @@ -LAMMPS (29 Mar 2019) - using 1 OpenMP thread(s) per MPI task -# 2d micelle simulation - -dimension 2 - -neighbor 0.3 bin -neigh_modify delay 5 - -atom_style bond - -# Soft potential push-off - -read_data data.micelle - orthogonal box = (0 0 -0.1) to (35.8569 35.8569 0.1) - 2 by 2 by 1 MPI processor grid - reading atoms ... - 1200 atoms - scanning bonds ... - 1 = max bonds/atom - reading bonds ... - 300 bonds - 2 = max # of 1-2 neighbors - 1 = max # of 1-3 neighbors - 1 = max # of 1-4 neighbors - 2 = max # of special neighbors - special bonds CPU = 0.000422001 secs - read_data CPU = 0.00473404 secs -special_bonds fene - 2 = max # of 1-2 neighbors - 2 = max # of special neighbors - special bonds CPU = 0.000183344 secs - -pair_style soft 1.12246 -pair_coeff * * 0.0 1.12246 - -bond_style harmonic -bond_coeff 1 50.0 0.75 - -velocity all create 0.45 2349852 - -variable prefactor equal ramp(1.0,20.0) - -fix 1 all nve -fix 2 all temp/rescale 100 0.45 0.45 0.02 1.0 -fix 3 all adapt 1 pair soft a * * v_prefactor -fix 4 all enforce2d - -thermo 50 -run 500 -Neighbor list info ... - update every 1 steps, delay 5 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 1.42246 - ghost atom cutoff = 1.42246 - binsize = 0.71123, bins = 51 51 1 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair soft, perpetual - attributes: half, newton on - pair build: half/bin/newton - stencil: half/bin/2d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 3.758 | 3.85 | 4.126 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 0.45 0.40003481 2.2200223e-06 0.84966203 0.78952518 - 50 0.54981866 0.93548899 0.068440043 1.5532895 1.9232786 - 100 0.45 0.99659327 0.079228519 1.5254468 3.2135679 - 150 0.86965411 0.90456016 0.07493355 1.8484231 4.3821925 - 200 0.45 1.01454 0.10663502 1.5708 4.7598476 - 250 0.79636561 0.82567712 0.12105337 1.7424325 5.4983899 - 300 0.45 0.86475538 0.11819875 1.4325791 5.8554758 - 350 0.72135464 0.70693069 0.10912636 1.5368106 6.0388247 - 400 0.45 0.75067331 0.14165013 1.3419484 6.3840708 - 450 0.64839221 0.62402486 0.14173679 1.4136135 6.4791009 - 500 0.45 0.66669513 0.13695201 1.2532721 6.807146 -Loop time of 0.0426326 on 4 procs for 500 steps with 1200 atoms - -Performance: 5066547.720 tau/day, 11728.120 timesteps/s -98.7% CPU use with 4 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.016784 | 0.019254 | 0.022154 | 1.5 | 45.16 -Bond | 0.0010612 | 0.0012558 | 0.0014153 | 0.4 | 2.95 -Neigh | 0.0046048 | 0.0046697 | 0.0047245 | 0.1 | 10.95 -Comm | 0.0064592 | 0.0097114 | 0.012527 | 2.4 | 22.78 -Output | 0.00022507 | 0.00026393 | 0.00033951 | 0.0 | 0.62 -Modify | 0.0041659 | 0.0048084 | 0.0053945 | 0.8 | 11.28 -Other | | 0.002669 | | | 6.26 - -Nlocal: 300 ave 304 max 292 min -Histogram: 1 0 0 0 0 0 0 0 2 1 -Nghost: 103.5 ave 108 max 98 min -Histogram: 1 0 0 1 0 0 0 0 0 2 -Neighs: 773.5 ave 792 max 735 min -Histogram: 1 0 0 0 0 0 0 0 2 1 - -Total # of neighbors = 3094 -Ave neighs/atom = 2.57833 -Ave special neighs/atom = 0.5 -Neighbor list builds = 52 -Dangerous builds = 0 - -unfix 3 - -# Main run - -pair_style lj/cut 2.5 - -# solvent/head - full-size and long-range - -pair_coeff 1 1 1.0 1.0 2.5 -pair_coeff 2 2 1.0 1.0 2.5 -pair_coeff 1 2 1.0 1.0 2.5 - -# tail/tail - size-averaged and long-range - -pair_coeff 3 3 1.0 0.75 2.5 -pair_coeff 4 4 1.0 0.50 2.5 -pair_coeff 3 4 1.0 0.67 2.5 - -# solvent/tail - full-size and repulsive - -pair_coeff 1 3 1.0 1.0 1.12246 -pair_coeff 1 4 1.0 1.0 1.12246 - -# head/tail - size-averaged and repulsive - -pair_coeff 2 3 1.0 0.88 1.12246 -pair_coeff 2 4 1.0 0.75 1.12246 - -thermo 50 - -#dump 1 all atom 2000 dump.micelle - -#dump 2 all image 2000 image.*.jpg type type zoom 1.6 -#dump_modify 2 pad 5 adiam 1 0.5 adiam 2 1.5 adiam 3 1.0 adiam 4 0.75 - -#dump 3 all movie 2000 movie.mpg type type zoom 1.6 -#dump_modify 3 pad 5 adiam 1 0.5 adiam 2 1.5 adiam 3 1.0 adiam 4 0.75 - -reset_timestep 0 -group solvent molecule 0 -750 atoms in group solvent -group solute subtract all solvent -450 atoms in group solute -unfix 1 -unfix 2 -unfix 4 -fix 1 solvent nve -fix 2 solvent temp/rescale 100 0.45 0.45 0.02 1.0 -fix 5 solute rigid molecule langevin 0.45 0.45 0.5 112211 -150 rigid bodies with 450 atoms -fix 4 all enforce2d -run 500 -Neighbor list info ... - update every 1 steps, delay 5 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2.8 - ghost atom cutoff = 2.8 - binsize = 1.4, bins = 26 26 1 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair lj/cut, perpetual - attributes: half, newton on - pair build: half/bin/newton - stencil: half/bin/2d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 5.251 | 5.282 | 5.374 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 0.45318168 -1.3753652 0.13695201 -0.8705807 1.975423 - 50 0.77871641 -1.6955252 0.13695201 -0.92651507 0.64222539 - 100 0.5336062 -1.7124572 0.13695201 -1.1423948 -0.11959696 - 150 0.58789067 -1.7926109 0.13695201 -1.1784877 1.2592743 - 200 0.47864796 -1.8040298 0.13695201 -1.2785752 3.6739793 - 250 0.51124651 -1.8614797 0.13695201 -1.309566 2.5817722 - 300 0.45695639 -1.8708384 0.13695201 -1.3629901 3.0833794 - 350 0.477504 -1.8924359 0.13695201 -1.3679098 -5.1605926 - 400 0.45328205 -1.87754 0.13695201 -1.372674 -4.0355858 - 450 0.47465031 -1.9071924 0.13695201 -1.3849826 3.1949617 - 500 0.45533691 -1.9072316 0.13695201 -1.4006978 0.48079061 -Loop time of 0.0887392 on 4 procs for 500 steps with 1200 atoms - -Performance: 2434100.210 tau/day, 5634.491 timesteps/s -98.9% CPU use with 4 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.022611 | 0.022839 | 0.023082 | 0.1 | 25.74 -Bond | 0.0010793 | 0.0011569 | 0.0012515 | 0.2 | 1.30 -Neigh | 0.0064609 | 0.0064996 | 0.0065265 | 0.0 | 7.32 -Comm | 0.0071712 | 0.0073687 | 0.0077734 | 0.3 | 8.30 -Output | 0.00023389 | 0.00025356 | 0.00030327 | 0.0 | 0.29 -Modify | 0.047258 | 0.047683 | 0.048503 | 0.2 | 53.73 -Other | | 0.002938 | | | 3.31 - -Nlocal: 300 ave 309 max 291 min -Histogram: 1 0 0 1 0 0 1 0 0 1 -Nghost: 218.75 ave 223 max 216 min -Histogram: 1 0 2 0 0 0 0 0 0 1 -Neighs: 2192.25 ave 2251 max 2113 min -Histogram: 1 0 0 1 0 0 0 0 0 2 - -Total # of neighbors = 8769 -Ave neighs/atom = 7.3075 -Ave special neighs/atom = 0.5 -Neighbor list builds = 47 -Dangerous builds = 2 -unfix 2 -unfix 4 -unfix 5 -fix 5 solute rigid/small molecule - create bodies CPU = 7.70092e-05 secs -150 rigid bodies with 450 atoms - 1.30435 = max distance from body owner to body atom -fix 4 all enforce2d -run 500 -Per MPI rank memory allocation (min/avg/max) = 8.565 | 8.597 | 8.69 Mbytes -Step Temp E_pair E_mol TotEng Press - 500 0.45533691 -1.9072316 0.13695201 -1.4006978 2.4545793 - 550 0.45627282 -1.912409 0.13695201 -1.4051155 2.1845065 - 600 0.44734553 -1.8890695 0.13695201 -1.389022 2.3458965 - 650 0.46444648 -1.9042462 0.13695201 -1.3903185 2.1609319 - 700 0.47113236 -1.8977576 0.13695201 -1.3784032 2.2420351 - 750 0.48554548 -1.9253545 0.13695201 -1.3943015 2.143907 - 800 0.46350091 -1.8865749 0.13695201 -1.3734146 2.294431 - 850 0.4766104 -1.9094039 0.13695201 -1.3856031 2.2077157 - 900 0.48988467 -1.9051538 0.13695201 -1.3705787 2.0107056 - 950 0.48351942 -1.9162485 0.13695201 -1.3868399 2.1891332 - 1000 0.490337 -1.9115164 0.13695201 -1.3765742 2.1508141 -Loop time of 0.0588261 on 4 procs for 500 steps with 1200 atoms - -Performance: 3671840.233 tau/day, 8499.630 timesteps/s -98.3% CPU use with 4 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.022407 | 0.022631 | 0.0229 | 0.1 | 38.47 -Bond | 0.0010669 | 0.0011355 | 0.0012124 | 0.2 | 1.93 -Neigh | 0.0052333 | 0.00528 | 0.0053182 | 0.0 | 8.98 -Comm | 0.0063677 | 0.0066406 | 0.0068488 | 0.2 | 11.29 -Output | 0.00023055 | 0.00024778 | 0.00028086 | 0.0 | 0.42 -Modify | 0.020577 | 0.020651 | 0.020834 | 0.1 | 35.11 -Other | | 0.00224 | | | 3.81 - -Nlocal: 300 ave 303 max 295 min -Histogram: 1 0 0 0 0 0 1 0 1 1 -Nghost: 219 ave 224 max 215 min -Histogram: 1 0 0 1 1 0 0 0 0 1 -Neighs: 2185.75 ave 2244 max 2143 min -Histogram: 1 1 0 0 0 1 0 0 0 1 - -Total # of neighbors = 8743 -Ave neighs/atom = 7.28583 -Ave special neighs/atom = 0.5 -Neighbor list builds = 40 -Dangerous builds = 0 -Total wall time: 0:00:00 diff --git a/examples/micelle/log.4Apr2024.micelle-rigid.g++.1 b/examples/micelle/log.4Apr2024.micelle-rigid.g++.1 new file mode 100644 index 0000000000..d3cb98940d --- /dev/null +++ b/examples/micelle/log.4Apr2024.micelle-rigid.g++.1 @@ -0,0 +1,271 @@ +LAMMPS (7 Feb 2024 - Development - patch_7Feb2024_update1-345-g506bf886ee-modified) +# 2d micelle simulation + +dimension 2 + +neighbor 0.3 bin +neigh_modify delay 5 + +atom_style bond + +# Soft potential push-off + +read_data data.micelle +Reading data file ... + orthogonal box = (0 0 -0.1) to (35.85686 35.85686 0.1) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 1200 atoms + scanning bonds ... + 1 = max bonds/atom + reading bonds ... + 300 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 1 = max # of 1-3 neighbors + 1 = max # of 1-4 neighbors + 2 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.005 seconds +special_bonds fene +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 1 1 + special bond factors coul: 0 1 1 + 2 = max # of 1-2 neighbors + 2 = max # of special neighbors + special bonds CPU = 0.000 seconds + +pair_style soft 1.12246 +pair_coeff * * 0.0 1.12246 + +bond_style harmonic +bond_coeff 1 50.0 0.75 + +velocity all create 0.45 2349852 + +variable prefactor equal ramp(1.0,20.0) + +fix 1 all nve +fix 2 all temp/rescale 100 0.45 0.45 0.02 1.0 +fix 3 all adapt 1 pair soft a * * v_prefactor +fix 4 all enforce2d + +thermo 50 +run 500 +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +WARNING: Communication cutoff 1.42246 is shorter than a bond length based estimate of 1.425. This may lead to errors. (../comm.cpp:730) +Neighbor list info ... + update: every = 1 steps, delay = 5 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.42246 + ghost atom cutoff = 1.42246 + binsize = 0.71123, bins = 51 51 1 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair soft, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/2d + bin: standard +WARNING: Communication cutoff 1.42246 is shorter than a bond length based estimate of 1.425. This may lead to errors. (../comm.cpp:730) +Per MPI rank memory allocation (min/avg/max) = 4.148 | 4.148 | 4.148 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 0.45 0.40003481 2.2200223e-06 0.84966203 0.78952518 + 50 0.54981866 0.93548899 0.068440043 1.5532895 1.9232786 + 100 0.45 0.99659327 0.079228519 1.5254468 3.2135679 + 150 0.86965411 0.90456016 0.07493355 1.8484231 4.3821925 + 200 0.45 1.01454 0.10663502 1.5708 4.7598476 + 250 0.79636561 0.82567712 0.12105337 1.7424325 5.4983899 + 300 0.45 0.86475538 0.11819875 1.4325791 5.8554758 + 350 0.72135464 0.70693069 0.10912636 1.5368106 6.0388247 + 400 0.45 0.75067331 0.14165013 1.3419484 6.3840708 + 450 0.64839221 0.62402486 0.14173679 1.4136135 6.4791009 + 500 0.45 0.66669513 0.13695201 1.2532721 6.807146 +Loop time of 0.0365221 on 1 procs for 500 steps with 1200 atoms + +Performance: 5914221.123 tau/day, 13690.327 timesteps/s, 16.428 Matom-step/s +89.2% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.022939 | 0.022939 | 0.022939 | 0.0 | 62.81 +Bond | 0.00073851 | 0.00073851 | 0.00073851 | 0.0 | 2.02 +Neigh | 0.0078339 | 0.0078339 | 0.0078339 | 0.0 | 21.45 +Comm | 0.00072134 | 0.00072134 | 0.00072134 | 0.0 | 1.98 +Output | 7.1419e-05 | 7.1419e-05 | 7.1419e-05 | 0.0 | 0.20 +Modify | 0.0034868 | 0.0034868 | 0.0034868 | 0.0 | 9.55 +Other | | 0.0007314 | | | 2.00 + +Nlocal: 1200 ave 1200 max 1200 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 197 ave 197 max 197 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 3094 ave 3094 max 3094 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 3094 +Ave neighs/atom = 2.5783333 +Ave special neighs/atom = 0.5 +Neighbor list builds = 52 +Dangerous builds = 0 + +unfix 3 + +# Main run + +pair_style lj/cut 2.5 + +# solvent/head - full-size and long-range + +pair_coeff 1 1 1.0 1.0 2.5 +pair_coeff 2 2 1.0 1.0 2.5 +pair_coeff 1 2 1.0 1.0 2.5 + +# tail/tail - size-averaged and long-range + +pair_coeff 3 3 1.0 0.75 2.5 +pair_coeff 4 4 1.0 0.50 2.5 +pair_coeff 3 4 1.0 0.67 2.5 + +# solvent/tail - full-size and repulsive + +pair_coeff 1 3 1.0 1.0 1.12246 +pair_coeff 1 4 1.0 1.0 1.12246 + +# head/tail - size-averaged and repulsive + +pair_coeff 2 3 1.0 0.88 1.12246 +pair_coeff 2 4 1.0 0.75 1.12246 + +thermo 50 + +#dump 1 all atom 2000 dump.micelle + +#dump 2 all image 2000 image.*.jpg type type zoom 1.6 +#dump_modify 2 pad 5 adiam 1 0.5 adiam 2 1.5 adiam 3 1.0 adiam 4 0.75 + +#dump 3 all movie 2000 movie.mpg type type zoom 1.6 +#dump_modify 3 pad 5 adiam 1 0.5 adiam 2 1.5 adiam 3 1.0 adiam 4 0.75 + +reset_timestep 0 +group solvent molecule 0 +750 atoms in group solvent +group solute subtract all solvent +450 atoms in group solute +unfix 1 +unfix 2 +unfix 4 +fix 1 solvent nve +fix 2 solvent temp/rescale 100 0.45 0.45 0.02 1.0 +fix 5 solute rigid molecule langevin 0.45 0.45 0.5 112211 + 150 rigid bodies with 450 atoms +fix 4 all enforce2d +run 500 +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 5 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.8 + ghost atom cutoff = 2.8 + binsize = 1.4, bins = 26 26 1 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/2d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 5.391 | 5.391 | 5.391 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 0.45318168 -1.3753652 0.13695201 -0.8705807 1.975423 + 50 0.77344732 -1.6944083 0.13695201 -0.92967487 0.58657109 + 100 0.53530681 -1.7006195 0.13695201 -1.1291768 0.11219772 + 150 0.60820175 -1.8071581 0.13695201 -1.176549 1.5161796 + 200 0.49410558 -1.7945459 0.13695201 -1.2565449 4.0469262 + 250 0.52460847 -1.8528672 0.13695201 -1.290108 2.9929445 + 300 0.46596803 -1.8680499 0.13695201 -1.3528872 2.7958851 + 350 0.48831812 -1.8723486 0.13695201 -1.3390451 -4.5106818 + 400 0.46798432 -1.9008529 0.13695201 -1.3840536 -4.3096566 + 450 0.46000658 -1.9081144 0.13695201 -1.3977904 3.3360611 + 500 0.45822409 -1.9077531 0.13695201 -1.3988759 0.45428738 +Loop time of 0.0650638 on 1 procs for 500 steps with 1200 atoms + +Performance: 3319817.322 tau/day, 7684.762 timesteps/s, 9.222 Matom-step/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 | 0.027565 | 0.027565 | 0.027565 | 0.0 | 42.37 +Bond | 0.0007043 | 0.0007043 | 0.0007043 | 0.0 | 1.08 +Neigh | 0.012724 | 0.012724 | 0.012724 | 0.0 | 19.56 +Comm | 0.00091442 | 0.00091442 | 0.00091442 | 0.0 | 1.41 +Output | 6.004e-05 | 6.004e-05 | 6.004e-05 | 0.0 | 0.09 +Modify | 0.022329 | 0.022329 | 0.022329 | 0.0 | 34.32 +Other | | 0.0007666 | | | 1.18 + +Nlocal: 1200 ave 1200 max 1200 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 411 ave 411 max 411 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 8759 ave 8759 max 8759 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 8759 +Ave neighs/atom = 7.2991667 +Ave special neighs/atom = 0.5 +Neighbor list builds = 46 +Dangerous builds = 2 +unfix 2 +unfix 4 +unfix 5 +fix 5 solute rigid/small molecule + create bodies CPU = 0.000 seconds + 150 rigid bodies with 450 atoms + 1.3043524 = max distance from body owner to body atom +fix 4 all enforce2d +run 500 +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Per MPI rank memory allocation (min/avg/max) = 9.306 | 9.306 | 9.306 Mbytes + Step Temp E_pair E_mol TotEng Press + 500 0.45822409 -1.9077531 0.13695201 -1.3988759 2.4509752 + 550 0.46736204 -1.9141964 0.13695201 -1.3979022 2.1695662 + 600 0.47872194 -1.9232781 0.13695201 -1.3977635 2.0058379 + 650 0.47491575 -1.9224109 0.13695201 -1.3999857 2.0637789 + 700 0.44714331 -1.8990682 0.13695201 -1.3991848 2.4863082 + 750 0.49089274 -1.9231004 0.13695201 -1.3877071 2.123147 + 800 0.4753839 -1.8959698 0.13695201 -1.3731645 2.3030481 + 850 0.46870816 -1.8972225 0.13695201 -1.3798357 2.2464703 + 900 0.49610454 -1.9070748 0.13695201 -1.3674513 2.2196388 + 950 0.4773035 -1.8925765 0.13695201 -1.3682132 2.3534786 + 1000 0.50413702 -1.9292393 0.13695201 -1.383096 2.1630988 +Loop time of 0.0592806 on 1 procs for 500 steps with 1200 atoms + +Performance: 3643690.276 tau/day, 8434.468 timesteps/s, 10.121 Matom-step/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 | 0.026866 | 0.026866 | 0.026866 | 0.0 | 45.32 +Bond | 0.00071863 | 0.00071863 | 0.00071863 | 0.0 | 1.21 +Neigh | 0.010927 | 0.010927 | 0.010927 | 0.0 | 18.43 +Comm | 0.00084187 | 0.00084187 | 0.00084187 | 0.0 | 1.42 +Output | 6.8106e-05 | 6.8106e-05 | 6.8106e-05 | 0.0 | 0.11 +Modify | 0.019075 | 0.019075 | 0.019075 | 0.0 | 32.18 +Other | | 0.000783 | | | 1.32 + +Nlocal: 1200 ave 1200 max 1200 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 417 ave 417 max 417 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 8654 ave 8654 max 8654 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 8654 +Ave neighs/atom = 7.2116667 +Ave special neighs/atom = 0.5 +Neighbor list builds = 39 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/micelle/log.4Apr2024.micelle-rigid.g++.4 b/examples/micelle/log.4Apr2024.micelle-rigid.g++.4 new file mode 100644 index 0000000000..ce15cfec21 --- /dev/null +++ b/examples/micelle/log.4Apr2024.micelle-rigid.g++.4 @@ -0,0 +1,272 @@ +LAMMPS (7 Feb 2024 - Development - patch_7Feb2024_update1-345-g506bf886ee-modified) +WARNING: Using I/O redirection is unreliable with parallel runs. Better to use the -in switch to read input files. (../lammps.cpp:551) +# 2d micelle simulation + +dimension 2 + +neighbor 0.3 bin +neigh_modify delay 5 + +atom_style bond + +# Soft potential push-off + +read_data data.micelle +Reading data file ... + orthogonal box = (0 0 -0.1) to (35.85686 35.85686 0.1) + 2 by 2 by 1 MPI processor grid + reading atoms ... + 1200 atoms + scanning bonds ... + 1 = max bonds/atom + reading bonds ... + 300 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 1 = max # of 1-3 neighbors + 1 = max # of 1-4 neighbors + 2 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.004 seconds +special_bonds fene +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 1 1 + special bond factors coul: 0 1 1 + 2 = max # of 1-2 neighbors + 2 = max # of special neighbors + special bonds CPU = 0.000 seconds + +pair_style soft 1.12246 +pair_coeff * * 0.0 1.12246 + +bond_style harmonic +bond_coeff 1 50.0 0.75 + +velocity all create 0.45 2349852 + +variable prefactor equal ramp(1.0,20.0) + +fix 1 all nve +fix 2 all temp/rescale 100 0.45 0.45 0.02 1.0 +fix 3 all adapt 1 pair soft a * * v_prefactor +fix 4 all enforce2d + +thermo 50 +run 500 +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +WARNING: Communication cutoff 1.42246 is shorter than a bond length based estimate of 1.425. This may lead to errors. (../comm.cpp:730) +Neighbor list info ... + update: every = 1 steps, delay = 5 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.42246 + ghost atom cutoff = 1.42246 + binsize = 0.71123, bins = 51 51 1 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair soft, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/2d + bin: standard +WARNING: Communication cutoff 1.42246 is shorter than a bond length based estimate of 1.425. This may lead to errors. (../comm.cpp:730) +Per MPI rank memory allocation (min/avg/max) = 4.126 | 4.126 | 4.127 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 0.45 0.40003481 2.2200223e-06 0.84966203 0.78952518 + 50 0.54981866 0.93548899 0.068440043 1.5532895 1.9232786 + 100 0.45 0.99659327 0.079228519 1.5254468 3.2135679 + 150 0.86965411 0.90456016 0.07493355 1.8484231 4.3821925 + 200 0.45 1.01454 0.10663502 1.5708 4.7598476 + 250 0.79636561 0.82567712 0.12105337 1.7424325 5.4983899 + 300 0.45 0.86475538 0.11819875 1.4325791 5.8554758 + 350 0.72135464 0.70693069 0.10912636 1.5368106 6.0388247 + 400 0.45 0.75067331 0.14165013 1.3419484 6.3840708 + 450 0.64839221 0.62402486 0.14173679 1.4136135 6.4791009 + 500 0.45 0.66669513 0.13695201 1.2532721 6.807146 +Loop time of 0.0138659 on 4 procs for 500 steps with 1200 atoms + +Performance: 15577811.312 tau/day, 36059.748 timesteps/s, 43.272 Matom-step/s +99.9% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.0053896 | 0.0057144 | 0.0060899 | 0.4 | 41.21 +Bond | 0.00020074 | 0.00021422 | 0.00022291 | 0.0 | 1.54 +Neigh | 0.0025301 | 0.0025401 | 0.0025501 | 0.0 | 18.32 +Comm | 0.0031194 | 0.0035074 | 0.0038196 | 0.4 | 25.30 +Output | 6.4137e-05 | 6.7743e-05 | 7.7909e-05 | 0.0 | 0.49 +Modify | 0.0013391 | 0.0013582 | 0.0013972 | 0.1 | 9.80 +Other | | 0.0004638 | | | 3.34 + +Nlocal: 300 ave 304 max 292 min +Histogram: 1 0 0 0 0 0 0 0 2 1 +Nghost: 103.5 ave 108 max 98 min +Histogram: 1 0 0 1 0 0 0 0 0 2 +Neighs: 773.5 ave 792 max 735 min +Histogram: 1 0 0 0 0 0 0 0 2 1 + +Total # of neighbors = 3094 +Ave neighs/atom = 2.5783333 +Ave special neighs/atom = 0.5 +Neighbor list builds = 52 +Dangerous builds = 0 + +unfix 3 + +# Main run + +pair_style lj/cut 2.5 + +# solvent/head - full-size and long-range + +pair_coeff 1 1 1.0 1.0 2.5 +pair_coeff 2 2 1.0 1.0 2.5 +pair_coeff 1 2 1.0 1.0 2.5 + +# tail/tail - size-averaged and long-range + +pair_coeff 3 3 1.0 0.75 2.5 +pair_coeff 4 4 1.0 0.50 2.5 +pair_coeff 3 4 1.0 0.67 2.5 + +# solvent/tail - full-size and repulsive + +pair_coeff 1 3 1.0 1.0 1.12246 +pair_coeff 1 4 1.0 1.0 1.12246 + +# head/tail - size-averaged and repulsive + +pair_coeff 2 3 1.0 0.88 1.12246 +pair_coeff 2 4 1.0 0.75 1.12246 + +thermo 50 + +#dump 1 all atom 2000 dump.micelle + +#dump 2 all image 2000 image.*.jpg type type zoom 1.6 +#dump_modify 2 pad 5 adiam 1 0.5 adiam 2 1.5 adiam 3 1.0 adiam 4 0.75 + +#dump 3 all movie 2000 movie.mpg type type zoom 1.6 +#dump_modify 3 pad 5 adiam 1 0.5 adiam 2 1.5 adiam 3 1.0 adiam 4 0.75 + +reset_timestep 0 +group solvent molecule 0 +750 atoms in group solvent +group solute subtract all solvent +450 atoms in group solute +unfix 1 +unfix 2 +unfix 4 +fix 1 solvent nve +fix 2 solvent temp/rescale 100 0.45 0.45 0.02 1.0 +fix 5 solute rigid molecule langevin 0.45 0.45 0.5 112211 + 150 rigid bodies with 450 atoms +fix 4 all enforce2d +run 500 +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 5 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.8 + ghost atom cutoff = 2.8 + binsize = 1.4, bins = 26 26 1 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/2d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 5.375 | 5.375 | 5.375 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 0.45318168 -1.3753652 0.13695201 -0.8705807 1.975423 + 50 0.77344732 -1.6944083 0.13695201 -0.92967487 0.58657109 + 100 0.53530681 -1.7006195 0.13695201 -1.1291768 0.11219772 + 150 0.60820175 -1.8071581 0.13695201 -1.176549 1.5161796 + 200 0.49410558 -1.7945459 0.13695201 -1.2565449 4.0469262 + 250 0.52460847 -1.8528672 0.13695201 -1.290108 2.9929445 + 300 0.46596803 -1.8680499 0.13695201 -1.3528872 2.7958851 + 350 0.48831812 -1.8723486 0.13695201 -1.3390451 -4.5106818 + 400 0.46798432 -1.9008529 0.13695201 -1.3840536 -4.3096566 + 450 0.46000658 -1.9081144 0.13695201 -1.3977904 3.3360611 + 500 0.45822409 -1.9077531 0.13695201 -1.3988759 0.45428738 +Loop time of 0.0381773 on 4 procs for 500 steps with 1200 atoms + +Performance: 5657810.772 tau/day, 13096.784 timesteps/s, 15.716 Matom-step/s +99.6% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.0059651 | 0.0062314 | 0.0066404 | 0.3 | 16.32 +Bond | 0.00021057 | 0.00022477 | 0.0002333 | 0.0 | 0.59 +Neigh | 0.0041424 | 0.0041487 | 0.0041512 | 0.0 | 10.87 +Comm | 0.004264 | 0.0047244 | 0.0050297 | 0.4 | 12.37 +Output | 8.2396e-05 | 8.6559e-05 | 9.6749e-05 | 0.0 | 0.23 +Modify | 0.021833 | 0.021946 | 0.022094 | 0.1 | 57.48 +Other | | 0.0008157 | | | 2.14 + +Nlocal: 300 ave 303 max 296 min +Histogram: 1 0 0 0 1 0 0 0 1 1 +Nghost: 216.25 ave 219 max 214 min +Histogram: 1 0 1 0 0 0 1 0 0 1 +Neighs: 2189.75 ave 2205 max 2173 min +Histogram: 1 0 0 0 1 0 1 0 0 1 + +Total # of neighbors = 8759 +Ave neighs/atom = 7.2991667 +Ave special neighs/atom = 0.5 +Neighbor list builds = 46 +Dangerous builds = 2 +unfix 2 +unfix 4 +unfix 5 +fix 5 solute rigid/small molecule + create bodies CPU = 0.000 seconds + 150 rigid bodies with 450 atoms + 1.3043524 = max distance from body owner to body atom +fix 4 all enforce2d +run 500 +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Per MPI rank memory allocation (min/avg/max) = 9.233 | 9.233 | 9.234 Mbytes + Step Temp E_pair E_mol TotEng Press + 500 0.45822409 -1.9077531 0.13695201 -1.3988759 2.4509752 + 550 0.46736204 -1.9141964 0.13695201 -1.3979022 2.1695662 + 600 0.47872194 -1.9232781 0.13695201 -1.3977635 2.0058379 + 650 0.47491575 -1.9224109 0.13695201 -1.3999857 2.0637789 + 700 0.44714331 -1.8990682 0.13695201 -1.3991848 2.4863082 + 750 0.49089274 -1.9231004 0.13695201 -1.3877071 2.123147 + 800 0.4753839 -1.8959698 0.13695201 -1.3731645 2.3030481 + 850 0.46870816 -1.8972225 0.13695201 -1.3798357 2.2464703 + 900 0.49610454 -1.9070748 0.13695201 -1.3674513 2.2196388 + 950 0.4773035 -1.8925765 0.13695201 -1.3682132 2.3534786 + 1000 0.50413702 -1.9292393 0.13695201 -1.383096 2.1630987 +Loop time of 0.0236819 on 4 procs for 500 steps with 1200 atoms + +Performance: 9120883.727 tau/day, 21113.157 timesteps/s, 25.336 Matom-step/s +99.9% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.0058656 | 0.0059718 | 0.0061355 | 0.1 | 25.22 +Bond | 0.0002083 | 0.00022447 | 0.00023485 | 0.0 | 0.95 +Neigh | 0.0035477 | 0.0035644 | 0.0035824 | 0.0 | 15.05 +Comm | 0.0041037 | 0.0042227 | 0.0043024 | 0.1 | 17.83 +Output | 7.4355e-05 | 7.8273e-05 | 8.7777e-05 | 0.0 | 0.33 +Modify | 0.008976 | 0.0090549 | 0.0091663 | 0.1 | 38.24 +Other | | 0.0005654 | | | 2.39 + +Nlocal: 300 ave 306 max 295 min +Histogram: 1 0 1 0 0 1 0 0 0 1 +Nghost: 221 ave 226 max 217 min +Histogram: 1 0 0 1 1 0 0 0 0 1 +Neighs: 2163.5 ave 2271 max 2100 min +Histogram: 1 1 0 1 0 0 0 0 0 1 + +Total # of neighbors = 8654 +Ave neighs/atom = 7.2116667 +Ave special neighs/atom = 0.5 +Neighbor list builds = 39 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/fortran/lammps.f90 b/fortran/lammps.f90 index d0133f075c..c297bad2ef 100644 --- a/fortran/lammps.f90 +++ b/fortran/lammps.f90 @@ -3687,7 +3687,7 @@ CONTAINS n = LEN_TRIM(f_string) ptr = lammps_malloc(n+1) - CALL C_F_POINTER(ptr, c_string, [1]) + CALL C_F_POINTER(ptr, c_string, [n+1]) DO i=1, n c_string(i) = f_string(i:i) END DO diff --git a/lib/gpu/lal_base_amoeba.h b/lib/gpu/lal_base_amoeba.h index f415b30334..7255b8770f 100644 --- a/lib/gpu/lal_base_amoeba.h +++ b/lib/gpu/lal_base_amoeba.h @@ -33,6 +33,7 @@ //#define ASYNC_DEVICE_COPY +#if 0 #if !defined(USE_OPENCL) && !defined(USE_HIP) // temporary workaround for int2 also defined in cufft #ifdef int2 @@ -40,6 +41,7 @@ #endif #include "cufft.h" #endif +#endif namespace LAMMPS_AL { @@ -313,10 +315,11 @@ class BaseAmoeba { virtual int fphi_mpole(); virtual int polar_real(const int eflag, const int vflag) = 0; - +#if 0 #if !defined(USE_OPENCL) && !defined(USE_HIP) cufftHandle plan; #endif +#endif bool fft_plan_created; }; diff --git a/python/lammps/core.py b/python/lammps/core.py index 28b384d6ba..3498041454 100644 --- a/python/lammps/core.py +++ b/python/lammps/core.py @@ -1078,15 +1078,23 @@ class lammps(object): def extract_fix(self,fid,fstyle,ftype,nrow=0,ncol=0): """Retrieve data from a LAMMPS fix - This is a wrapper around the :cpp:func:`lammps_extract_fix` - function of the C-library interface. - This function returns ``None`` if either the fix id is not - recognized, or an invalid combination of :ref:`fstyle ` - and :ref:`ftype ` constants is used. The - names and functionality of the constants are the same as for - the corresponding C-library function. For requests to return - a scalar or a size, the value is returned, also when accessing - global vectors or arrays, otherwise a pointer. + This is a wrapper around the :cpp:func:`lammps_extract_fix` function + of the C-library interface. This function returns ``None`` if + either the fix id is not recognized, or an invalid combination of + :ref:`fstyle ` and :ref:`ftype + ` constants is used. The names and functionality + of the constants are the same as for the corresponding C-library + function. For requests to return a scalar or a size, the value is + returned, also when accessing global vectors or arrays, otherwise a + pointer. + + .. note:: + + When requesting global data, the fix data can only be accessed + one item at a time without access to the whole vector or array. + Thus this function will always return a scalar. To access vector + or array elements the "nrow" and "ncol" arguments need to be set + accordingly (they default to 0). :param fid: fix ID :type fid: string diff --git a/python/lammps/numpy_wrapper.py b/python/lammps/numpy_wrapper.py index a29853d16a..91042c43c8 100644 --- a/python/lammps/numpy_wrapper.py +++ b/python/lammps/numpy_wrapper.py @@ -203,6 +203,13 @@ class numpy_wrapper: It behaves the same as the original method, but returns NumPy arrays instead of ``ctypes`` pointers. + .. note:: + + When requesting global data, the fix data can only be accessed one + item at a time without access to the whole vector or array. Thus this + function will always return a scalar. To access vector or array elements + the "nrow" and "ncol" arguments need to be set accordingly (they default to 0). + :param fid: fix ID :type fid: string :param fstyle: style of the data retrieve (global, atom, or local), see :ref:`py_style_constants` diff --git a/src/ASPHERE/pair_ylz.cpp b/src/ASPHERE/pair_ylz.cpp index a678712619..833dc8e3e4 100644 --- a/src/ASPHERE/pair_ylz.cpp +++ b/src/ASPHERE/pair_ylz.cpp @@ -300,6 +300,7 @@ double PairYLZ::init_one(int i, int j) zeta[j][i] = zeta[i][j]; mu[j][i] = mu[i][j]; beta[j][i] = beta[i][j]; + cut[j][i] = cut[i][j]; return cut[i][j]; } @@ -409,7 +410,7 @@ void PairYLZ::write_data_all(FILE *fp) { for (int i = 1; i <= atom->ntypes; i++) for (int j = i; j <= atom->ntypes; j++) - fprintf(fp, "%d %d %g %g %g %g %g %g\n", i, j, epsilon[i][i], sigma[i][i], cut[i][j], + fprintf(fp, "%d %d %g %g %g %g %g %g\n", i, j, epsilon[i][j], sigma[i][j], cut[i][j], zeta[i][j], mu[i][j], beta[i][j]); } diff --git a/src/BODY/body_rounded_polyhedron.cpp b/src/BODY/body_rounded_polyhedron.cpp index 991f52cac5..6aa15b740b 100644 --- a/src/BODY/body_rounded_polyhedron.cpp +++ b/src/BODY/body_rounded_polyhedron.cpp @@ -99,10 +99,9 @@ int BodyRoundedPolyhedron::nedges(AtomVecBody::Bonus *bonus) { int nvertices = bonus->ivalue[0]; int nedges = bonus->ivalue[1]; - //int nfaces = bonus->ivalue[2]; if (nvertices == 1) return 0; else if (nvertices == 2) return 1; - return nedges; //(nvertices+nfaces-2); // Euler formula: V-E+F=2 + return nedges; } /* ---------------------------------------------------------------------- */ @@ -116,6 +115,9 @@ double *BodyRoundedPolyhedron::edges(AtomVecBody::Bonus *bonus) int BodyRoundedPolyhedron::nfaces(AtomVecBody::Bonus *bonus) { + int nvertices = bonus->ivalue[0]; + if (nvertices < 3) return 0; + return bonus->ivalue[2]; } diff --git a/src/BODY/pair_body_rounded_polygon.cpp b/src/BODY/pair_body_rounded_polygon.cpp index 432f1d5c9c..2293f56a98 100644 --- a/src/BODY/pair_body_rounded_polygon.cpp +++ b/src/BODY/pair_body_rounded_polygon.cpp @@ -415,17 +415,14 @@ void PairBodyRoundedPolygon::init_style() if (!avec) error->all(FLERR,"Pair body/rounded/polygon requires atom style body"); if (strcmp(avec->bptr->style,"rounded/polygon") != 0) - error->all(FLERR,"Pair body/rounded/polygon requires " - "body style rounded/polygon"); + error->all(FLERR,"Pair body/rounded/polygon requires body style rounded/polygon"); bptr = dynamic_cast(avec->bptr); if (force->newton_pair == 0) - error->all(FLERR,"Pair style body/rounded/polygon requires " - "newton pair on"); + error->all(FLERR,"Pair style body/rounded/polygon requires newton pair on"); if (comm->ghost_velocity == 0) - error->all(FLERR,"Pair body/rounded/polygon requires " - "ghost atoms store velocity"); + error->all(FLERR,"Pair body/rounded/polygon requires ghost atoms store velocity"); neighbor->add_request(this); @@ -463,27 +460,24 @@ void PairBodyRoundedPolygon::init_style() for (i = 1; i <= ntypes; i++) maxerad[i] = merad[i] = 0; - int ipour; - for (ipour = 0; ipour < modify->nfix; ipour++) - if (strcmp(modify->fix[ipour]->style,"pour") == 0) break; - if (ipour == modify->nfix) ipour = -1; + Fix *fixpour = nullptr; + auto pours = modify->get_fix_by_style("^pour"); + if (pours.size() > 0) fixpour = pours[0]; + + Fix *fixdep = nullptr; + auto deps = modify->get_fix_by_style("^deposit"); + if (deps.size() > 0) fixdep = deps[0]; - int idep; - for (idep = 0; idep < modify->nfix; idep++) - if (strcmp(modify->fix[idep]->style,"deposit") == 0) break; - if (idep == modify->nfix) idep = -1; for (i = 1; i <= ntypes; i++) { merad[i] = 0.0; - if (ipour >= 0) { + if (fixpour) { itype = i; - merad[i] = - *((double *) modify->fix[ipour]->extract("radius",itype)); + merad[i] = *((double *) fixpour->extract("radius",itype)); } - if (idep >= 0) { + if (fixdep) { itype = i; - merad[i] = - *((double *) modify->fix[idep]->extract("radius",itype)); + merad[i] = *((double *) fixdep->extract("radius",itype)); } } @@ -570,8 +564,7 @@ void PairBodyRoundedPolygon::body2space(int i) } if ((body_num_edges > 0) && (edge_ends == nullptr)) - error->one(FLERR,"Inconsistent edge data for body of atom {}", - atom->tag[i]); + error->one(FLERR,"Inconsistent edge data for body of atom {}", atom->tag[i]); for (int m = 0; m < body_num_edges; m++) { edge[nedge][0] = static_cast(edge_ends[2*m+0]); diff --git a/src/BODY/pair_body_rounded_polyhedron.cpp b/src/BODY/pair_body_rounded_polyhedron.cpp index 82660df1e0..ed83dc49e2 100644 --- a/src/BODY/pair_body_rounded_polyhedron.cpp +++ b/src/BODY/pair_body_rounded_polyhedron.cpp @@ -222,8 +222,7 @@ void PairBodyRoundedPolyhedron::compute(int eflag, int vflag) // sphere-sphere interaction if (npi == 1 && npj == 1) { - sphere_against_sphere(i, j, itype, jtype, delx, dely, delz, - rsq, v, f, evflag); + sphere_against_sphere(i, j, itype, jtype, delx, dely, delz, rsq, v, f, evflag); continue; } @@ -391,20 +390,16 @@ void PairBodyRoundedPolyhedron::coeff(int narg, char **arg) void PairBodyRoundedPolyhedron::init_style() { avec = dynamic_cast(atom->style_match("body")); - if (!avec) error->all(FLERR,"Pair body/rounded/polyhedron requires " - "atom style body"); + if (!avec) error->all(FLERR,"Pair body/rounded/polyhedron requires atom style body"); if (strcmp(avec->bptr->style,"rounded/polyhedron") != 0) - error->all(FLERR,"Pair body/rounded/polyhedron requires " - "body style rounded/polyhedron"); + error->all(FLERR,"Pair body/rounded/polyhedron requires body style rounded/polyhedron"); bptr = dynamic_cast(avec->bptr); if (force->newton_pair == 0) - error->all(FLERR,"Pair style body/rounded/polyhedron requires " - "newton pair on"); + error->all(FLERR,"Pair style body/rounded/polyhedron requires newton pair on"); if (comm->ghost_velocity == 0) - error->all(FLERR,"Pair body/rounded/polyhedron requires " - "ghost atoms store velocity"); + error->all(FLERR,"Pair body/rounded/polyhedron requires ghost atoms store velocity"); neighbor->add_request(this); @@ -446,27 +441,23 @@ void PairBodyRoundedPolyhedron::init_style() for (i = 1; i <= ntypes; i++) maxerad[i] = merad[i] = 0; - int ipour; - for (ipour = 0; ipour < modify->nfix; ipour++) - if (strcmp(modify->fix[ipour]->style,"pour") == 0) break; - if (ipour == modify->nfix) ipour = -1; + Fix *fixpour = nullptr; + auto pours = modify->get_fix_by_style("^pour"); + if (pours.size() > 0) fixpour = pours[0]; - int idep; - for (idep = 0; idep < modify->nfix; idep++) - if (strcmp(modify->fix[idep]->style,"deposit") == 0) break; - if (idep == modify->nfix) idep = -1; + Fix *fixdep = nullptr; + auto deps = modify->get_fix_by_style("^deposit"); + if (deps.size() > 0) fixdep = deps[0]; for (i = 1; i <= ntypes; i++) { merad[i] = 0.0; - if (ipour >= 0) { + if (fixpour) { itype = i; - merad[i] = - *((double *) modify->fix[ipour]->extract("radius",itype)); + merad[i] = *((double *) fixpour->extract("radius",itype)); } - if (idep >= 0) { + if (fixdep) { itype = i; - merad[i] = - *((double *) modify->fix[idep]->extract("radius",itype)); + merad[i] = *((double *) fixdep->extract("radius",itype)); } } @@ -558,8 +549,7 @@ void PairBodyRoundedPolyhedron::body2space(int i) } if ((body_num_edges > 0) && (edge_ends == nullptr)) - error->one(FLERR,"Inconsistent edge data for body of atom {}", - atom->tag[i]); + error->one(FLERR,"Inconsistent edge data for body of atom {}", atom->tag[i]); for (int m = 0; m < body_num_edges; m++) { edge[nedge][0] = static_cast(edge_ends[2*m+0]); @@ -585,8 +575,7 @@ void PairBodyRoundedPolyhedron::body2space(int i) } if ((body_num_faces > 0) && (face_pts == nullptr)) - error->one(FLERR,"Inconsistent face data for body of atom {}", - atom->tag[i]); + error->one(FLERR,"Inconsistent face data for body of atom {}", atom->tag[i]); for (int m = 0; m < body_num_faces; m++) { for (int k = 0; k < MAX_FACE_SIZE; k++) diff --git a/src/EFF/fix_nh_eff.cpp b/src/EFF/fix_nh_eff.cpp index a569932000..6e8e2c68fa 100644 --- a/src/EFF/fix_nh_eff.cpp +++ b/src/EFF/fix_nh_eff.cpp @@ -16,7 +16,6 @@ Contributing author: Andres Jaramillo-Botero (Caltech) ------------------------------------------------------------------------- */ - #include "fix_nh_eff.h" #include "atom.h" @@ -62,7 +61,7 @@ void FixNHEff::nve_v() if (mask[i] & groupbit) { if (abs(spin[i])==1) { dtfm = dtf / mass[type[i]]; - ervel[i] = dtfm * erforce[i] / mefactor; + ervel[i] += dtfm * erforce[i] / mefactor; } } } @@ -79,15 +78,26 @@ void FixNHEff::nve_x() FixNH::nve_x(); double *eradius = atom->eradius; + double *erforce = atom->erforce; double *ervel = atom->ervel; + double *mass = atom->mass; + int *type = atom->type; int *spin = atom->spin; int *mask = atom->mask; int nlocal = atom->nlocal; if (igroup == atom->firstgroup) nlocal = atom->nfirst; + double mefactor = domain->dimension/4.0; + double dtfm; + for (int i = 0; i < nlocal; i++) - if (mask[i] & groupbit) - if (abs(spin[i])==1) eradius[i] += dtv * ervel[i]; + if (mask[i] & groupbit) { + dtfm = dtf / mass[type[i]]; + if (abs(spin[i])==1) { + ervel[i] += dtfm * erforce[i] / mefactor; + eradius[i] += dtv * ervel[i]; + } + } } /* ---------------------------------------------------------------------- diff --git a/src/EXTRA-DUMP/dump_xtc.cpp b/src/EXTRA-DUMP/dump_xtc.cpp index 798bdcb391..3119a470dc 100644 --- a/src/EXTRA-DUMP/dump_xtc.cpp +++ b/src/EXTRA-DUMP/dump_xtc.cpp @@ -14,7 +14,7 @@ /* ---------------------------------------------------------------------- Contributing authors: Naveen Michaud-Agrawal (Johns Hopkins U) - open-source XDR routines from + Open Source XDR based I/O routines from Frans van Hoesel (https://www.rug.nl/staff/f.h.j.van.hoesel/) are included in this file Axel Kohlmeyer (Temple U) @@ -35,27 +35,29 @@ #include "output.h" #include "update.h" +#include "xdr_compat.h" + #include #include #include using namespace LAMMPS_NS; -#define EPS 1e-5 -#define XTC_MAGIC 1995 +static constexpr double EPS = 1.0e-5; +static constexpr int XTC_MAGIC = 1995; #define MYMIN(a,b) ((a) < (b) ? (a) : (b)) #define MYMAX(a,b) ((a) > (b) ? (a) : (b)) -int xdropen(XDR *, const char *, const char *); -int xdrclose(XDR *); -void xdrfreebuf(); -int xdr3dfcoord(XDR *, float *, int *, float *); +static int xdropen(XDR *, const char *, const char *); +static int xdrclose(XDR *); +static void xdrfreebuf(); +static int xdr3dfcoord(XDR *, float *, int *, float *); /* ---------------------------------------------------------------------- */ -DumpXTC::DumpXTC(LAMMPS *lmp, int narg, char **arg) : Dump(lmp, narg, arg), - coords(nullptr) +DumpXTC::DumpXTC(LAMMPS *lmp, int narg, char **arg) + : Dump(lmp, narg, arg), coords(nullptr), xd(nullptr) { if (narg != 5) error->all(FLERR,"Illegal dump xtc command"); if (binary || compressed || multifile || multiproc) @@ -68,6 +70,7 @@ DumpXTC::DumpXTC(LAMMPS *lmp, int narg, char **arg) : Dump(lmp, narg, arg), flush_flag = 0; unwrap_flag = 0; precision = 1000.0; + xd = new XDR; // allocate global array for atom coords @@ -105,9 +108,10 @@ DumpXTC::~DumpXTC() memory->destroy(coords); if (me == 0) { - xdrclose(&xd); + xdrclose(xd); xdrfreebuf(); } + delete xd; } /* ---------------------------------------------------------------------- */ @@ -150,7 +154,8 @@ void DumpXTC::openfile() fp = nullptr; if (me == 0) - if (xdropen(&xd,filename,"w") == 0) error->one(FLERR,"Cannot open dump file"); + if (xdropen(xd,filename,"w") == 0) + error->one(FLERR,"Cannot open XTC format dump file {}: {}", filename, utils::getsyserror()); } /* ---------------------------------------------------------------------- */ @@ -176,11 +181,11 @@ void DumpXTC::write_header(bigint nbig) if (me != 0) return; int tmp = XTC_MAGIC; - xdr_int(&xd,&tmp); - xdr_int(&xd,&n); - xdr_int(&xd,&ntimestep); + xdr_int(xd,&tmp); + xdr_int(xd,&n); + xdr_int(xd,&ntimestep); float time_value = ntimestep * tfactor * update->dt; - xdr_float(&xd,&time_value); + xdr_float(xd,&time_value); // cell basis vectors if (domain->triclinic) { @@ -192,18 +197,18 @@ void DumpXTC::write_header(bigint nbig) float xz = sfactor * domain->xz; float yz = sfactor * domain->yz; - xdr_float(&xd,&xdim); xdr_float(&xd,&zero); xdr_float(&xd,&zero); - xdr_float(&xd,&xy ); xdr_float(&xd,&ydim); xdr_float(&xd,&zero); - xdr_float(&xd,&xz ); xdr_float(&xd,&yz ); xdr_float(&xd,&zdim); + xdr_float(xd,&xdim); xdr_float(xd,&zero); xdr_float(xd,&zero); + xdr_float(xd,&xy ); xdr_float(xd,&ydim); xdr_float(xd,&zero); + xdr_float(xd,&xz ); xdr_float(xd,&yz ); xdr_float(xd,&zdim); } else { float zero = 0.0; float xdim = sfactor * (domain->boxhi[0] - domain->boxlo[0]); float ydim = sfactor * (domain->boxhi[1] - domain->boxlo[1]); float zdim = sfactor * (domain->boxhi[2] - domain->boxlo[2]); - xdr_float(&xd,&xdim); xdr_float(&xd,&zero); xdr_float(&xd,&zero); - xdr_float(&xd,&zero); xdr_float(&xd,&ydim); xdr_float(&xd,&zero); - xdr_float(&xd,&zero); xdr_float(&xd,&zero); xdr_float(&xd,&zdim); + xdr_float(xd,&xdim); xdr_float(xd,&zero); xdr_float(xd,&zero); + xdr_float(xd,&zero); xdr_float(xd,&ydim); xdr_float(xd,&zero); + xdr_float(xd,&zero); xdr_float(xd,&zero); xdr_float(xd,&zdim); } } @@ -328,7 +333,7 @@ double DumpXTC::memory_usage() void DumpXTC::write_frame() { - xdr3dfcoord(&xd,coords,&natoms,&precision); + xdr3dfcoord(xd,coords,&natoms,&precision); } // ---------------------------------------------------------------------- @@ -406,7 +411,7 @@ static int magicints[] = { | | xdropen - open xdr file | - | This versions differs from xdrstdio_create, because I need to know + | This version differs from xdrstdio_create, because I need to know | the state of the file (read or write) so I can use xdr3dfcoord | in eigther read or write mode, and the file descriptor | so I can close the file (something xdr_destroy doesn't do). @@ -1048,7 +1053,7 @@ int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) } if (buf[1] != 0) buf[0]++; xdr_int(xdrs, &(buf[0])); /* buf[0] holds the length in bytes */ - return errval * (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0])); + return errval * (xdr_opaque(xdrs, (char *)&(buf[3]), (unsigned int)buf[0])); } else { /* xdrs is open for reading */ @@ -1129,7 +1134,7 @@ int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) if (xdr_int(xdrs, &(buf[0])) == 0) return 0; - if (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]) == 0) + if (xdr_opaque(xdrs, (char *)&(buf[3]), (unsigned int)buf[0]) == 0) return 0; buf[0] = buf[1] = buf[2] = 0; diff --git a/src/EXTRA-DUMP/dump_xtc.h b/src/EXTRA-DUMP/dump_xtc.h index 74147be06b..0a27cc67dd 100644 --- a/src/EXTRA-DUMP/dump_xtc.h +++ b/src/EXTRA-DUMP/dump_xtc.h @@ -21,8 +21,8 @@ DumpStyle(xtc,DumpXTC); #define LMP_DUMP_XTC_H #include "dump.h" -#include "xdr_compat.h" +struct XDR; namespace LAMMPS_NS { class DumpXTC : public Dump { @@ -37,7 +37,7 @@ class DumpXTC : public Dump { float precision; // user-adjustable precision setting float *coords; double sfactor, tfactor; // scaling factors for positions and time unit - XDR xd; + XDR *xd; void init_style() override; int modify_param(int, char **) override; diff --git a/src/EXTRA-DUMP/xdr_compat.cpp b/src/EXTRA-DUMP/xdr_compat.cpp index e29bbe8334..3caa38663c 100644 --- a/src/EXTRA-DUMP/xdr_compat.cpp +++ b/src/EXTRA-DUMP/xdr_compat.cpp @@ -1,54 +1,63 @@ -// clang-format off #include "xdr_compat.h" + #include #include -/* This file is needed for systems, that do not provide XDR support - * in their system libraries. It was written for windows, but will - * most probably work on other platforms too. better make sure you - * test that the xtc files produced are ok before using it. +/* + * This file contains an implementation of the Sun External Data Representation (XDR) + * routines. They have been adapted specifically for the use with the LAMMPS xtc dump + * style to produce compressed trajectory files in the Gromacs XTC format. * - * It is also needed on BG/L and Cray XT3/XT4 as we don't have - * XDR support in the lightweight kernel runtimes either. + * The XDR sources are avaiable under the BSD 3-clause license for example in + * the MIT Kerberos 5 distribution with the following copyright notice and license. * - * This file contains the definitions for Sun External Data - * Representation (XDR) headers and routines. + * @(#)xdr.h 2.2 88/07/29 4.0 RPCSRC * - * Although the rest of LAMPPS is GPL, you can copy and use the XDR - * routines in any way you want as long as you obey Sun's license: + * Copyright (c) 2010, Oracle America, Inc. * - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. + * All rights reserved. * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Neither the name of the "Oracle America, Inc." nor the names of + * its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifdef __cplusplus extern "C" { #endif +#ifndef FALSE +#define FALSE (0) +#endif +#ifndef TRUE +#define TRUE (1) +#endif + +#define BYTES_PER_XDR_UNIT (4) + /* * for unit alignment */ @@ -58,19 +67,18 @@ static xdr_uint32_t xdr_swapbytes(xdr_uint32_t x) { xdr_uint32_t y; int i; - char *px=(char *)&x; - char *py=(char *)&y; + char *px = (char *) &x; + char *py = (char *) &y; - for (i=0;i<4;i++) - py[i]=px[3-i]; + for (i = 0; i < 4; i++) py[i] = px[3 - i]; return y; } static xdr_uint32_t xdr_htonl(xdr_uint32_t x) { - short s=0x0F00; - if (*((char *)&s)==(char)0x0F) { + short s = 0x0F00; + if (*((char *) &s) == (char) 0x0F) { /* bigendian, do nothing */ return x; } else { @@ -81,8 +89,8 @@ static xdr_uint32_t xdr_htonl(xdr_uint32_t x) static xdr_uint32_t xdr_ntohl(xdr_uint32_t x) { - short s=0x0F00; - if (*((char *)&s)==(char)0x0F) { + short s = 0x0F00; + if (*((char *) &s) == (char) 0x0F) { /* bigendian, do nothing */ return x; } else { @@ -91,221 +99,39 @@ static xdr_uint32_t xdr_ntohl(xdr_uint32_t x) } } - -/* - * Free a data structure using XDR - * Not a filter, but a convenient utility nonetheless - */ -void -xdr_free (xdrproc_t proc, char *objp) -{ - XDR x; - - x.x_op = XDR_FREE; - (*proc) (&x, objp); -} - -/* - * XDR nothing - */ -bool_t -xdr_void (void) -{ - return TRUE; -} - /* * XDR integers */ -bool_t -xdr_int (XDR *xdrs, int *ip) +bool_t xdr_int(XDR *xdrs, int *ip) { xdr_int32_t l; - switch (xdrs->x_op) - { + switch (xdrs->x_op) { + case XDR_ENCODE: l = (xdr_int32_t) (*ip); - return xdr_putint32 (xdrs, &l); + return xdr_putint32(xdrs, &l); + break; case XDR_DECODE: - if (!xdr_getint32 (xdrs, &l)) - { - return FALSE; - } + if (!xdr_getint32(xdrs, &l)) return FALSE; *ip = (int) l; + return TRUE; + break; case XDR_FREE: return TRUE; + break; } return FALSE; } - -/* - * XDR unsigned integers - */ -bool_t -xdr_u_int (XDR *xdrs, unsigned int *up) -{ - xdr_uint32_t l; - - switch (xdrs->x_op) - { - case XDR_ENCODE: - l = (xdr_uint32_t) (*up); - return xdr_putuint32 (xdrs, &l); - - case XDR_DECODE: - if (!xdr_getuint32 (xdrs, &l)) - { - return FALSE; - } - *up = (unsigned int) l; - - case XDR_FREE: - return TRUE; - } - return FALSE; -} - - - - -/* - * XDR short integers - */ -bool_t -xdr_short (XDR *xdrs, short *sp) -{ - xdr_int32_t l; - - switch (xdrs->x_op) - { - case XDR_ENCODE: - l = (xdr_int32_t) *sp; - return xdr_putint32 (xdrs, &l); - - case XDR_DECODE: - if (!xdr_getint32 (xdrs, &l)) - { - return FALSE; - } - *sp = (short) l; - return TRUE; - - case XDR_FREE: - return TRUE; - } - return FALSE; -} - - -/* - * XDR unsigned short integers - */ -bool_t -xdr_u_short (XDR *xdrs, unsigned short *usp) -{ - xdr_uint32_t l; - - switch (xdrs->x_op) - { - case XDR_ENCODE: - l = (xdr_uint32_t) *usp; - return xdr_putuint32 (xdrs, &l); - - case XDR_DECODE: - if (!xdr_getuint32 (xdrs, &l)) - { - return FALSE; - } - *usp = (unsigned short) l; - return TRUE; - - case XDR_FREE: - return TRUE; - } - return FALSE; -} - - -/* - * XDR a char - */ -bool_t -xdr_char (XDR *xdrs, char *cp) -{ - int i; - - i = (*cp); - if (!xdr_int (xdrs, &i)) - { - return FALSE; - } - *cp = i; - return TRUE; -} - -/* - * XDR an unsigned char - */ -bool_t -xdr_u_char (XDR *xdrs, unsigned char *cp) -{ - unsigned int u; - - u = (*cp); - if (!xdr_u_int (xdrs, &u)) - { - return FALSE; - } - *cp = u; - return TRUE; -} - -/* - * XDR booleans - */ -bool_t -xdr_bool (XDR *xdrs, int *bp) -{ -#define XDR_FALSE ((xdr_int32_t) 0) -#define XDR_TRUE ((xdr_int32_t) 1) - - xdr_int32_t lb; - - switch (xdrs->x_op) - { - case XDR_ENCODE: - lb = *bp ? XDR_TRUE : XDR_FALSE; - return xdr_putint32 (xdrs, &lb); - - case XDR_DECODE: - if (!xdr_getint32 (xdrs, &lb)) - { - return FALSE; - } - *bp = (lb == XDR_FALSE) ? FALSE : TRUE; - return TRUE; - - case XDR_FREE: - return TRUE; - } - return FALSE; -#undef XDR_FALSE -#undef XDR_TRUE -} - - - /* * XDR opaque data * Allows the specification of a fixed size sequence of opaque bytes. * cp points to the opaque object and cnt gives the byte length. */ -bool_t -xdr_opaque (XDR *xdrs, char *cp, unsigned int cnt) +bool_t xdr_opaque(XDR *xdrs, char *cp, unsigned int cnt) { unsigned int rndup; static char crud[BYTES_PER_XDR_UNIT]; @@ -313,219 +139,61 @@ xdr_opaque (XDR *xdrs, char *cp, unsigned int cnt) /* * if no data we are done */ - if (cnt == 0) - return TRUE; + if (cnt == 0) return TRUE; /* * round byte count to full xdr units */ rndup = cnt % BYTES_PER_XDR_UNIT; - if (rndup > 0) - rndup = BYTES_PER_XDR_UNIT - rndup; - - switch (xdrs->x_op) - { - case XDR_DECODE: - if (!xdr_getbytes (xdrs, cp, cnt)) - { - return FALSE; - } - if (rndup == 0) - return TRUE; - return xdr_getbytes (xdrs, (char *)crud, rndup); - - case XDR_ENCODE: - if (!xdr_putbytes (xdrs, cp, cnt)) - { - return FALSE; - } - if (rndup == 0) - return TRUE; - return xdr_putbytes (xdrs, xdr_zero, rndup); - - case XDR_FREE: - return TRUE; - } - return FALSE; -} - - -/* - * XDR null terminated ASCII strings - * xdr_string deals with "C strings" - arrays of bytes that are - * terminated by a nullptr character. The parameter cpp references a - * pointer to storage; If the pointer is null, then the necessary - * storage is allocated. The last parameter is the max allowed length - * of the string as specified by a protocol. - */ -bool_t -xdr_string (XDR *xdrs, char **cpp, unsigned int maxsize) -{ - char *sp = *cpp; /* sp is the actual string pointer */ - unsigned int size = 0; - unsigned int nodesize = 0; - - /* - * first deal with the length since xdr strings are counted-strings - */ - switch (xdrs->x_op) - { - case XDR_FREE: - if (sp == nullptr) - { - return TRUE; /* already free */ - } - /* fall through... */ - case XDR_ENCODE: - if (sp == nullptr) - return FALSE; - size = strlen (sp); - break; - case XDR_DECODE: - break; - } - - if (!xdr_u_int (xdrs, &size)) - { - return FALSE; - } - if (size > maxsize) - { - return FALSE; - } - nodesize = size + 1; - - /* - * now deal with the actual bytes - */ - switch (xdrs->x_op) - { - case XDR_DECODE: - if (nodesize == 0) - { - return TRUE; - } - if (sp == nullptr) - *cpp = sp = (char *) malloc (nodesize); - if (sp == nullptr) - { - (void) fputs ("xdr_string: out of memory\n", stderr); - return FALSE; - } - sp[size] = 0; - /* fall into ... */ - - case XDR_ENCODE: - return xdr_opaque (xdrs, sp, size); - - case XDR_FREE: - free (sp); - *cpp = nullptr; - return TRUE; - } - return FALSE; -} - - - -/* Floating-point stuff */ - -bool_t -xdr_float(XDR *xdrs, float *fp) -{ - xdr_int32_t tmp; - - switch (xdrs->x_op) { - - case XDR_ENCODE: - tmp = *(xdr_int32_t *)fp; - return (xdr_putint32(xdrs, &tmp)); - - break; - - case XDR_DECODE: - if (xdr_getint32(xdrs, &tmp)) { - *(xdr_int32_t *)fp = tmp; - return (TRUE); - } - - break; - - case XDR_FREE: - return (TRUE); - } - return (FALSE); -} - - -bool_t -xdr_double(XDR *xdrs, double *dp) -{ - - /* Windows and some other systems dont define double-precision - * word order in the header files, so unfortunately we have - * to calculate it! - */ - static int LSW=-1; /* Least significant fp word */ - int *ip; - xdr_int32_t tmp[2]; - - if (LSW<0) { - double x=0.987654321; /* Just a number */ - - /* Possible representations in IEEE double precision: - * (S=small endian, B=big endian) - * - * Byte order, Word order, Hex - * S S b8 56 0e 3c dd 9a ef 3f - * B S 3c 0e 56 b8 3f ef 9a dd - * S B dd 9a ef 3f b8 56 0e 3c - * B B 3f ef 9a dd 3c 0e 56 b8 - */ - - unsigned char ix = *((char *)&x); - - if (ix==0xdd || ix==0x3f) - LSW=1; /* Big endian word order */ - else if (ix==0xb8 || ix==0x3c) - LSW=0; /* Small endian word order */ - else { /* Catch strange errors */ - printf("Error when detecting floating-point word order.\n" - "Do you have a non-IEEE system?\n" - "If possible, use the XDR libraries provided with your system,\n" - "instead of the Gromacs fallback XDR source.\n"); - exit(0); - } - } + if (rndup > 0) rndup = BYTES_PER_XDR_UNIT - rndup; switch (xdrs->x_op) { - case XDR_ENCODE: - ip = (int *)dp; - tmp[0] = ip[!LSW]; - tmp[1] = ip[LSW]; - return (xdr_putint32(xdrs, tmp) && - xdr_putint32(xdrs, tmp+1)); + case XDR_DECODE: + if (!xdr_getbytes(xdrs, cp, cnt)) { return FALSE; } + if (rndup == 0) return TRUE; + return xdr_getbytes(xdrs, (char *) crud, rndup); + break; - break; + case XDR_ENCODE: + if (!xdr_putbytes(xdrs, cp, cnt)) { return FALSE; } + if (rndup == 0) return TRUE; + return xdr_putbytes(xdrs, xdr_zero, rndup); + break; - case XDR_DECODE: - ip = (int *)dp; - if (xdr_getint32(xdrs, tmp+!LSW) && - xdr_getint32(xdrs, tmp+LSW)) { - ip[0] = tmp[0]; - ip[1] = tmp[1]; - return (TRUE); - } - - break; - - case XDR_FREE: - return (TRUE); + case XDR_FREE: + return TRUE; + break; } - return (FALSE); + return FALSE; } +/* Floating-point stuff */ + +bool_t xdr_float(XDR *xdrs, float *fp) +{ + xdr_int32_t tmp; + + switch (xdrs->x_op) { + + case XDR_ENCODE: + tmp = *(xdr_int32_t *) fp; + return (xdr_putint32(xdrs, &tmp)); + break; + + case XDR_DECODE: + if (xdr_getint32(xdrs, &tmp)) { + *(xdr_int32_t *) fp = tmp; + return TRUE; + } + break; + + case XDR_FREE: + return TRUE; + break; + } + return FALSE; +} /* Array routines */ @@ -539,55 +207,37 @@ xdr_double(XDR *xdrs, double *dp) * > elemsize: size of each element * > xdr_elem: routine to XDR each element */ -bool_t -xdr_vector (XDR *xdrs, char *basep, unsigned int nelem, - unsigned int elemsize, xdrproc_t xdr_elem) +bool_t xdr_vector(XDR *xdrs, char *basep, unsigned int nelem, unsigned int elemsize, + xdrproc_t xdr_elem) { -#define LASTUNSIGNED ((unsigned int)0-1) +#define LASTUNSIGNED ((unsigned int) 0 - 1) unsigned int i; char *elptr; elptr = basep; - for (i = 0; i < nelem; i++) - { - if (!(*xdr_elem) (xdrs, elptr, LASTUNSIGNED)) - { - return FALSE; - } - elptr += elemsize; - } + for (i = 0; i < nelem; i++) { + if (!(*xdr_elem)(xdrs, elptr, LASTUNSIGNED)) { return FALSE; } + elptr += elemsize; + } return TRUE; #undef LASTUNSIGNED } - - -static bool_t xdrstdio_getbytes (XDR *, char *, unsigned int); -static bool_t xdrstdio_putbytes (XDR *, char *, unsigned int); -static unsigned int xdrstdio_getpos (XDR *); -static bool_t xdrstdio_setpos (XDR *, unsigned int); -static xdr_int32_t *xdrstdio_inline (XDR *, int); -static void xdrstdio_destroy (XDR *); -static bool_t xdrstdio_getint32 (XDR *, xdr_int32_t *); -static bool_t xdrstdio_putint32 (XDR *, xdr_int32_t *); -static bool_t xdrstdio_getuint32 (XDR *, xdr_uint32_t *); -static bool_t xdrstdio_putuint32 (XDR *, xdr_uint32_t *); +static bool_t xdrstdio_getbytes(XDR *, char *, unsigned int); +static bool_t xdrstdio_putbytes(XDR *, char *, unsigned int); +static void xdrstdio_destroy(XDR *); +static bool_t xdrstdio_getint32(XDR *, xdr_int32_t *); +static bool_t xdrstdio_putint32(XDR *, xdr_int32_t *); /* * Ops vector for stdio type XDR */ -static const struct xdr_ops xdrstdio_ops = -{ - xdrstdio_getbytes, /* deserialize counted bytes */ - xdrstdio_putbytes, /* serialize counted bytes */ - xdrstdio_getpos, /* get offset in the stream */ - xdrstdio_setpos, /* set offset in the stream */ - xdrstdio_inline, /* prime stream for inline macros */ - xdrstdio_destroy, /* destroy stream */ - xdrstdio_getint32, /* deserialize a int */ - xdrstdio_putint32, /* serialize a int */ - xdrstdio_getuint32, /* deserialize a int */ - xdrstdio_putuint32 /* serialize a int */ +static const struct xdr_ops xdrstdio_ops = { + xdrstdio_getbytes, /* deserialize counted bytes */ + xdrstdio_putbytes, /* serialize counted bytes */ + xdrstdio_destroy, /* destroy stream */ + xdrstdio_getint32, /* deserialize a int */ + xdrstdio_putint32, /* serialize a int */ }; /* @@ -595,8 +245,7 @@ static const struct xdr_ops xdrstdio_ops = * Sets the xdr stream handle xdrs for use on the stream file. * Operation flag is set to op. */ -void -xdrstdio_create (XDR *xdrs, FILE *file, enum xdr_op op) +void xdrstdio_create(XDR *xdrs, FILE *file, enum xdr_op op) { xdrs->x_op = op; /* We have to add the const since the `struct xdr_ops' in `struct XDR' @@ -611,104 +260,42 @@ xdrstdio_create (XDR *xdrs, FILE *file, enum xdr_op op) * Destroy a stdio xdr stream. * Cleans up the xdr stream handle xdrs previously set up by xdrstdio_create. */ -static void -xdrstdio_destroy (XDR *xdrs) +static void xdrstdio_destroy(XDR *xdrs) { - (void) fflush ((FILE *) xdrs->x_private); + (void) fflush((FILE *) xdrs->x_private); /* xx should we close the file ?? */ } - -static bool_t -xdrstdio_getbytes (XDR *xdrs, char *addr, unsigned int len) +static bool_t xdrstdio_getbytes(XDR *xdrs, char *addr, unsigned int len) { - if ((len != 0) && (fread (addr, (int) len, 1, - (FILE *) xdrs->x_private) != 1)) - return FALSE; + if ((len != 0) && (fread(addr, (int) len, 1, (FILE *) xdrs->x_private) != 1)) return FALSE; return TRUE; } -static bool_t -xdrstdio_putbytes (XDR *xdrs, char *addr, unsigned int len) +static bool_t xdrstdio_putbytes(XDR *xdrs, char *addr, unsigned int len) { - if ((len != 0) && (fwrite (addr, (int) len, 1, - (FILE *) xdrs->x_private) != 1)) - return FALSE; + if ((len != 0) && (fwrite(addr, (int) len, 1, (FILE *) xdrs->x_private) != 1)) return FALSE; return TRUE; } -static unsigned int -xdrstdio_getpos (XDR *xdrs) -{ - return (unsigned int) ftell ((FILE *) xdrs->x_private); -} - -static bool_t -xdrstdio_setpos (XDR *xdrs, unsigned int pos) -{ - return fseek ((FILE *) xdrs->x_private, (xdr_int32_t) pos, 0) < 0 ? FALSE : TRUE; -} - -static xdr_int32_t * -xdrstdio_inline (XDR * /*xdrs*/, int /*len*/) -{ - /* - * Must do some work to implement this: must ensure - * enough data in the underlying stdio buffer, - * that the buffer is aligned so that we can indirect through a - * long *, and stuff this pointer in xdrs->x_buf. Doing - * a fread or fwrite to a scratch buffer would defeat - * most of the gains to be had here and require storage - * management on this buffer, so we don't do this. - */ - return nullptr; -} - -static bool_t -xdrstdio_getint32 (XDR *xdrs, xdr_int32_t *ip) +static bool_t xdrstdio_getint32(XDR *xdrs, xdr_int32_t *ip) { xdr_int32_t mycopy; - if (fread ((char *) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1) - return FALSE; - *ip = xdr_ntohl (mycopy); + if (fread((char *) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1) return FALSE; + *ip = xdr_ntohl(mycopy); return TRUE; } -static bool_t -xdrstdio_putint32 (XDR *xdrs, xdr_int32_t *ip) +static bool_t xdrstdio_putint32(XDR *xdrs, xdr_int32_t *ip) { - xdr_int32_t mycopy = xdr_htonl (*ip); + xdr_int32_t mycopy = xdr_htonl(*ip); ip = &mycopy; - if (fwrite ((char *) ip, 4, 1, (FILE *) xdrs->x_private) != 1) - return FALSE; + if (fwrite((char *) ip, 4, 1, (FILE *) xdrs->x_private) != 1) return FALSE; return TRUE; } -static bool_t -xdrstdio_getuint32 (XDR *xdrs, xdr_uint32_t *ip) -{ - xdr_uint32_t mycopy; - - if (fread ((char *) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1) - return FALSE; - *ip = xdr_ntohl (mycopy); - return TRUE; -} - -static bool_t -xdrstdio_putuint32 (XDR *xdrs, xdr_uint32_t *ip) -{ - xdr_uint32_t mycopy = xdr_htonl (*ip); - - ip = &mycopy; - if (fwrite ((char *) ip, 4, 1, (FILE *) xdrs->x_private) != 1) - return FALSE; - return TRUE; -} - #ifdef __cplusplus } #endif - diff --git a/src/EXTRA-DUMP/xdr_compat.h b/src/EXTRA-DUMP/xdr_compat.h index 55dc22e9f9..d600a4a404 100644 --- a/src/EXTRA-DUMP/xdr_compat.h +++ b/src/EXTRA-DUMP/xdr_compat.h @@ -1,7 +1,7 @@ #ifndef LMP_XDR_COMPAT_H #define LMP_XDR_COMPAT_H -#include +#include #include #ifdef __cplusplus @@ -9,47 +9,53 @@ extern "C" { #endif /* - * This file is needed for systems, that do not provide XDR support - * in their system libraries. It was written for windows, but will - * most probably work on other platforms too. better make sure you - * test that the xtc files produced are ok before using it. + * This file contains the definitions for Sun External Data Representation (XDR). + * They have been adapted specifically for the use with the LAMMPS xtc dump style + * to produce compressed trajectory files in the Gromacs XTC format. * - * It is also needed on BG/L, BG/P and Cray XT3/XT4/XT5 as we don't - * have XDR support in the lightweight kernel runtimes either. + * The XDR sources are avaiable under the BSD 3-clause license for example in + * the MIT Kerberos 5 distribution with the following copyright notice and license. * - * This file contains the definitions for Sun External Data - * Representation (XDR) headers and routines. + * @(#)xdr.h 2.2 88/07/29 4.0 RPCSRC * - * Although the rest of LAMPPS is GPL, you can copy and use the XDR - * routines in any way you want as long as you obey Sun's license: - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. + * Copyright (c) 2010, Oracle America, Inc. * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. + * All rights reserved. * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 + * * Neither the name of the "Oracle America, Inc." nor the names of + * its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* compatibility typedefs */ +typedef int bool_t; + +typedef int32_t xdr_int32_t; +typedef uint32_t xdr_uint32_t; + /* * Xdr operations. XDR_ENCODE causes the type to be encoded into the * stream. XDR_DECODE causes the type to be extracted from the stream. @@ -57,44 +63,8 @@ extern "C" { * XDR_DECODE request. */ -typedef int bool_t; - -#if defined(_WIN32) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__DragonFly__) || \ - defined(__OpenBSD__) || defined(__NetBSD__) || (defined(__linux__) && !defined(__GLIBC_MINOR__)) -typedef char *caddr_t; -typedef unsigned int u_int; -#endif - -/* - * Aninteger type that is 32 bits wide. Check if int, - * long or short is 32 bits and die if none of them is :-) - */ -#if (INT_MAX == 2147483647) -typedef int xdr_int32_t; -typedef unsigned int xdr_uint32_t; -#elif (LONG_MAX == 2147483647L) -typedef long xdr_int32_t; -typedef unsigned long xdr_uint32_t; -#elif (SHRT_MAX == 2147483647) -typedef short xdr_int32_t; -typedef unsigned short xdr_uint32_t; -#else -#error ERROR: No 32 bit wide integer type found! -#endif - enum xdr_op { XDR_ENCODE = 0, XDR_DECODE = 1, XDR_FREE = 2 }; -#ifndef FALSE -#define FALSE (0) -#endif -#ifndef TRUE -#define TRUE (1) -#endif - -#define BYTES_PER_XDR_UNIT (4) -/* Macro to round up to units of 4. */ -#define XDR_RNDUP(x) (((x) + BYTES_PER_XDR_UNIT - 1) & ~(BYTES_PER_XDR_UNIT - 1)) - /* * The XDR handle. * Contains operation which is being applied to the stream, @@ -113,26 +83,16 @@ struct XDR { }; struct xdr_ops { + /* get some bytes from XDR stream */ bool_t (*x_getbytes)(XDR *__xdrs, char *__addr, unsigned int __len); - /* get some bytes from " */ + /* put some bytes to XDR stream */ bool_t (*x_putbytes)(XDR *__xdrs, char *__addr, unsigned int __len); - /* put some bytes to " */ - unsigned int (*x_getpostn)(XDR *__xdrs); - /* returns bytes off from beginning */ - bool_t (*x_setpostn)(XDR *__xdrs, unsigned int __pos); - /* lets you reposition the stream */ - xdr_int32_t *(*x_inline)(XDR *__xdrs, int __len); - /* buf quick ptr to buffered data */ - void (*x_destroy)(XDR *__xdrs); /* free privates of this xdr_stream */ + void (*x_destroy)(XDR *__xdrs); + /* get a int from XDR stream */ bool_t (*x_getint32)(XDR *__xdrs, xdr_int32_t *__ip); - /* get a int from underlying stream */ + /* put a int to XDR stream */ bool_t (*x_putint32)(XDR *__xdrs, xdr_int32_t *__ip); - /* put a int to " */ - bool_t (*x_getuint32)(XDR *__xdrs, xdr_uint32_t *__ip); - /* get a unsigned int from underlying stream */ - bool_t (*x_putuint32)(XDR *__xdrs, xdr_uint32_t *__ip); - /* put a int to " */ }; /* @@ -151,53 +111,25 @@ typedef bool_t (*xdrproc_t)(XDR *, void *, ...); * * XDR *xdrs; * xdr_int32_t *int32p; - * long *longp; - * char *addr; * unsigned int len; - * unsigned int pos; */ #define xdr_getint32(xdrs, int32p) (*(xdrs)->x_ops->x_getint32)(xdrs, int32p) - #define xdr_putint32(xdrs, int32p) (*(xdrs)->x_ops->x_putint32)(xdrs, int32p) - -#define xdr_getuint32(xdrs, uint32p) (*(xdrs)->x_ops->x_getuint32)(xdrs, uint32p) - -#define xdr_putuint32(xdrs, uint32p) (*(xdrs)->x_ops->x_putuint32)(xdrs, uint32p) - #define xdr_getbytes(xdrs, addr, len) (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len) - #define xdr_putbytes(xdrs, addr, len) (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len) - -#define xdr_getpos(xdrs) (*(xdrs)->x_ops->x_getpostn)(xdrs) - -#define xdr_setpos(xdrs, pos) (*(xdrs)->x_ops->x_setpostn)(xdrs, pos) - -#define xdr_inline(xdrs, len) (*(xdrs)->x_ops->x_inline)(xdrs, len) - #define xdr_destroy(xdrs) \ do { \ if ((xdrs)->x_ops->x_destroy) (*(xdrs)->x_ops->x_destroy)(xdrs); \ } while (0) extern bool_t xdr_int(XDR *__xdrs, int *__ip); -extern bool_t xdr_u_int(XDR *__xdrs, unsigned int *__ip); -extern bool_t xdr_short(XDR *__xdrs, short *__ip); -extern bool_t xdr_u_short(XDR *__xdrs, unsigned short *__ip); -extern bool_t xdr_bool(XDR *__xdrs, int *__bp); extern bool_t xdr_opaque(XDR *__xdrs, char *__cp, unsigned int __cnt); -extern bool_t xdr_string(XDR *__xdrs, char **__cpp, unsigned int __maxsize); -extern bool_t xdr_char(XDR *__xdrs, char *__cp); -extern bool_t xdr_u_char(XDR *__xdrs, unsigned char *__cp); extern bool_t xdr_vector(XDR *__xdrs, char *__basep, unsigned int __nelem, unsigned int __elemsize, xdrproc_t __xdr_elem); extern bool_t xdr_float(XDR *__xdrs, float *__fp); -extern bool_t xdr_double(XDR *__xdrs, double *__dp); extern void xdrstdio_create(XDR *__xdrs, FILE *__file, enum xdr_op __xop); -/* free memory buffers for xdr */ -extern void xdr_free(xdrproc_t __proc, char *__objp); - #ifdef __cplusplus } #endif diff --git a/src/EXTRA-FIX/fix_ave_correlate_long.cpp b/src/EXTRA-FIX/fix_ave_correlate_long.cpp index fc1760b353..7c80365c57 100644 --- a/src/EXTRA-FIX/fix_ave_correlate_long.cpp +++ b/src/EXTRA-FIX/fix_ave_correlate_long.cpp @@ -454,6 +454,8 @@ void FixAveCorrelateLong::end_of_step() scalar = val.val.f->compute_vector(val.argindex-1); // evaluate equal-style or vector-style variable + // if index exceeds vector length, use a zero value + // this can be useful if vector length is not known a priori } else if (val.which == ArgInfo::VARIABLE) { if (val.argindex == 0) @@ -462,7 +464,7 @@ void FixAveCorrelateLong::end_of_step() double *varvec; int nvec = input->variable->compute_vector(val.val.v,&varvec); int index = val.argindex; - if (nvec < index) scalar = 0.0; + if (index > nvec) scalar = 0.0; else scalar = varvec[index-1]; } } diff --git a/src/KOKKOS/domain_kokkos.cpp b/src/KOKKOS/domain_kokkos.cpp index aecc12cd12..d0865c6afb 100644 --- a/src/KOKKOS/domain_kokkos.cpp +++ b/src/KOKKOS/domain_kokkos.cpp @@ -22,7 +22,7 @@ using namespace LAMMPS_NS; -static constexpr double BIG = 1.0e20; +static constexpr double BIG = 1.0e20; /* ---------------------------------------------------------------------- */ @@ -80,6 +80,11 @@ public: void DomainKokkos::reset_box() { // perform shrink-wrapping + + // nothing to do for empty systems + + if (atom->natoms == 0) return; + // compute extent of atoms on this proc // for triclinic, this is done in lamda space diff --git a/src/KOKKOS/fft3d_kokkos.cpp b/src/KOKKOS/fft3d_kokkos.cpp index 5caed42f43..202d46e788 100644 --- a/src/KOKKOS/fft3d_kokkos.cpp +++ b/src/KOKKOS/fft3d_kokkos.cpp @@ -39,8 +39,11 @@ FFT3dKokkos::FFT3dKokkos(LAMMPS *lmp, MPI_Comm comm, int nfast, int Pointers(lmp) { int nthreads = lmp->kokkos->nthreads; + +#if defined(LMP_KOKKOS_GPU) int ngpus = lmp->kokkos->ngpus; ExecutionSpace execution_space = ExecutionSpaceFromDevice::space; +#endif #if defined(FFT_KOKKOS_MKL) if (ngpus > 0 && execution_space == Device) diff --git a/src/KOKKOS/pair_kokkos.h b/src/KOKKOS/pair_kokkos.h index 15417d7620..c4bd603041 100644 --- a/src/KOKKOS/pair_kokkos.h +++ b/src/KOKKOS/pair_kokkos.h @@ -950,10 +950,10 @@ EV_FLOAT pair_compute_neighlist (PairStyle* fpair, std::enable_if_t<(NEIGHFLAG&P static int vectorsize = 0; static int atoms_per_team = 0; - static int teamsize_max_for = 0; - static int teamsize_max_reduce = 0; #if defined(LMP_KOKKOS_GPU) + static int teamsize_max_for = 0; + static int teamsize_max_reduce = 0; static int lastcall = -1; if (!vectorsize || lastcall < fpair->lmp->neighbor->lastcall) { lastcall = fpair->lmp->update->ntimestep; diff --git a/src/MC/fix_sgcmc.cpp b/src/MC/fix_sgcmc.cpp index ae0e69d77e..77ead0479f 100644 --- a/src/MC/fix_sgcmc.cpp +++ b/src/MC/fix_sgcmc.cpp @@ -253,11 +253,9 @@ void FixSemiGrandCanonicalMC::init() error->all(FLERR, "Can not run fix sgcmc with naive total energy calculation " "and more than one MPI process."); - // Create a compute that will provide the total energy of the system. + // Get reference to a compute that will provide the total energy of the system. // This is needed by computeTotalEnergy(). - char* id_pe = (char*)"thermo_pe"; - int ipe = modify->find_compute(id_pe); - compute_pe = modify->compute[ipe]; + compute_pe = modify->get_compute_by_id("thermo_pe"); } interactionRadius = force->pair->cutforce; if (comm->me == 0) utils::logmesg(lmp, " SGC - Interaction radius: {}\n", interactionRadius); @@ -373,8 +371,7 @@ void FixSemiGrandCanonicalMC::doMC() // Use a random number to choose the new species if there are three or more atom types. newSpecies = (int)(localRandom->uniform() * (atom->ntypes-1)) + 1; if (newSpecies >= oldSpecies) newSpecies++; - } - else { + } else { // If there are only two atom types, then the decision is clear. newSpecies = (oldSpecies == 1) ? 2 : 1; } @@ -394,8 +391,7 @@ void FixSemiGrandCanonicalMC::doMC() if (serialMode && kappa != 0.0) { for (int i = 2; i <= atom->ntypes; i++) dm += (deltamu[i] + kappa / atom->natoms * (2.0 * speciesCounts[i] + deltaN[i])) * deltaN[i]; - } - else { + } else { for (int i = 2; i <= atom->ntypes; i++) dm += deltamu[i] * deltaN[i]; } @@ -436,8 +432,7 @@ void FixSemiGrandCanonicalMC::doMC() // Update global species counters. for (int i = 1; i <= atom->ntypes; i++) speciesCounts[i] += deltaNGlobal[i]; - } - else if (serialMode) { + } else if (serialMode) { // Update the local species counters. for (int i = 1; i <= atom->ntypes; i++) speciesCounts[i] += deltaN[i]; @@ -450,8 +445,7 @@ void FixSemiGrandCanonicalMC::doMC() else flipAtomGeneric(selectedAtom, oldSpecies, newSpecies); nAcceptedSwapsLocal++; - } - else { + } else { nRejectedSwapsLocal++; } diff --git a/src/MOLECULE/fix_cmap.cpp b/src/MOLECULE/fix_cmap.cpp index cb4cb8cadc..bc220da30e 100644 --- a/src/MOLECULE/fix_cmap.cpp +++ b/src/MOLECULE/fix_cmap.cpp @@ -970,7 +970,8 @@ void FixCMAP::read_data_section(char * /*keyword*/, int /*n*/, char *buf, atom5 = values.next_tagint(); if (values.has_next()) throw TokenizerException("too many items",line); } catch (std::exception &e) { - error->all(FLERR,"Incorrect format of CMAP section: {}", e.what()); + error->all(FLERR,"Incorrect format of CMAP section in data file: {}{}", + e.what(), utils::errorurl(2)); } atom1 += id_offset; diff --git a/src/OPENMP/angle_cosine_squared_omp.cpp b/src/OPENMP/angle_cosine_squared_omp.cpp index 9b849c62a3..f70e167d36 100644 --- a/src/OPENMP/angle_cosine_squared_omp.cpp +++ b/src/OPENMP/angle_cosine_squared_omp.cpp @@ -16,14 +16,16 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ -#include "omp_compat.h" #include "angle_cosine_squared_omp.h" -#include + #include "atom.h" #include "comm.h" #include "force.h" #include "neighbor.h" +#include + +#include "omp_compat.h" #include "suffix.h" using namespace LAMMPS_NS; diff --git a/src/REPLICA/fix_pimd_langevin.cpp b/src/REPLICA/fix_pimd_langevin.cpp index c6886fbed7..c24984f152 100644 --- a/src/REPLICA/fix_pimd_langevin.cpp +++ b/src/REPLICA/fix_pimd_langevin.cpp @@ -47,10 +47,10 @@ using namespace LAMMPS_NS; using namespace FixConst; -using MathConst::MY_PI; using MathConst::MY_2PI; -using MathConst::THIRD; +using MathConst::MY_PI; using MathConst::MY_SQRT2; +using MathConst::THIRD; using MathSpecial::powint; enum { PIMD, NMPIMD }; @@ -475,11 +475,13 @@ void FixPIMDLangevin::init() c_pe = modify->get_compute_by_id(id_pe); if (!c_pe) - error->universe_all(FLERR, fmt::format("Could not find fix {} potential energy compute ID {}", style, id_pe)); + error->universe_all( + FLERR, fmt::format("Could not find fix {} potential energy compute ID {}", style, id_pe)); c_press = modify->get_compute_by_id(id_press); if (!c_press) - error->universe_all(FLERR, fmt::format("Could not find fix {} pressure compute ID {}", style, id_press)); + error->universe_all( + FLERR, fmt::format("Could not find fix {} pressure compute ID {}", style, id_press)); t_prim = t_vir = t_cv = p_prim = p_vir = p_cv = p_md = 0.0; } @@ -667,27 +669,26 @@ void FixPIMDLangevin::post_force(int /*flag*/) imageint *image = atom->image; tagint *tag = atom->tag; - if (method == NMPIMD) { - if (atom->nmax > maxunwrap) reallocate_x_unwrap(); - if (atom->nmax > maxxc) reallocate_xc(); - for (int i = 0; i < nlocal; i++) { - x_unwrap[i][0] = x[i][0]; - x_unwrap[i][1] = x[i][1]; - x_unwrap[i][2] = x[i][2]; - } - if (mapflag) { - for (int i = 0; i < nlocal; i++) { domain->unmap(x_unwrap[i], image[i]); } - } - for (int i = 0; i < nlocal; i++) { - xc[i][0] = xcall[3 * (tag[i] - 1) + 0]; - xc[i][1] = xcall[3 * (tag[i] - 1) + 1]; - xc[i][2] = xcall[3 * (tag[i] - 1) + 2]; - } - - compute_vir(); - compute_cvir(); - compute_t_vir(); + if (atom->nmax > maxunwrap) reallocate_x_unwrap(); + if (atom->nmax > maxxc) reallocate_xc(); + for (int i = 0; i < nlocal; i++) { + x_unwrap[i][0] = x[i][0]; + x_unwrap[i][1] = x[i][1]; + x_unwrap[i][2] = x[i][2]; } + if (mapflag) { + for (int i = 0; i < nlocal; i++) { domain->unmap(x_unwrap[i], image[i]); } + } + for (int i = 0; i < nlocal; i++) { + xc[i][0] = xcall[3 * (tag[i] - 1) + 0]; + xc[i][1] = xcall[3 * (tag[i] - 1) + 1]; + xc[i][2] = xcall[3 * (tag[i] - 1) + 2]; + } + + compute_vir(); + compute_xf_vir(); + compute_cvir(); + compute_t_vir(); if (method == PIMD) { if (mapflag) { @@ -696,6 +697,7 @@ void FixPIMDLangevin::post_force(int /*flag*/) inter_replica_comm(x); spring_force(); compute_spring_energy(); + compute_t_prim(); if (mapflag) { for (int i = 0; i < nlocal; i++) { domain->unmap_inv(x[i], image[i]); } } @@ -741,7 +743,7 @@ void FixPIMDLangevin::collect_xc() } } - const double sqrtnp = sqrt((double)np); + const double sqrtnp = sqrt((double) np); for (int i = 0; i < nlocal; i++) { xcall[3 * (tag[i] - 1) + 0] = x[i][0] / sqrtnp; xcall[3 * (tag[i] - 1) + 1] = x[i][1] / sqrtnp; @@ -1048,8 +1050,8 @@ void FixPIMDLangevin::langevin_init() c2_k[i] = sqrt(1.0 - c1_k[i] * c1_k[i]); } for (int i = 0; i < np; i++) { - out += fmt::format(" {:d} {:.8e} {:.8e} {:.8e} {:.8e}\n", i, - _omega_k[i], tau_k[i], c1_k[i], c2_k[i]); + out += fmt::format(" {:d} {:.8e} {:.8e} {:.8e} {:.8e}\n", i, _omega_k[i], tau_k[i], + c1_k[i], c2_k[i]); } } else if (method == PIMD) { for (int i = 0; i < np; i++) { @@ -1111,7 +1113,7 @@ void FixPIMDLangevin::nmpimd_init() } // Set up eigenvectors for degenerated modes - const double sqrtnp = sqrt((double)np); + const double sqrtnp = sqrt((double) np); for (int j = 0; j < np; j++) { for (int i = 1; i < int(np / 2) + 1; i++) { M_x2xp[i][j] = MY_SQRT2 * cos(MY_2PI * double(i) * double(j) / double(np)) / sqrtnp; @@ -1364,7 +1366,23 @@ void FixPIMDLangevin::inter_replica_comm(double **ptr) void FixPIMDLangevin::remove_com_motion() { - if (universe->iworld == 0) { + if (method == NMPIMD) { + if (universe->iworld == 0) { + double **v = atom->v; + int *mask = atom->mask; + int nlocal = atom->nlocal; + if (dynamic) masstotal = group->mass(igroup); + double vcm[3]; + group->vcm(igroup, masstotal, vcm); + for (int i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) { + v[i][0] -= vcm[0]; + v[i][1] -= vcm[1]; + v[i][2] -= vcm[2]; + } + } + } + } else if (method == PIMD) { double **v = atom->v; int *mask = atom->mask; int nlocal = atom->nlocal; @@ -1378,24 +1396,34 @@ void FixPIMDLangevin::remove_com_motion() v[i][2] -= vcm[2]; } } + } else { + error->all(FLERR, "Unknown method for fix pimd/langevin. Only nmpimd and pimd are supported!"); } } /* ---------------------------------------------------------------------- */ +void FixPIMDLangevin::compute_xf_vir() +{ + int nlocal = atom->nlocal; + double xf = 0.0; + vir_ = 0.0; + for (int i = 0; i < nlocal; i++) { + for (int j = 0; j < 3; j++) { xf += x_unwrap[i][j] * atom->f[i][j]; } + } + MPI_Allreduce(&xf, &vir_, 1, MPI_DOUBLE, MPI_SUM, universe->uworld); +} + +/* ---------------------------------------------------------------------- */ + void FixPIMDLangevin::compute_cvir() { int nlocal = atom->nlocal; - double xf = 0.0; double xcf = 0.0; - vir_ = centroid_vir = 0.0; + centroid_vir = 0.0; for (int i = 0; i < nlocal; i++) { - for (int j = 0; j < 3; j++) { - xf += x_unwrap[i][j] * atom->f[i][j]; - xcf += (x_unwrap[i][j] - xc[i][j]) * atom->f[i][j]; - } + for (int j = 0; j < 3; j++) { xcf += (x_unwrap[i][j] - xc[i][j]) * atom->f[i][j]; } } - MPI_Allreduce(&xf, &vir_, 1, MPI_DOUBLE, MPI_SUM, universe->uworld); MPI_Allreduce(&xcf, ¢roid_vir, 1, MPI_DOUBLE, MPI_SUM, universe->uworld); if (pstyle == ANISO) { for (int i = 0; i < 6; i++) c_vir_tensor[i] = 0.0; @@ -1553,11 +1581,19 @@ void FixPIMDLangevin::compute_p_prim() void FixPIMDLangevin::compute_p_cv() { double inv_volume = 1.0 / (domain->xprd * domain->yprd * domain->zprd); - if (universe->iworld == 0) { - p_cv = THIRD * inv_volume * ((2.0 * ke_bead - centroid_vir) * force->nktv2p + vir) / np; - } p_md = THIRD * inv_volume * (totke + vir); - MPI_Bcast(&p_cv, 1, MPI_DOUBLE, 0, universe->uworld); + if (method == NMPIMD) { + if (universe->iworld == 0) { + p_cv = THIRD * inv_volume * ((2.0 * ke_bead - centroid_vir) * force->nktv2p + vir) / np; + } + MPI_Bcast(&p_cv, 1, MPI_DOUBLE, 0, universe->uworld); + } else if (method == PIMD) { + p_cv = THIRD * inv_volume * ((2.0 * totke / np - centroid_vir) * force->nktv2p + vir) / np; + } else { + error->universe_all( + FLERR, + "Unknown method parameter for fix pimd/langevin. Only nmpimd and pimd are supported!"); + } } /* ---------------------------------------------------------------------- */ diff --git a/src/REPLICA/fix_pimd_langevin.h b/src/REPLICA/fix_pimd_langevin.h index 0f21b908b0..869281243f 100644 --- a/src/REPLICA/fix_pimd_langevin.h +++ b/src/REPLICA/fix_pimd_langevin.h @@ -176,6 +176,7 @@ class FixPIMDLangevin : public Fix { void compute_p_prim(); void compute_p_cv(); // centroid-virial pressure estimator void compute_vir(); + void compute_xf_vir(); void compute_cvir(); void compute_totenthalpy(); diff --git a/src/RIGID/fix_rigid.cpp b/src/RIGID/fix_rigid.cpp index 7a63c52220..f4b82e1fd2 100644 --- a/src/RIGID/fix_rigid.cpp +++ b/src/RIGID/fix_rigid.cpp @@ -1234,11 +1234,6 @@ void FixRigid::enforce2d() angmom[ibody][1] = 0.0; omega[ibody][0] = 0.0; omega[ibody][1] = 0.0; - if (langflag && langextra) { - langextra[ibody][2] = 0.0; - langextra[ibody][3] = 0.0; - langextra[ibody][4] = 0.0; - } } } @@ -1958,6 +1953,8 @@ void FixRigid::setup_bodies_static() // diagonalize inertia tensor for each body via Jacobi rotations // inertia = 3 eigenvalues = principal moments of inertia + // request that jacobi3() return them in ascending order, + /// so that in 2d last evector is z-axis // evectors and exzy_space = 3 evectors = principal axes of rigid body int ierror; @@ -1972,7 +1969,7 @@ void FixRigid::setup_bodies_static() tensor[0][2] = tensor[2][0] = all[ibody][4]; tensor[0][1] = tensor[1][0] = all[ibody][5]; - ierror = MathEigen::jacobi3(tensor,inertia[ibody],evectors); + ierror = MathEigen::jacobi3(tensor,inertia[ibody],evectors,1); if (ierror) error->all(FLERR, "Insufficient Jacobi rotations for rigid body"); @@ -1986,6 +1983,22 @@ void FixRigid::setup_bodies_static() ez_space[ibody][1] = evectors[1][2]; ez_space[ibody][2] = evectors[2][2]; + // for 2d, ensure that evector along z axis is last + // necessary so that quaternion is a simple rotation around +z axis + // or a 180 degree rotation for a -z axis + // otherwise richardson() method for a body with a tiny evalue (near-linear) + // may not preserve the correct z-aligned quat and associated evectors + // over time due to round-off accumulation + + if (domain->dimension == 2) { + if (fabs(ez_space[ibody][0]) > EPSILON || fabs(ez_space[ibody][1]) > EPSILON) { + std::swap(inertia[ibody][1],inertia[ibody][2]); + std::swap(ey_space[ibody][0],ez_space[ibody][0]); + std::swap(ey_space[ibody][1],ez_space[ibody][1]); + std::swap(ey_space[ibody][2],ez_space[ibody][2]); + } + } + // if any principal moment < scaled EPSILON, set to 0.0 double max; diff --git a/src/RIGID/fix_rigid_small.cpp b/src/RIGID/fix_rigid_small.cpp index 9e185a4de2..cb12bd96f7 100644 --- a/src/RIGID/fix_rigid_small.cpp +++ b/src/RIGID/fix_rigid_small.cpp @@ -1110,11 +1110,6 @@ void FixRigidSmall::enforce2d() b->angmom[1] = 0.0; b->omega[0] = 0.0; b->omega[1] = 0.0; - if (langflag && langextra) { - langextra[ibody][2] = 0.0; - langextra[ibody][3] = 0.0; - langextra[ibody][4] = 0.0; - } } } @@ -2102,6 +2097,8 @@ void FixRigidSmall::setup_bodies_static() // diagonalize inertia tensor for each body via Jacobi rotations // inertia = 3 eigenvalues = principal moments of inertia + // request that jacobi3() returns them in ascending order, + // so that in 2d last evector is z-axis // evectors and exzy_space = 3 evectors = principal axes of rigid body int ierror; @@ -2118,7 +2115,7 @@ void FixRigidSmall::setup_bodies_static() tensor[0][1] = tensor[1][0] = itensor[ibody][5]; inertia = body[ibody].inertia; - ierror = MathEigen::jacobi3(tensor,inertia,evectors); + ierror = MathEigen::jacobi3(tensor,inertia,evectors,1); if (ierror) error->all(FLERR, "Insufficient Jacobi rotations for rigid body"); ex = body[ibody].ex_space; @@ -2134,6 +2131,22 @@ void FixRigidSmall::setup_bodies_static() ez[1] = evectors[1][2]; ez[2] = evectors[2][2]; + // for 2d, ensure that evector along z axis is last + // necessary so that quaternion is a simple rotation around +z axis + // or a 180 degree rotation for a -z axis + // otherwise richardson() method for a body with a tiny evalue (near-linear) + // may not preserve the correct z-aligned quat and associated evectors + // over time due to round-off accumulation + + if (domain->dimension == 2) { + if (fabs(ez[0]) > EPSILON || fabs(ez[1]) > EPSILON) { + std::swap(inertia[1],inertia[2]); + std::swap(ey[0],ez[0]); + std::swap(ey[1],ez[1]); + std::swap(ey[2],ez[2]); + } + } + // if any principal moment < scaled EPSILON, set to 0.0 double max; @@ -2156,6 +2169,7 @@ void FixRigidSmall::setup_bodies_static() // convert geometric center position to principal axis coordinates // xcm is wrapped, but xgc is not initially + xcm = body[ibody].xcm; xgc = body[ibody].xgc; double delta[3]; diff --git a/src/SPIN/compute_spin.cpp b/src/SPIN/compute_spin.cpp index 1c92d284f0..fc5e223e75 100644 --- a/src/SPIN/compute_spin.cpp +++ b/src/SPIN/compute_spin.cpp @@ -215,9 +215,8 @@ void ComputeSpin::compute_vector() tempnum += tx*tx+ty*ty+tz*tz; tempdenom += sp[i][0]*fm[i][0]+fm[i][1]*sp[i][1]+sp[i][2]*fm[i][2]; countsp++; - } + } else error->all(FLERR,"Compute compute/spin requires atom/spin style"); } - else error->all(FLERR,"Compute compute/spin requires atom/spin style"); } MPI_Allreduce(mag,magtot,4,MPI_DOUBLE,MPI_SUM,world); diff --git a/src/angle_hybrid.cpp b/src/angle_hybrid.cpp index e79776b0d2..0c61970a1f 100644 --- a/src/angle_hybrid.cpp +++ b/src/angle_hybrid.cpp @@ -270,7 +270,7 @@ void AngleHybrid::coeff(int narg, char **arg) else if (strcmp(arg[1], "bb") == 0) error->all(FLERR, "BondBond coeff for hybrid angle has invalid format"); else - error->all(FLERR, "Angle coeff for hybrid has invalid style"); + error->all(FLERR, "Expected hybrid sub-style instead of {} in angle_coeff command", arg[1]); } // move 1st arg to 2nd arg diff --git a/src/atom.cpp b/src/atom.cpp index 085ca88b4e..7edf4760d2 100644 --- a/src/atom.cpp +++ b/src/atom.cpp @@ -1068,7 +1068,8 @@ void Atom::data_atoms(int n, char *buf, tagint id_offset, tagint mol_offset, } if ((nwords != avec->size_data_atom) && (nwords != avec->size_data_atom + 3)) - error->all(FLERR,"Incorrect format in {}: {}", location, utils::trim(buf)); + error->all(FLERR,"Incorrect format in {}: {}{}", location, + utils::trim(buf), utils::errorurl(2)); *next = '\n'; // set bounds for my proc @@ -1149,7 +1150,8 @@ void Atom::data_atoms(int n, char *buf, tagint id_offset, tagint mol_offset, // skip over empty or comment lines } else if ((nvalues < nwords) || ((nvalues > nwords) && (!utils::strmatch(values[nwords],"^#")))) { - error->all(FLERR, "Incorrect format in {}: {}", location, utils::trim(buf)); + error->all(FLERR, "Incorrect format in {}: {}{}", location, + utils::trim(buf), utils::errorurl(2)); } else { int imx = 0, imy = 0, imz = 0; if (imageflag) { @@ -1243,7 +1245,8 @@ void Atom::data_vels(int n, char *buf, tagint id_offset) if (values.size() == 0) { // skip over empty or comment lines } else if ((int)values.size() != avec->size_data_vel) { - error->all(FLERR, "Incorrect velocity format in data file: {}", utils::trim(buf)); + error->all(FLERR, "Incorrect format in Velocities section of data file: {}{}", + utils::trim(buf), utils::errorurl(2)); } else { tagint tagdata = utils::tnumeric(FLERR,values[0],false,lmp) + id_offset; if (tagdata <= 0 || tagdata > map_tag_max) @@ -1287,7 +1290,9 @@ void Atom::data_bonds(int n, char *buf, int *count, tagint id_offset, // skip over empty or comment lines // Bonds line is: number(ignored), bond type, atomID 1, atomID 2 if (nwords > 0) { - if (nwords != 4) error->all(FLERR, "Incorrect format in {}: {}", location, utils::trim(buf)); + if (nwords != 4) + error->all(FLERR, "Incorrect format in {}: {}{}", location, + utils::trim(buf), utils::errorurl(2)); typestr = utils::utf8_subst(values[1]); atom1 = utils::tnumeric(FLERR, values[2], false, lmp); atom2 = utils::tnumeric(FLERR, values[3], false, lmp); @@ -1378,7 +1383,9 @@ void Atom::data_angles(int n, char *buf, int *count, tagint id_offset, // skip over empty or comment lines // Angles line is: number(ignored), angle type, atomID 1, atomID 2, atomID 3 if (nwords > 0) { - if (nwords != 5) error->all(FLERR, "Incorrect format in {}: {}", location, utils::trim(buf)); + if (nwords != 5) + error->all(FLERR, "Incorrect format in {}: {}{}", location, + utils::trim(buf), utils::errorurl(2)); typestr = utils::utf8_subst(values[1]); atom1 = utils::tnumeric(FLERR, values[2], false, lmp); atom2 = utils::tnumeric(FLERR, values[3], false, lmp); @@ -1485,7 +1492,9 @@ void Atom::data_dihedrals(int n, char *buf, int *count, tagint id_offset, // skip over empty or comment lines // Dihedrals line is: number(ignored), bond type, atomID 1, atomID 2, atomID 3, atomID 4 if (nwords > 0) { - if (nwords != 6) error->all(FLERR, "Incorrect format in {}: {}", location, utils::trim(buf)); + if (nwords != 6) + error->all(FLERR, "Incorrect format in {}: {}{}", location, + utils::trim(buf), utils::errorurl(2)); typestr = utils::utf8_subst(values[1]); atom1 = utils::tnumeric(FLERR, values[2], false, lmp); atom2 = utils::tnumeric(FLERR, values[3], false, lmp); @@ -1611,7 +1620,9 @@ void Atom::data_impropers(int n, char *buf, int *count, tagint id_offset, // skip over empty or comment lines // Impropers line is: number(ignored), bond type, atomID 1, atomID 2, atomID 3, atomID 4 if (nwords > 0) { - if (nwords != 6) error->all(FLERR, "Incorrect format in {}: {}", location, utils::trim(buf)); + if (nwords != 6) + error->all(FLERR, "Incorrect format in {}: {}{}", location, + utils::trim(buf), utils::errorurl(2)); typestr = utils::utf8_subst(values[1]); atom1 = utils::tnumeric(FLERR, values[2], false, lmp); atom2 = utils::tnumeric(FLERR, values[3], false, lmp); @@ -1727,7 +1738,8 @@ void Atom::data_bonus(int n, char *buf, AtomVec *avec_bonus, tagint id_offset) if (values.size() == 0) { // skip over empty or comment lines } else if ((int)values.size() != avec_bonus->size_data_bonus) { - error->all(FLERR, "Incorrect bonus data format in data file: {}", utils::trim(buf)); + error->all(FLERR, "Incorrect format in Bonus section of data file: {}{}", + utils::trim(buf), utils::errorurl(2)); } else { tagint tagdata = utils::tnumeric(FLERR,values[0],false,lmp) + id_offset; if (tagdata <= 0 || tagdata > map_tag_max) diff --git a/src/bond_hybrid.cpp b/src/bond_hybrid.cpp index 401358dda0..6e5ae8d5e7 100644 --- a/src/bond_hybrid.cpp +++ b/src/bond_hybrid.cpp @@ -305,7 +305,7 @@ void BondHybrid::coeff(int narg, char **arg) if (strcmp(arg[1], "none") == 0) none = 1; else - error->all(FLERR, "Bond coeff for hybrid has invalid style"); + error->all(FLERR, "Expected hybrid sub-style instead of {} in bond_coeff command", arg[1]); } // move 1st arg to 2nd arg diff --git a/src/dihedral_hybrid.cpp b/src/dihedral_hybrid.cpp index 9da4df1f68..4ee0ffdad9 100644 --- a/src/dihedral_hybrid.cpp +++ b/src/dihedral_hybrid.cpp @@ -277,7 +277,8 @@ void DihedralHybrid::coeff(int narg, char **arg) else if (strcmp(arg[1], "bb13") == 0) error->all(FLERR, "BondBond13 coeff for hybrid dihedral has invalid format"); else - error->all(FLERR, "Dihedral coeff for hybrid has invalid style"); + error->all(FLERR, "Expected hybrid sub-style instead of {} in dihedral_coeff command", + arg[1]); } // move 1st arg to 2nd arg diff --git a/src/fix_ave_chunk.cpp b/src/fix_ave_chunk.cpp index a0d25cf2c7..9382b6d38e 100644 --- a/src/fix_ave_chunk.cpp +++ b/src/fix_ave_chunk.cpp @@ -193,10 +193,12 @@ FixAveChunk::FixAveChunk(LAMMPS *lmp, int narg, char **arg) : cdof = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; - } else if (strcmp(arg[iarg],"file") == 0) { - if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "fix ave/chunk file", error); + } else if ((strcmp(arg[iarg],"file") == 0) || (strcmp(arg[iarg],"append") == 0)) { + if (iarg+2 > narg) + utils::missing_cmd_args(FLERR, std::string("fix ave/chunk ")+arg[iarg], error); if (comm->me == 0) { - fp = fopen(arg[iarg+1],"w"); + if (strcmp(arg[iarg],"file") == 0) fp = fopen(arg[iarg+1],"w"); + else fp = fopen(arg[iarg+1],"a"); if (fp == nullptr) error->one(FLERR, "Cannot open fix ave/chunk file {}: {}", arg[iarg+1], utils::getsyserror()); diff --git a/src/fix_ave_correlate.cpp b/src/fix_ave_correlate.cpp index d506e17761..08cd673122 100644 --- a/src/fix_ave_correlate.cpp +++ b/src/fix_ave_correlate.cpp @@ -97,7 +97,7 @@ FixAveCorrelate::FixAveCorrelate(LAMMPS *lmp, int narg, char **arg) : while (iarg < nargnew) { if (strcmp(arg[iarg],"type") == 0) { - if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "fix ave/correlate type", error); + if (iarg+2 > nargnew) utils::missing_cmd_args(FLERR, "fix ave/correlate type", error); if (strcmp(arg[iarg+1],"auto") == 0) type = AUTO; else if (strcmp(arg[iarg+1],"upper") == 0) type = UPPER; else if (strcmp(arg[iarg+1],"lower") == 0) type = LOWER; @@ -107,21 +107,21 @@ FixAveCorrelate::FixAveCorrelate(LAMMPS *lmp, int narg, char **arg) : else error->all(FLERR,"Unknown fix ave/correlate type: {}"); iarg += 2; } else if (strcmp(arg[iarg],"ave") == 0) { - if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "fix ave/correlate ave", error); + if (iarg+2 > nargnew) utils::missing_cmd_args(FLERR, "fix ave/correlate ave", error); if (strcmp(arg[iarg+1],"one") == 0) ave = ONE; else if (strcmp(arg[iarg+1],"running") == 0) ave = RUNNING; else error->all(FLERR,"Unknown fix ave/correlate ave mode: {}", arg[iarg+1]); iarg += 2; } else if (strcmp(arg[iarg],"start") == 0) { - if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "fix ave/correlate start", error); + if (iarg+2 > nargnew) utils::missing_cmd_args(FLERR, "fix ave/correlate start", error); startstep = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"prefactor") == 0) { - if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "fix ave/correlate prefactor", error); + if (iarg+2 > nargnew) utils::missing_cmd_args(FLERR, "fix ave/correlate prefactor", error); prefactor = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"file") == 0) { - if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "fix ave/correlate file", error); + if (iarg+2 > nargnew) utils::missing_cmd_args(FLERR, "fix ave/correlate file", error); if (comm->me == 0) { fp = fopen(arg[iarg+1],"w"); if (fp == nullptr) @@ -133,17 +133,17 @@ FixAveCorrelate::FixAveCorrelate(LAMMPS *lmp, int narg, char **arg) : overwrite = 1; iarg += 1; } else if (strcmp(arg[iarg],"title1") == 0) { - if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "fix ave/correlate title1", error); + if (iarg+2 > nargnew) utils::missing_cmd_args(FLERR, "fix ave/correlate title1", error); delete[] title1; title1 = utils::strdup(arg[iarg+1]); iarg += 2; } else if (strcmp(arg[iarg],"title2") == 0) { - if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "fix ave/correlate title2", error); + if (iarg+2 > nargnew) utils::missing_cmd_args(FLERR, "fix ave/correlate title2", error); delete[] title2; title2 = utils::strdup(arg[iarg+1]); iarg += 2; } else if (strcmp(arg[iarg],"title3") == 0) { - if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "fix ave/correlate title3", error); + if (iarg+2 > nargnew) utils::missing_cmd_args(FLERR, "fix ave/correlate title3", error); delete[] title3; title3 = utils::strdup(arg[iarg+1]); iarg += 2; @@ -414,6 +414,8 @@ void FixAveCorrelate::end_of_step() scalar = val.val.f->compute_vector(val.argindex-1); // evaluate equal-style or vector-style variable + // if index exceeds vector length, use a zero value + // this can be useful if vector length is not known a priori } else if (val.which == ArgInfo::VARIABLE) { if (val.argindex == 0) @@ -422,7 +424,7 @@ void FixAveCorrelate::end_of_step() double *varvec; int nvec = input->variable->compute_vector(val.val.v,&varvec); int index = val.argindex; - if (nvec < index) scalar = 0.0; + if (index > nvec) scalar = 0.0; else scalar = varvec[index-1]; } } diff --git a/src/fix_ave_histo.cpp b/src/fix_ave_histo.cpp index a92efcdacd..d676bca0b7 100644 --- a/src/fix_ave_histo.cpp +++ b/src/fix_ave_histo.cpp @@ -600,6 +600,8 @@ void FixAveHisto::end_of_step() } // evaluate equal-style or vector-style or atom-style variable + // if index exceeds vector length, use a zero value + // this can be useful if vector length is not known a priori } else if (val.which == ArgInfo::VARIABLE) { if (kind == GLOBAL && mode == SCALAR) { @@ -607,7 +609,7 @@ void FixAveHisto::end_of_step() else { double *varvec; int nvec = input->variable->compute_vector(val.val.v,&varvec); - if (nvec < j) bin_one(0.0); + if (j > nvec) bin_one(0.0); else bin_one(varvec[j-1]); } @@ -839,10 +841,12 @@ void FixAveHisto::options(int iarg, int narg, char **arg) auto mycmd = fmt::format("fix {}", style); while (iarg < narg) { - if (strcmp(arg[iarg],"file") == 0) { - if (iarg+2 > narg) utils::missing_cmd_args(FLERR, mycmd + " file", error); + if ((strcmp(arg[iarg],"file") == 0) || (strcmp(arg[iarg],"append") == 0)) { + if (iarg+2 > narg) + utils::missing_cmd_args(FLERR, std::string("fix ave/histo ")+arg[iarg], error); if (comm->me == 0) { - fp = fopen(arg[iarg+1],"w"); + if (strcmp(arg[iarg],"file") == 0) fp = fopen(arg[iarg+1],"w"); + else fp = fopen(arg[iarg+1],"a"); if (fp == nullptr) error->one(FLERR, "Cannot open fix ave/histo file {}: {}", arg[iarg+1], utils::getsyserror()); diff --git a/src/fix_ave_histo_weight.cpp b/src/fix_ave_histo_weight.cpp index 7a5458bd3d..cccfc86d59 100644 --- a/src/fix_ave_histo_weight.cpp +++ b/src/fix_ave_histo_weight.cpp @@ -113,256 +113,256 @@ void FixAveHistoWeight::end_of_step() double weight = 0.0; double *weights = nullptr; int stride = 0; - auto &val = values[1]; - int j = val.argindex; + auto &val1 = values[1]; + int j = val1.argindex; // atom attributes - if (val.which == ArgInfo::X) { + if (val1.which == ArgInfo::X) { weights = &atom->x[0][j]; stride = 3; - } else if (val.which == ArgInfo::V) { + } else if (val1.which == ArgInfo::V) { weights = &atom->v[0][j]; stride = 3; bin_atoms(&atom->v[0][j],3); - } else if (val.which == ArgInfo::F) { + } else if (val1.which == ArgInfo::F) { weights = &atom->f[0][j]; stride = 3; } // invoke compute if not previously invoked - if (val.which == ArgInfo::COMPUTE) { + if (val1.which == ArgInfo::COMPUTE) { if (kind == GLOBAL && mode == SCALAR) { if (j == 0) { - if (!(val.val.c->invoked_flag & Compute::INVOKED_SCALAR)) { - val.val.c->compute_scalar(); - val.val.c->invoked_flag |= Compute::INVOKED_SCALAR; + if (!(val1.val.c->invoked_flag & Compute::INVOKED_SCALAR)) { + val1.val.c->compute_scalar(); + val1.val.c->invoked_flag |= Compute::INVOKED_SCALAR; } - weight = val.val.c->scalar; + weight = val1.val.c->scalar; } else { - if (!(val.val.c->invoked_flag & Compute::INVOKED_VECTOR)) { - val.val.c->compute_vector(); - val.val.c->invoked_flag |= Compute::INVOKED_VECTOR; + if (!(val1.val.c->invoked_flag & Compute::INVOKED_VECTOR)) { + val1.val.c->compute_vector(); + val1.val.c->invoked_flag |= Compute::INVOKED_VECTOR; } - weight = val.val.c->vector[j-1]; + weight = val1.val.c->vector[j-1]; } } else if (kind == GLOBAL && mode == VECTOR) { if (j == 0) { - if (!(val.val.c->invoked_flag & Compute::INVOKED_VECTOR)) { - val.val.c->compute_vector(); - val.val.c->invoked_flag |= Compute::INVOKED_VECTOR; + if (!(val1.val.c->invoked_flag & Compute::INVOKED_VECTOR)) { + val1.val.c->compute_vector(); + val1.val.c->invoked_flag |= Compute::INVOKED_VECTOR; } - weights = val.val.c->vector; + weights = val1.val.c->vector; stride = 1; } else { - if (!(val.val.c->invoked_flag & Compute::INVOKED_ARRAY)) { - val.val.c->compute_array(); - val.val.c->invoked_flag |= Compute::INVOKED_ARRAY; + if (!(val1.val.c->invoked_flag & Compute::INVOKED_ARRAY)) { + val1.val.c->compute_array(); + val1.val.c->invoked_flag |= Compute::INVOKED_ARRAY; } - if (val.val.c->array) weights = &val.val.c->array[0][j-1]; - stride = val.val.c->size_array_cols; + if (val1.val.c->array) weights = &val1.val.c->array[0][j-1]; + stride = val1.val.c->size_array_cols; } } else if (kind == PERATOM) { - if (!(val.val.c->invoked_flag & Compute::INVOKED_PERATOM)) { - val.val.c->compute_peratom(); - val.val.c->invoked_flag |= Compute::INVOKED_PERATOM; + if (!(val1.val.c->invoked_flag & Compute::INVOKED_PERATOM)) { + val1.val.c->compute_peratom(); + val1.val.c->invoked_flag |= Compute::INVOKED_PERATOM; } if (j == 0) { - weights = val.val.c->vector_atom; + weights = val1.val.c->vector_atom; stride = 1; - } else if (val.val.c->array_atom) { - weights = &val.val.c->array_atom[0][j-1]; - stride = val.val.c->size_peratom_cols; + } else if (val1.val.c->array_atom) { + weights = &val1.val.c->array_atom[0][j-1]; + stride = val1.val.c->size_peratom_cols; } } else if (kind == LOCAL) { - if (!(val.val.c->invoked_flag & Compute::INVOKED_LOCAL)) { - val.val.c->compute_local(); - val.val.c->invoked_flag |= Compute::INVOKED_LOCAL; + if (!(val1.val.c->invoked_flag & Compute::INVOKED_LOCAL)) { + val1.val.c->compute_local(); + val1.val.c->invoked_flag |= Compute::INVOKED_LOCAL; } if (j == 0) { - weights = val.val.c->vector_local; + weights = val1.val.c->vector_local; stride = 1; - } else if (val.val.c->array_local) { - weights = &val.val.c->array_local[0][j-1]; - stride = val.val.c->size_local_cols; + } else if (val1.val.c->array_local) { + weights = &val1.val.c->array_local[0][j-1]; + stride = val1.val.c->size_local_cols; } } // access fix fields, guaranteed to be ready - } else if (val.which == ArgInfo::FIX) { + } else if (val1.which == ArgInfo::FIX) { if (kind == GLOBAL && mode == SCALAR) { - if (j == 0) weight = val.val.f->compute_scalar(); - else weight = val.val.f->compute_vector(j-1); + if (j == 0) weight = val1.val.f->compute_scalar(); + else weight = val1.val.f->compute_vector(j-1); } else if (kind == GLOBAL && mode == VECTOR) { error->all(FLERR,"Fix ave/histo/weight option not yet supported"); // NOTE: need to allocate local storage if (j == 0) { - int n = val.val.f->size_vector; - for (int i = 0; i < n; i++) weights[n] = val.val.f->compute_vector(i); + int n = val1.val.f->size_vector; + for (int i = 0; i < n; i++) weights[n] = val1.val.f->compute_vector(i); } else { - int n = val.val.f->size_vector; - for (int i = 0; i < n; i++) weights[n] = val.val.f->compute_array(i,j-1); + int n = val1.val.f->size_vector; + for (int i = 0; i < n; i++) weights[n] = val1.val.f->compute_array(i,j-1); } } else if (kind == PERATOM) { if (j == 0) { - weights = val.val.f->vector_atom; + weights = val1.val.f->vector_atom; stride = 1; - } else if (val.val.f->array_atom) { - weights = &val.val.f->array_atom[0][j-1]; - stride = val.val.f->size_peratom_cols; + } else if (val1.val.f->array_atom) { + weights = &val1.val.f->array_atom[0][j-1]; + stride = val1.val.f->size_peratom_cols; } } else if (kind == LOCAL) { if (j == 0) { - weights = val.val.f->vector_local; + weights = val1.val.f->vector_local; stride = 1; - } else if (val.val.f->array_local) { - weights = &val.val.f->array_local[0][j-1]; - stride = val.val.f->size_local_cols; + } else if (val1.val.f->array_local) { + weights = &val1.val.f->array_local[0][j-1]; + stride = val1.val.f->size_local_cols; } } // evaluate equal-style variable - } else if (val.which == ArgInfo::VARIABLE && kind == GLOBAL) { - weight = input->variable->compute_equal(val.val.v); + } else if (val1.which == ArgInfo::VARIABLE && kind == GLOBAL) { + weight = input->variable->compute_equal(val1.val.v); - } else if (val.which == ArgInfo::VARIABLE && kind == PERATOM) { + } else if (val1.which == ArgInfo::VARIABLE && kind == PERATOM) { if (atom->nmax > maxatom) { memory->destroy(vector); maxatom = atom->nmax; memory->create(vector,maxatom,"ave/histo/weight:vector"); } - input->variable->compute_atom(val.val.v,igroup,vector,1,0); + input->variable->compute_atom(val1.val.v,igroup,vector,1,0); weights = vector; stride = 1; } // bin values using weights, values are 1st value (i = 0) - val = values[0]; - j = val.argindex; + auto &val0 = values[0]; + j = val0.argindex; // atom attributes - if (val.which == ArgInfo::X && weights != nullptr) + if (val0.which == ArgInfo::X && weights != nullptr) bin_atoms_weights(&atom->x[0][j],3,weights,stride); - else if (val.which == ArgInfo::V && weights != nullptr) + else if (val0.which == ArgInfo::V && weights != nullptr) bin_atoms_weights(&atom->v[0][j],3,weights,stride); - else if (val.which == ArgInfo::F && weights != nullptr) + else if (val0.which == ArgInfo::F && weights != nullptr) bin_atoms_weights(&atom->f[0][j],3,weights,stride); // invoke compute if not previously invoked - if (val.which == ArgInfo::COMPUTE) { + if (val0.which == ArgInfo::COMPUTE) { if (kind == GLOBAL && mode == SCALAR) { if (j == 0) { - if (!(val.val.c->invoked_flag & Compute::INVOKED_SCALAR)) { - val.val.c->compute_scalar(); - val.val.c->invoked_flag |= Compute::INVOKED_SCALAR; + if (!(val0.val.c->invoked_flag & Compute::INVOKED_SCALAR)) { + val0.val.c->compute_scalar(); + val0.val.c->invoked_flag |= Compute::INVOKED_SCALAR; } - bin_one_weights(val.val.c->scalar,weight); + bin_one_weights(val0.val.c->scalar,weight); } else { - if (!(val.val.c->invoked_flag & Compute::INVOKED_VECTOR)) { - val.val.c->compute_vector(); - val.val.c->invoked_flag |= Compute::INVOKED_VECTOR; + if (!(val0.val.c->invoked_flag & Compute::INVOKED_VECTOR)) { + val0.val.c->compute_vector(); + val0.val.c->invoked_flag |= Compute::INVOKED_VECTOR; } - bin_one_weights(val.val.c->vector[j-1],weight); + bin_one_weights(val0.val.c->vector[j-1],weight); } } else if (kind == GLOBAL && mode == VECTOR) { if (j == 0) { - if (!(val.val.c->invoked_flag & Compute::INVOKED_VECTOR)) { - val.val.c->compute_vector(); - val.val.c->invoked_flag |= Compute::INVOKED_VECTOR; + if (!(val0.val.c->invoked_flag & Compute::INVOKED_VECTOR)) { + val0.val.c->compute_vector(); + val0.val.c->invoked_flag |= Compute::INVOKED_VECTOR; } - bin_vector_weights(val.val.c->size_vector,val.val.c->vector,1, + bin_vector_weights(val0.val.c->size_vector,val0.val.c->vector,1, weights,stride); } else { - if (!(val.val.c->invoked_flag & Compute::INVOKED_ARRAY)) { - val.val.c->compute_array(); - val.val.c->invoked_flag |= Compute::INVOKED_ARRAY; + if (!(val0.val.c->invoked_flag & Compute::INVOKED_ARRAY)) { + val0.val.c->compute_array(); + val0.val.c->invoked_flag |= Compute::INVOKED_ARRAY; } - if (val.val.c->array) - bin_vector_weights(val.val.c->size_array_rows,&val.val.c->array[0][j-1], - val.val.c->size_array_cols,weights,stride); + if (val0.val.c->array) + bin_vector_weights(val0.val.c->size_array_rows,&val0.val.c->array[0][j-1], + val0.val.c->size_array_cols,weights,stride); } } else if (kind == PERATOM) { - if (!(val.val.c->invoked_flag & Compute::INVOKED_PERATOM)) { - val.val.c->compute_peratom(); - val.val.c->invoked_flag |= Compute::INVOKED_PERATOM; + if (!(val0.val.c->invoked_flag & Compute::INVOKED_PERATOM)) { + val0.val.c->compute_peratom(); + val0.val.c->invoked_flag |= Compute::INVOKED_PERATOM; } if (j == 0) - bin_atoms_weights(val.val.c->vector_atom,1,weights, stride); - else if (val.val.c->array_atom) - bin_atoms_weights(&val.val.c->array_atom[0][j-1], - val.val.c->size_peratom_cols,weights,stride); + bin_atoms_weights(val0.val.c->vector_atom,1,weights, stride); + else if (val0.val.c->array_atom) + bin_atoms_weights(&val0.val.c->array_atom[0][j-1], + val0.val.c->size_peratom_cols,weights,stride); } else if (kind == LOCAL) { - if (!(val.val.c->invoked_flag & Compute::INVOKED_LOCAL)) { - val.val.c->compute_local(); - val.val.c->invoked_flag |= Compute::INVOKED_LOCAL; + if (!(val0.val.c->invoked_flag & Compute::INVOKED_LOCAL)) { + val0.val.c->compute_local(); + val0.val.c->invoked_flag |= Compute::INVOKED_LOCAL; } if (j == 0) - bin_vector_weights(val.val.c->size_local_rows, - val.val.c->vector_local,1,weights,stride); - else if (val.val.c->array_local) - bin_vector_weights(val.val.c->size_local_rows, - &val.val.c->array_local[0][j-1], - val.val.c->size_local_cols,weights,stride); + bin_vector_weights(val0.val.c->size_local_rows, + val0.val.c->vector_local,1,weights,stride); + else if (val0.val.c->array_local) + bin_vector_weights(val0.val.c->size_local_rows, + &val0.val.c->array_local[0][j-1], + val0.val.c->size_local_cols,weights,stride); } // access fix fields, guaranteed to be ready - } else if (val.which == ArgInfo::FIX) { + } else if (val0.which == ArgInfo::FIX) { if (kind == GLOBAL && mode == SCALAR) { - if (j == 0) bin_one_weights(val.val.f->compute_scalar(),weight); - else bin_one_weights(val.val.f->compute_vector(j-1),weight); + if (j == 0) bin_one_weights(val0.val.f->compute_scalar(),weight); + else bin_one_weights(val0.val.f->compute_vector(j-1),weight); } else if (kind == GLOBAL && mode == VECTOR) { if (j == 0) { - int n = val.val.f->size_vector; + int n = val0.val.f->size_vector; for (int i = 0; i < n; i++) - bin_one_weights(val.val.f->compute_vector(i),weights[i*stride]); + bin_one_weights(val0.val.f->compute_vector(i),weights[i*stride]); } else { - int n = val.val.f->size_vector; + int n = val0.val.f->size_vector; for (int i = 0; i < n; i++) - bin_one_weights(val.val.f->compute_array(i,j-1),weights[i*stride]); + bin_one_weights(val0.val.f->compute_array(i,j-1),weights[i*stride]); } } else if (kind == PERATOM) { if (j == 0) - bin_atoms_weights(val.val.f->vector_atom,1,weights,stride); - else if (val.val.f->array_atom) - bin_atoms_weights(&val.val.f->array_atom[0][j-1],val.val.f->size_peratom_cols, + bin_atoms_weights(val0.val.f->vector_atom,1,weights,stride); + else if (val0.val.f->array_atom) + bin_atoms_weights(&val0.val.f->array_atom[0][j-1],val0.val.f->size_peratom_cols, weights,stride); } else if (kind == LOCAL) { - if (j == 0) bin_vector_weights(val.val.f->size_local_rows,val.val.f->vector_local,1, + if (j == 0) bin_vector_weights(val0.val.f->size_local_rows,val0.val.f->vector_local,1, weights,stride); - else if (val.val.f->array_local) - bin_vector_weights(val.val.f->size_local_rows,&val.val.f->array_local[0][j-1], - val.val.f->size_local_cols,weights,stride); + else if (val0.val.f->array_local) + bin_vector_weights(val0.val.f->size_local_rows,&val0.val.f->array_local[0][j-1], + val0.val.f->size_local_cols,weights,stride); } // evaluate equal-style variable - } else if (val.which == ArgInfo::VARIABLE && kind == GLOBAL) { - bin_one_weights(input->variable->compute_equal(val.val.v),weight); + } else if (val0.which == ArgInfo::VARIABLE && kind == GLOBAL) { + bin_one_weights(input->variable->compute_equal(val0.val.v),weight); - } else if (val.which == ArgInfo::VARIABLE && kind == PERATOM) { + } else if (val0.which == ArgInfo::VARIABLE && kind == PERATOM) { if (atom->nmax > maxatom) { memory->destroy(vector); maxatom = atom->nmax; memory->create(vector,maxatom,"ave/histo/weight:vector"); } - input->variable->compute_atom(val.val.v,igroup,vector,1,0); + input->variable->compute_atom(val0.val.v,igroup,vector,1,0); bin_atoms_weights(vector,1,weights,stride); } diff --git a/src/fix_ave_time.cpp b/src/fix_ave_time.cpp index f6ba0ad0e6..417e0fd97a 100644 --- a/src/fix_ave_time.cpp +++ b/src/fix_ave_time.cpp @@ -178,7 +178,7 @@ FixAveTime::FixAveTime(LAMMPS *lmp, int narg, char **arg) : if (val.argindex && (val.val.f->array_flag == 0)) error->all(FLERR,"Fix ave/time fix {} does not calculate an array", val.id); if (val.argindex && (val.val.f->size_array_rows_variable)) - error->all(FLERR,"Fix ave/time fix {} array cannot be variable length", val.id); + error->all(FLERR,"Fix ave/time fix {} array cannot have variable row length", val.id); if (val.argindex && (val.argindex > val.val.f->size_array_cols)) error->all(FLERR,"Fix ave/time fix {} array is accessed out-of-range", val.id); if (nevery % val.val.f->global_freq) @@ -562,7 +562,8 @@ void FixAveTime::invoke_scalar(bigint ntimestep) scalar = val.val.f->compute_vector(val.argindex-1); // evaluate equal-style or vector-style variable - // ensure no out-of-range access to vector-style variable + // if index exceeds vector length, use a zero value + // this can be useful if vector length is not known a priori } else if (val.which == ArgInfo::VARIABLE) { if (val.argindex == 0) @@ -570,7 +571,7 @@ void FixAveTime::invoke_scalar(bigint ntimestep) else { double *varvec; int nvec = input->variable->compute_vector(val.val.v,&varvec); - if (nvec < val.argindex) scalar = 0.0; + if (val.argindex > nvec) scalar = 0.0; else scalar = varvec[val.argindex-1]; } } @@ -1033,41 +1034,44 @@ void FixAveTime::options(int iarg, int narg, char **arg) // optional args while (iarg < narg) { - if (strcmp(arg[iarg],"file") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/time command"); + if ((strcmp(arg[iarg],"file") == 0) || (strcmp(arg[iarg],"append") == 0)) { + if (iarg+2 > narg) + utils::missing_cmd_args(FLERR, std::string("fix ave/time ")+arg[iarg], error); yaml_flag = utils::strmatch(arg[iarg+1],"\\.[yY][aA]?[mM][lL]$"); if (comm->me == 0) { - fp = fopen(arg[iarg+1],"w"); + if (strcmp(arg[iarg],"file") == 0) fp = fopen(arg[iarg+1],"w"); + else fp = fopen(arg[iarg+1],"a"); if (fp == nullptr) error->one(FLERR,"Cannot open fix ave/time file {}: {}", arg[iarg+1], utils::getsyserror()); } iarg += 2; } else if (strcmp(arg[iarg],"ave") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/time command"); + if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "fix ave/time ave", error); if (strcmp(arg[iarg+1],"one") == 0) ave = ONE; else if (strcmp(arg[iarg+1],"running") == 0) ave = RUNNING; else if (strcmp(arg[iarg+1],"window") == 0) ave = WINDOW; - else error->all(FLERR,"Illegal fix ave/time command"); + else error->all(FLERR,"Unknown fix ave/time ave keyword {}", arg[iarg+1]); if (ave == WINDOW) { - if (iarg+3 > narg) error->all(FLERR,"Illegal fix ave/time command"); + if (iarg+3 > narg) utils::missing_cmd_args(FLERR, "fix ave/time ave window", error); nwindow = utils::inumeric(FLERR,arg[iarg+2],false,lmp); - if (nwindow <= 0) error->all(FLERR,"Illegal fix ave/time command"); + if (nwindow <= 0) + error->all(FLERR,"Illegal fix ave/time ave window argument {}; must be > 0", nwindow); } iarg += 2; if (ave == WINDOW) iarg++; } else if (strcmp(arg[iarg],"start") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/time command"); + if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "fix ave/time start", error); startstep = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"mode") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/time command"); + if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "fix ave/time mode", error); if (strcmp(arg[iarg+1],"scalar") == 0) mode = SCALAR; else if (strcmp(arg[iarg+1],"vector") == 0) mode = VECTOR; - else error->all(FLERR,"Illegal fix ave/time command"); + else error->all(FLERR,"Unknown fix ave/time mode {}", arg[iarg+1]); iarg += 2; } else if (strcmp(arg[iarg],"off") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/time command"); + if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "fix ave/time off", error); memory->grow(offlist,noff+1,"ave/time:offlist"); offlist[noff++] = utils::inumeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; @@ -1075,27 +1079,27 @@ void FixAveTime::options(int iarg, int narg, char **arg) overwrite = 1; iarg += 1; } else if (strcmp(arg[iarg],"format") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/time command"); + if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "fix ave/time format", error); delete[] format_user; format_user = utils::strdup(arg[iarg+1]); format = format_user; iarg += 2; } else if (strcmp(arg[iarg],"title1") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/time command"); + if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "fix ave/time title1", error); delete[] title1; title1 = utils::strdup(arg[iarg+1]); iarg += 2; } else if (strcmp(arg[iarg],"title2") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/time command"); + if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "fix ave/time title2", error); delete[] title2; title2 = utils::strdup(arg[iarg+1]); iarg += 2; } else if (strcmp(arg[iarg],"title3") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/time command"); + if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "fix ave/time title3", error); delete[] title3; title3 = utils::strdup(arg[iarg+1]); iarg += 2; - } else error->all(FLERR,"Unknown fix ave/time command option {}", arg[iarg]); + } else error->all(FLERR,"Unknown fix ave/time keyword {}", arg[iarg]); } } diff --git a/src/fix_print.cpp b/src/fix_print.cpp index 023b9355cd..ccef03c3ae 100644 --- a/src/fix_print.cpp +++ b/src/fix_print.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -14,6 +13,7 @@ #include "fix_print.h" +#include "comm.h" #include "error.h" #include "input.h" #include "memory.h" @@ -29,24 +29,22 @@ using namespace FixConst; /* ---------------------------------------------------------------------- */ FixPrint::FixPrint(LAMMPS *lmp, int narg, char **arg) : - Fix(lmp, narg, arg), - fp(nullptr), text(nullptr), copy(nullptr), work(nullptr), var_print(nullptr) + Fix(lmp, narg, arg), fp(nullptr), text(nullptr), copy(nullptr), work(nullptr), + var_print(nullptr) { - if (narg < 5) error->all(FLERR,"Illegal fix print command"); - if (utils::strmatch(arg[3],"^v_")) { - var_print = utils::strdup(arg[3]+2); + if (narg < 5) utils::missing_cmd_args(FLERR, "fix print", error); + if (utils::strmatch(arg[3], "^v_")) { + var_print = utils::strdup(arg[3] + 2); nevery = 1; } else { - nevery = utils::inumeric(FLERR,arg[3],false,lmp); - if (nevery <= 0) error->all(FLERR,"Illegal fix print command"); + nevery = utils::inumeric(FLERR, arg[3], false, lmp); + if (nevery <= 0) error->all(FLERR, "Illegal fix print nevery value {}; must be > 0", nevery); } - MPI_Comm_rank(world,&me); - text = utils::strdup(arg[4]); - int n = strlen(text)+1; - copy = (char *) memory->smalloc(n*sizeof(char),"fix/print:copy"); - work = (char *) memory->smalloc(n*sizeof(char),"fix/print:work"); + int n = strlen(text) + 1; + copy = (char *) memory->smalloc(n * sizeof(char), "fix/print:copy"); + work = (char *) memory->smalloc(n * sizeof(char), "fix/print:work"); maxcopy = maxwork = n; // parse optional args @@ -57,48 +55,54 @@ FixPrint::FixPrint(LAMMPS *lmp, int narg, char **arg) : int iarg = 5; while (iarg < narg) { - if (strcmp(arg[iarg],"file") == 0 || strcmp(arg[iarg],"append") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal fix print command"); - if (me == 0) { - if (strcmp(arg[iarg],"file") == 0) fp = fopen(arg[iarg+1],"w"); - else fp = fopen(arg[iarg+1],"a"); + if ((strcmp(arg[iarg], "file") == 0) || (strcmp(arg[iarg], "append") == 0)) { + if (iarg + 2 > narg) + utils::missing_cmd_args(FLERR, std::string("fix print ") + arg[iarg], error); + if (comm->me == 0) { + if (strcmp(arg[iarg], "file") == 0) + fp = fopen(arg[iarg + 1], "w"); + else + fp = fopen(arg[iarg + 1], "a"); if (fp == nullptr) - error->one(FLERR,"Cannot open fix print file {}: {}", - arg[iarg+1], utils::getsyserror()); + error->one(FLERR, "Cannot open fix print file {}: {}", arg[iarg + 1], + utils::getsyserror()); } iarg += 2; - } else if (strcmp(arg[iarg],"screen") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal fix print command"); - screenflag = utils::logical(FLERR,arg[iarg+1],false,lmp); + } else if (strcmp(arg[iarg], "screen") == 0) { + if (iarg + 2 > narg) utils::missing_cmd_args(FLERR, "fix print screen", error); + screenflag = utils::logical(FLERR, arg[iarg + 1], false, lmp); iarg += 2; - } else if (strcmp(arg[iarg],"title") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal fix print command"); - delete [] title; - title = utils::strdup(arg[iarg+1]); + } else if (strcmp(arg[iarg], "title") == 0) { + if (iarg + 2 > narg) utils::missing_cmd_args(FLERR, "fix print title", error); + delete[] title; + title = utils::strdup(arg[iarg + 1]); iarg += 2; - } else error->all(FLERR,"Illegal fix print command"); + } else + error->all(FLERR, "Unknown fix print keyword: {}", arg[iarg]); } // print file comment line - if (fp && me == 0) { - if (title) fprintf(fp,"%s\n",title); - else fprintf(fp,"# Fix print output for fix %s\n",id); + if (fp && (comm->me == 0)) { + if (title) + fprintf(fp, "%s\n", title); + else + fprintf(fp, "# Fix print output for fix %s\n", id); } - delete [] title; + delete[] title; } /* ---------------------------------------------------------------------- */ FixPrint::~FixPrint() { - delete [] text; - delete [] var_print; + delete[] text; + delete[] var_print; memory->sfree(copy); memory->sfree(work); - if (fp && me == 0) fclose(fp); + if (fp && (comm->me == 0)) fclose(fp); } /* ---------------------------------------------------------------------- */ @@ -117,16 +121,16 @@ void FixPrint::init() if (var_print) { ivar_print = input->variable->find(var_print); if (ivar_print < 0) - error->all(FLERR,"Variable name for fix print timestep does not exist"); + error->all(FLERR, "Variable {} for fix print timestep does not exist", var_print); if (!input->variable->equalstyle(ivar_print)) - error->all(FLERR,"Variable for fix print timestep is invalid style"); - next_print = static_cast - (input->variable->compute_equal(ivar_print)); + error->all(FLERR, "Variable {} for fix print timestep is invalid style", var_print); + next_print = static_cast(input->variable->compute_equal(ivar_print)); if (next_print <= update->ntimestep) - error->all(FLERR,"Fix print timestep variable returned a bad timestep"); + error->all(FLERR, "Fix print timestep variable {} returned a bad timestep: {}", var_print, + next_print); } else { if (update->ntimestep % nevery) - next_print = (update->ntimestep/nevery)*nevery + nevery; + next_print = (update->ntimestep / nevery) * nevery + nevery; else next_print = update->ntimestep; } @@ -158,24 +162,23 @@ void FixPrint::end_of_step() modify->clearstep_compute(); - strncpy(copy,text,maxcopy); - input->substitute(copy,work,maxcopy,maxwork,0); + strncpy(copy, text, maxcopy); + input->substitute(copy, work, maxcopy, maxwork, 0); if (var_print) { - next_print = static_cast - (input->variable->compute_equal(ivar_print)); + next_print = static_cast(input->variable->compute_equal(ivar_print)); if (next_print <= update->ntimestep) - error->all(FLERR,"Fix print timestep variable returned a bad timestep"); + error->all(FLERR, "Fix print timestep variable returned a bad timestep: {}", next_print); } else { - next_print = (update->ntimestep/nevery)*nevery + nevery; + next_print = (update->ntimestep / nevery) * nevery + nevery; } modify->addstep_compute(next_print); - if (me == 0) { - if (screenflag) utils::logmesg(lmp,std::string(copy) + "\n"); + if (comm->me == 0) { + if (screenflag) utils::logmesg(lmp, std::string(copy) + "\n"); if (fp) { - fmt::print(fp,"{}\n",copy); + fmt::print(fp, "{}\n", copy); fflush(fp); } } diff --git a/src/fix_print.h b/src/fix_print.h index 48eda897b5..9e699e22ba 100644 --- a/src/fix_print.h +++ b/src/fix_print.h @@ -34,7 +34,7 @@ class FixPrint : public Fix { void end_of_step() override; private: - int me, screenflag; + int screenflag; FILE *fp; char *text, *copy, *work; int maxcopy, maxwork; diff --git a/src/fix_property_atom.cpp b/src/fix_property_atom.cpp index de96b5c39d..2cbdb44ab0 100644 --- a/src/fix_property_atom.cpp +++ b/src/fix_property_atom.cpp @@ -328,8 +328,9 @@ void FixPropertyAtom::read_data_section(char *keyword, int n, char *buf, tagint try { ValueTokenizer values(buf); if ((int) values.count() != values_peratom + 1) - error->all(FLERR, "Incorrect format in {} section of data file: {} expected {} and got {}", - keyword, buf, values_peratom + 1, values.count()); + error->all(FLERR, "Incorrect format in {} section of data file: {}\n" + "expected {} parameters and got {}{}", keyword, utils::trim(buf), + values_peratom + 1, values.count(), utils::errorurl(2)); itag = values.next_tagint() + id_offset; if (itag <= 0 || itag > map_tag_max) diff --git a/src/improper_hybrid.cpp b/src/improper_hybrid.cpp index 505488cce6..a847b7bc95 100644 --- a/src/improper_hybrid.cpp +++ b/src/improper_hybrid.cpp @@ -269,7 +269,8 @@ void ImproperHybrid::coeff(int narg, char **arg) else if (strcmp(arg[1], "aa") == 0) error->all(FLERR, "AngleAngle coeff for hybrid improper has invalid format"); else - error->all(FLERR, "Improper coeff for hybrid has invalid style"); + error->all(FLERR, "Expected hybrid sub-style instead of {} in improper_coeff command", + arg[1]); } // move 1st arg to 2nd arg diff --git a/src/library.cpp b/src/library.cpp index fcf0f6a631..f81f52305e 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -2137,7 +2137,8 @@ available. .. code-block:: c - double *dptr = (double *) lammps_extract_fix(handle,name,0,1,0,0); + double *dptr = (double *) lammps_extract_fix(handle, name, + LMP_STYLE_GLOBAL, LMP_TYPE_VECTOR, 0, 0); double value = *dptr; lammps_free((void *)dptr); @@ -2857,10 +2858,6 @@ void lammps_gather_atoms_concat(void *handle, const char *name, int type, if ((count == 1) || imgunpack) vector = (int *) vptr; else array = (int **) vptr; - int *copy; - lmp->memory->create(copy,count*natoms,"lib/gather:copy"); - for (i = 0; i < count*natoms; i++) copy[i] = 0; - int nlocal = lmp->atom->nlocal; if (count == 1) { @@ -2868,11 +2865,13 @@ void lammps_gather_atoms_concat(void *handle, const char *name, int type, displs[0] = 0; for (i = 1; i < nprocs; i++) displs[i] = displs[i-1] + recvcounts[i-1]; - MPI_Allgatherv(vector,nlocal,MPI_INT,data,recvcounts,displs, - MPI_INT,lmp->world); + MPI_Allgatherv(vector,nlocal,MPI_INT,data,recvcounts,displs,MPI_INT,lmp->world); } else if (imgunpack) { - lmp->memory->create(copy,count*nlocal,"lib/gather:copy"); + int *copy; + lmp->memory->create(copy,count*natoms,"lib/gather:copy"); + for (i = 0; i < count*natoms; i++) copy[i] = 0; + offset = 0; for (i = 0; i < nlocal; i++) { const int image = vector[i]; @@ -2885,8 +2884,7 @@ void lammps_gather_atoms_concat(void *handle, const char *name, int type, displs[0] = 0; for (i = 1; i < nprocs; i++) displs[i] = displs[i-1] + recvcounts[i-1]; - MPI_Allgatherv(copy,count*nlocal,MPI_INT, - data,recvcounts,displs,MPI_INT,lmp->world); + MPI_Allgatherv(copy,count*nlocal,MPI_INT,data,recvcounts,displs,MPI_INT,lmp->world); lmp->memory->destroy(copy); } else { @@ -2895,8 +2893,7 @@ void lammps_gather_atoms_concat(void *handle, const char *name, int type, displs[0] = 0; for (i = 1; i < nprocs; i++) displs[i] = displs[i-1] + recvcounts[i-1]; - MPI_Allgatherv(&array[0][0],count*nlocal,MPI_INT, - data,recvcounts,displs,MPI_INT,lmp->world); + MPI_Allgatherv(&array[0][0],count*nlocal,MPI_INT,data,recvcounts,displs,MPI_INT,lmp->world); } } else { @@ -2912,8 +2909,7 @@ void lammps_gather_atoms_concat(void *handle, const char *name, int type, displs[0] = 0; for (i = 1; i < nprocs; i++) displs[i] = displs[i-1] + recvcounts[i-1]; - MPI_Allgatherv(vector,nlocal,MPI_DOUBLE,data,recvcounts,displs, - MPI_DOUBLE,lmp->world); + MPI_Allgatherv(vector,nlocal,MPI_DOUBLE,data,recvcounts,displs,MPI_DOUBLE,lmp->world); } else { int n = count*nlocal; @@ -3171,10 +3167,6 @@ void lammps_scatter_atoms(void *handle, const char *name, int type, int count, return; } - // copy = Natom length vector of per-atom values - // use atom ID to insert each atom's values into copy - // MPI_Allreduce with MPI_SUM to merge into data, ordered by atom ID - if (type == 0) { int *vector = nullptr; int **array = nullptr; @@ -3322,10 +3314,6 @@ void lammps_scatter_atoms_subset(void *handle, const char *name, int type, return; } - // copy = Natom length vector of per-atom values - // use atom ID to insert each atom's values into copy - // MPI_Allreduce with MPI_SUM to merge into data, ordered by atom ID - if (type == 0) { int *vector = nullptr; int **array = nullptr; @@ -4328,10 +4316,6 @@ void lammps_gather_concat(void *handle, const char *name, int type, int count, if ((count == 1) || imgunpack) vector = (int *) vptr; else array = (int **) vptr; - int *copy; - lmp->memory->create(copy,count*natoms,"lib/gather:copy"); - for (i = 0; i < count*natoms; i++) copy[i] = 0; - int nlocal = lmp->atom->nlocal; if (count == 1) { @@ -4343,7 +4327,10 @@ void lammps_gather_concat(void *handle, const char *name, int type, int count, MPI_INT,lmp->world); } else if (imgunpack) { - lmp->memory->create(copy,count*nlocal,"lib/gather:copy"); + int *copy; + lmp->memory->create(copy,count*natoms,"lib/gather:copy"); + for (i = 0; i < count*natoms; i++) copy[i] = 0; + offset = 0; for (i = 0; i < nlocal; i++) { const int image = vector[i]; @@ -4356,8 +4343,7 @@ void lammps_gather_concat(void *handle, const char *name, int type, int count, displs[0] = 0; for (i = 1; i < nprocs; i++) displs[i] = displs[i-1] + recvcounts[i-1]; - MPI_Allgatherv(copy,count*nlocal,MPI_INT, - data,recvcounts,displs,MPI_INT,lmp->world); + MPI_Allgatherv(copy,count*nlocal,MPI_INT,data,recvcounts,displs,MPI_INT,lmp->world); lmp->memory->destroy(copy); } else { @@ -4366,8 +4352,7 @@ void lammps_gather_concat(void *handle, const char *name, int type, int count, displs[0] = 0; for (i = 1; i < nprocs; i++) displs[i] = displs[i-1] + recvcounts[i-1]; - MPI_Allgatherv(&array[0][0],count*nlocal,MPI_INT, - data,recvcounts,displs,MPI_INT,lmp->world); + MPI_Allgatherv(&array[0][0],count*nlocal,MPI_INT,data,recvcounts,displs,MPI_INT,lmp->world); } } else { @@ -4876,10 +4861,6 @@ void lammps_scatter(void *handle, const char *name, int type, int count, return; } - // copy = Natom length vector of per-atom values - // use atom ID to insert each atom's values into copy - // MPI_Allreduce with MPI_SUM to merge into data, ordered by atom ID - if (type == 0) { int *vector = nullptr; int **array = nullptr; @@ -5130,10 +5111,6 @@ void lammps_scatter_subset(void *handle, const char *name,int type, int count, return; } - // copy = Natom length vector of per-atom values - // use atom ID to insert each atom's values into copy - // MPI_Allreduce with MPI_SUM to merge into data, ordered by atom ID - if (type == 0) { int *vector = nullptr; int **array = nullptr; @@ -5490,7 +5467,8 @@ int lammps_neighlist_num_elements(void *handle, int idx) { * \param[out] numneigh number of neighbors of atom iatom or 0 * \param[out] neighbors pointer to array of neighbor atom local indices or NULL */ -void lammps_neighlist_element_neighbors(void *handle, int idx, int element, int *iatom, int *numneigh, int **neighbors) { +void lammps_neighlist_element_neighbors(void *handle, int idx, int element, int *iatom, + int *numneigh, int **neighbors) { auto lmp = (LAMMPS *) handle; Neighbor * neighbor = lmp->neighbor; *iatom = -1; @@ -5777,9 +5755,7 @@ otherwise 0. * \param setting string with the name of the specific setting * \return 1 if available, 0 if not. */ -int lammps_config_accelerator(const char *package, - const char *category, - const char *setting) +int lammps_config_accelerator(const char *package, const char *category, const char *setting) { return Info::has_accelerator_feature(package,category,setting) ? 1 : 0; } @@ -5901,8 +5877,7 @@ int lammps_style_count(void *handle, const char *category) { * \param buf_size size of the provided string buffer * \return 1 if successful, otherwise 0 */ -int lammps_style_name(void *handle, const char *category, int idx, - char *buffer, int buf_size) { +int lammps_style_name(void *handle, const char *category, int idx, char *buffer, int buf_size) { auto lmp = (LAMMPS *) handle; Info info(lmp); auto styles = info.get_available_styles(category); diff --git a/src/math_eigen.cpp b/src/math_eigen.cpp index 65c3fa806a..c79a61f84a 100644 --- a/src/math_eigen.cpp +++ b/src/math_eigen.cpp @@ -31,7 +31,7 @@ using namespace MathEigen; typedef Jacobi Jacobi_v1; typedef Jacobi Jacobi_v2; -int MathEigen::jacobi3(double const mat[3][3], double *eval, double evec[3][3]) +int MathEigen::jacobi3(double const mat[3][3], double *eval, double evec[3][3], int sort) { // make copy of const matrix @@ -44,7 +44,15 @@ int MathEigen::jacobi3(double const mat[3][3], double *eval, double evec[3][3]) // create instance of generic Jacobi class and get eigenvalues and -vectors Jacobi_v1 ecalc3(3, M, midx); - int ierror = ecalc3.Diagonalize(mat, eval, evec, Jacobi_v1::SORT_DECREASING_EVALS); + int ierror = 1; + if (sort == -1) + ierror = ecalc3.Diagonalize(mat, eval, evec, Jacobi_v1::SORT_DECREASING_EVALS); + else if (sort == 0) + ierror = ecalc3.Diagonalize(mat, eval, evec, Jacobi_v1::DO_NOT_SORT); + else if (sort == 1) + ierror = ecalc3.Diagonalize(mat, eval, evec, Jacobi_v1::SORT_INCREASING_EVALS); + + if (ierror) return ierror; // transpose the evec matrix @@ -54,7 +62,7 @@ int MathEigen::jacobi3(double const mat[3][3], double *eval, double evec[3][3]) return ierror; } -int MathEigen::jacobi3(double const *const *mat, double *eval, double **evec) +int MathEigen::jacobi3(double const *const *mat, double *eval, double **evec, int sort) { // make copy of const matrix @@ -67,7 +75,15 @@ int MathEigen::jacobi3(double const *const *mat, double *eval, double **evec) // create instance of generic Jacobi class and get eigenvalues and -vectors Jacobi_v2 ecalc3(3, M, midx); - int ierror = ecalc3.Diagonalize(mat, eval, evec, Jacobi_v2::SORT_DECREASING_EVALS); + int ierror = 1; + if (sort == -1) + ierror = ecalc3.Diagonalize(mat, eval, evec, Jacobi_v2::SORT_DECREASING_EVALS); + else if (sort == 0) + ierror = ecalc3.Diagonalize(mat, eval, evec, Jacobi_v2::DO_NOT_SORT); + else if (sort == 1) + ierror = ecalc3.Diagonalize(mat, eval, evec, Jacobi_v2::SORT_INCREASING_EVALS); + + if (ierror) return ierror; // transpose the evec matrix diff --git a/src/math_eigen.h b/src/math_eigen.h index 9f2431e14a..c7a3853767 100644 --- a/src/math_eigen.h +++ b/src/math_eigen.h @@ -22,13 +22,14 @@ namespace MathEigen { * \param mat the 3x3 matrix you wish to diagonalize * \param eval store the eigenvalues here * \param evec store the eigenvectors here... + * \param sort order eigenvalues and -vectors (-1 decreasing (default), 1 increasing, 0 unsorted) * \return 0 if eigenvalue calculation converged, 1 if it failed */ -int jacobi3(double const *const *mat, double *eval, double **evec); +int jacobi3(double const *const *mat, double *eval, double **evec, int sort = -1); /** \overload */ -int jacobi3(double const mat[3][3], double *eval, double evec[3][3]); +int jacobi3(double const mat[3][3], double *eval, double evec[3][3], int sort = -1); } // namespace MathEigen diff --git a/src/pair_hybrid.cpp b/src/pair_hybrid.cpp index f05a201e33..d257973617 100644 --- a/src/pair_hybrid.cpp +++ b/src/pair_hybrid.cpp @@ -521,8 +521,10 @@ void PairHybrid::coeff(int narg, char **arg) int none = 0; if (m == nstyles) { - if (strcmp(arg[2],"none") == 0) none = 1; - else error->all(FLERR,"Pair coeff for hybrid has invalid style: {}", arg[2]); + if (strcmp(arg[2],"none") == 0) + none = 1; + else + error->all(FLERR,"Expected hybrid sub-style instead of {} in pair_coeff command", arg[2]); } // move 1st/2nd args to 2nd/3rd args diff --git a/src/pair_hybrid_overlay.cpp b/src/pair_hybrid_overlay.cpp index 118403d345..4211d0e5cb 100644 --- a/src/pair_hybrid_overlay.cpp +++ b/src/pair_hybrid_overlay.cpp @@ -59,8 +59,10 @@ void PairHybridOverlay::coeff(int narg, char **arg) int none = 0; if (m == nstyles) { - if (strcmp(arg[2],"none") == 0) none = 1; - else error->all(FLERR,"Pair coeff for hybrid has invalid style: {}", arg[2]); + if (strcmp(arg[2],"none") == 0) + none = 1; + else + error->all(FLERR,"Expected hybrid sub-style instead of {} in pair_coeff command", arg[2]); } // move 1st/2nd args to 2nd/3rd args diff --git a/src/pair_hybrid_scaled.cpp b/src/pair_hybrid_scaled.cpp index 69ff037e4a..e897c784c7 100644 --- a/src/pair_hybrid_scaled.cpp +++ b/src/pair_hybrid_scaled.cpp @@ -516,7 +516,7 @@ void PairHybridScaled::coeff(int narg, char **arg) if (strcmp(arg[2], "none") == 0) none = 1; else - error->all(FLERR, "Pair coeff for hybrid has invalid style: {}", arg[2]); + error->all(FLERR, "Expected hybrid sub-style instead of {} in pair_coeff command", arg[2]); } // move 1st/2nd args to 2nd/3rd args diff --git a/src/platform.cpp b/src/platform.cpp index b324bd0b5c..7e9fa820fa 100644 --- a/src/platform.cpp +++ b/src/platform.cpp @@ -249,12 +249,7 @@ std::string platform::os_info() } else if (build == "22631") { buf = "Windows 11 23H2"; } else { - const char *entry = "ProductName"; - RegGetValue(HKEY_LOCAL_MACHINE, subkey, entry, RRF_RT_REG_SZ, nullptr, &value, - (LPDWORD) &value_length); - // enforce zero termination - value[1023] = '\0'; - buf = value; + buf = "Windows Build " + build; } DWORD fullversion, majorv, minorv, buildv = 0; fullversion = GetVersion(); diff --git a/src/read_data.cpp b/src/read_data.cpp index 657369d5d0..36bbce605f 100644 --- a/src/read_data.cpp +++ b/src/read_data.cpp @@ -1360,7 +1360,8 @@ void ReadData::header(int firstpass) // check that exiting string is a valid section keyword parse_keyword(1); - if (!is_data_section(keyword)) error->all(FLERR, "Unknown identifier in data file: {}", keyword); + if (!is_data_section(keyword)) + error->all(FLERR, "Unknown identifier in data file: {}{}", keyword, utils::errorurl(1)); // error checks on header values // must be consistent with atom style and other header values diff --git a/src/thermo.cpp b/src/thermo.cpp index efc5f984fc..5ef5eb59b8 100644 --- a/src/thermo.cpp +++ b/src/thermo.cpp @@ -1490,9 +1490,8 @@ void Thermo::compute_compute() if (normflag && compute->extscalar) dvalue /= natoms; } else if (compute_which[m] == VECTOR) { if (compute->size_vector_variable && argindex1[ifield] > compute->size_vector) - dvalue = 0.0; - else - dvalue = compute->vector[argindex1[ifield] - 1]; + error->all(FLERR, "Thermo compute vector is accessed out-of-range"); + dvalue = compute->vector[argindex1[ifield] - 1]; if (normflag) { if (compute->extvector == 0) return; @@ -1503,9 +1502,8 @@ void Thermo::compute_compute() } } else { if (compute->size_array_rows_variable && argindex1[ifield] > compute->size_array_rows) - dvalue = 0.0; - else - dvalue = compute->array[argindex1[ifield] - 1][argindex2[ifield] - 1]; + error->all(FLERR, "Thermo compute array is accessed out-of-range"); + dvalue = compute->array[argindex1[ifield] - 1][argindex2[ifield] - 1]; if (normflag && compute->extarray) dvalue /= natoms; } } @@ -1517,10 +1515,14 @@ void Thermo::compute_fix() int m = field2index[ifield]; Fix *fix = fixes[m]; + // check for out-of-range access if vector/array is variable length + if (argindex1[ifield] == 0) { dvalue = fix->compute_scalar(); if (normflag && fix->extscalar) dvalue /= natoms; } else if (argindex2[ifield] == 0) { + if (fix->size_vector_variable && argindex1[ifield] > fix->size_vector) + error->all(FLERR, "Thermo fix vector is accessed out-of-range"); dvalue = fix->compute_vector(argindex1[ifield] - 1); if (normflag) { if (fix->extvector == 0) @@ -1531,6 +1533,8 @@ void Thermo::compute_fix() dvalue /= natoms; } } else { + if (fix->size_array_rows_variable && argindex1[ifield] > fix->size_array_rows) + error->all(FLERR, "Thermo fix array is accessed out-of-range"); dvalue = fix->compute_array(argindex1[ifield] - 1, argindex2[ifield] - 1); if (normflag && fix->extarray) dvalue /= natoms; } @@ -1542,15 +1546,17 @@ void Thermo::compute_variable() { int iarg = argindex1[ifield]; + // evaluate equal-style or vector-style variable + // if index exceeds vector length, use a zero value + // this can be useful if vector length is not known a priori + if (iarg == 0) dvalue = input->variable->compute_equal(variables[field2index[ifield]]); else { double *varvec; int nvec = input->variable->compute_vector(variables[field2index[ifield]], &varvec); - if (nvec < iarg) - dvalue = 0.0; - else - dvalue = varvec[iarg - 1]; + if (iarg > nvec) dvalue = 0.0; + else dvalue = varvec[iarg - 1]; } } diff --git a/src/variable.cpp b/src/variable.cpp index 8124d9c4a1..c99e4a4761 100644 --- a/src/variable.cpp +++ b/src/variable.cpp @@ -1225,7 +1225,6 @@ int Variable::compute_vector(int ivar, double **result) int nlen = size_tree_vector(tree); if (nlen == 0) print_var_error(FLERR,"Vector-style variable has zero length",ivar); - if (nlen < 0) print_var_error(FLERR,"Inconsistent lengths in vector-style variable",ivar); @@ -1535,9 +1534,6 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) if (!compute->vector_flag) print_var_error(FLERR,"Mismatched compute in variable formula",ivar); - if (index1 > compute->size_vector && - compute->size_vector_variable == 0) - print_var_error(FLERR,"Variable formula compute vector is accessed out-of-range",ivar,0); if (!compute->is_initialized()) print_var_error(FLERR,"Variable formula compute cannot be invoked before " "initialization by a run",ivar); @@ -1546,10 +1542,14 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) compute->invoked_flag |= Compute::INVOKED_VECTOR; } - if (compute->size_vector_variable && - index1 > compute->size_vector) value1 = 0.0; - else value1 = compute->vector[index1-1]; - argstack[nargstack++] = value1; + // wait to check index1 until after compute invocation + // to allow for computes with size_vector_variable == 1 + + if (index1 > compute->size_vector) + print_var_error(FLERR,"Variable formula compute vector is accessed out-of-range",ivar,0); + + value1 = compute->vector[index1-1]; + argstack[nargstack++] = value1; // c_ID[i][j] = scalar from global array @@ -1557,9 +1557,6 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) if (!compute->array_flag) print_var_error(FLERR,"Mismatched compute in variable formula",ivar); - if (index1 > compute->size_array_rows && - compute->size_array_rows_variable == 0) - print_var_error(FLERR,"Variable formula compute array is accessed out-of-range",ivar,0); if (index2 > compute->size_array_cols) print_var_error(FLERR,"Variable formula compute array is accessed out-of-range",ivar,0); if (!compute->is_initialized()) @@ -1570,9 +1567,13 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) compute->invoked_flag |= Compute::INVOKED_ARRAY; } - if (compute->size_array_rows_variable && - index1 > compute->size_array_rows) value1 = 0.0; - else value1 = compute->array[index1-1][index2-1]; + // wait to check index1 until after compute invocation + // to allow for computes with size_array_rows_variable == 1 + + if (index1 > compute->size_array_rows) + print_var_error(FLERR,"Variable formula compute array is accessed out-of-range",ivar,0); + + value1 = compute->array[index1-1][index2-1]; argstack[nargstack++] = value1; // C_ID[i] = scalar element of per-atom vector, note uppercase "C" @@ -1634,8 +1635,6 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) if (!compute->vector_flag) print_var_error(FLERR,"Mismatched compute in variable formula",ivar); - if (compute->size_vector == 0) - print_var_error(FLERR,"Variable formula compute vector is zero length",ivar); if (!compute->is_initialized()) print_var_error(FLERR,"Variable formula compute cannot be invoked before " "initialization by a run",ivar); @@ -1644,6 +1643,12 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) compute->invoked_flag |= Compute::INVOKED_VECTOR; } + // wait to check vector size until after compute invocation + // to allow for computes with size_vector_variable == 1 + + if (compute->size_vector == 0) + print_var_error(FLERR,"Variable formula compute vector is zero length",ivar); + auto newtree = new Tree(); newtree->type = VECTORARRAY; newtree->array = compute->vector; @@ -1657,18 +1662,22 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) if (!compute->array_flag) print_var_error(FLERR,"Mismatched compute in variable formula",ivar); - if (compute->size_array_rows == 0) - print_var_error(FLERR,"Variable formula compute array is zero length",ivar); - if (index1 > compute->size_array_cols) - print_var_error(FLERR,"Variable formula compute array is accessed out-of-range",ivar,0); if (!compute->is_initialized()) print_var_error(FLERR,"Variable formula compute cannot be invoked before " "initialization by a run",ivar); + if (index1 > compute->size_array_cols) + print_var_error(FLERR,"Variable formula compute array is accessed out-of-range",ivar,0); if (!(compute->invoked_flag & Compute::INVOKED_ARRAY)) { compute->compute_array(); compute->invoked_flag |= Compute::INVOKED_ARRAY; } + // wait to check row count until after compute invocation + // to allow for computes with size_array_rows_variable == 1 + + if (compute->size_array_rows == 0) + print_var_error(FLERR,"Variable formula compute array has zero rows",ivar); + auto newtree = new Tree(); newtree->type = VECTORARRAY; newtree->array = &compute->array[0][index1-1]; @@ -1798,8 +1807,7 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) if (!fix->vector_flag) print_var_error(FLERR,"Mismatched fix in variable formula",ivar); - if (index1 > fix->size_vector && - fix->size_vector_variable == 0) + if (index1 > fix->size_vector) print_var_error(FLERR,"Variable formula fix vector is accessed out-of-range",ivar,0); if (update->whichflag > 0 && update->ntimestep % fix->global_freq) print_var_error(FLERR,"Fix in variable not computed at a compatible time",ivar); @@ -1813,8 +1821,7 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) if (!fix->array_flag) print_var_error(FLERR,"Mismatched fix in variable formula",ivar); - if (index1 > fix->size_array_rows && - fix->size_array_rows_variable == 0) + if (index1 > fix->size_array_rows) print_var_error(FLERR,"Variable formula fix array is accessed out-of-range",ivar,0); if (index2 > fix->size_array_cols) print_var_error(FLERR,"Variable formula fix array is accessed out-of-range",ivar,0); diff --git a/unittest/force-styles/check_tests.py b/unittest/force-styles/check_tests.py index df71640789..4dba8f9b9e 100755 --- a/unittest/force-styles/check_tests.py +++ b/unittest/force-styles/check_tests.py @@ -54,7 +54,7 @@ improper = {} kspace = {} pair = {} -style_pattern = re.compile("(.+)Style\((.+),(.+)\)") +style_pattern = re.compile("(.+)Style\\((.+),(.+)\\)") upper = re.compile("[A-Z]+") gpu = re.compile("(.+)/gpu$") intel = re.compile("(.+)/intel$") @@ -176,19 +176,19 @@ def check_tests(name,styles,yaml,search,skip=()): counter = 0 counter += check_tests('pair',pair,'*-pair-*.yaml', - '.*pair_style:\s*((\S+).*)?',skip=('meam','lj/sf')) + '.*pair_style:\\s*((\\S+).*)?',skip=('meam','lj/sf')) counter += check_tests('bond',bond,'bond-*.yaml', - '.*bond_style:\s*((\S+).*)?') + '.*bond_style:\\s*((\\S+).*)?') counter += check_tests('angle',angle,'angle-*.yaml', - '.*angle_style:\s*((\S+).*)?') + '.*angle_style:\\s*((\\S+).*)?') counter += check_tests('dihedral',dihedral,'dihedral-*.yaml', - '.*dihedral_style:\s*((\S+).*)?') + '.*dihedral_style:\\s*((\\S+).*)?') counter += check_tests('improper',improper,'improper-*.yaml', - '.*improper_style:\s*((\S+).*)?') + '.*improper_style:\\s*((\\S+).*)?') counter += check_tests('kspace',kspace,'kspace-*.yaml', - '.*kspace_style\s*((\S+).*)?') + '.*kspace_style\\s*((\\S+).*)?') counter += check_tests('fix',fix,'fix-*.yaml', - ' fix\s+((\S+)\s*)?') + ' fix\\s+((\\S+)\\s*)?') total = len(pair)+len(bond)+len(angle)+len(dihedral)+len(improper)+len(kspace)+len(fix) print(f"\nTotal tests missing: {counter} of {total}") diff --git a/unittest/force-styles/tests/fix-timestep-rigid_group.yaml b/unittest/force-styles/tests/fix-timestep-rigid_group.yaml index e28e0abb08..e434ace375 100644 --- a/unittest/force-styles/tests/fix-timestep-rigid_group.yaml +++ b/unittest/force-styles/tests/fix-timestep-rigid_group.yaml @@ -1,6 +1,7 @@ --- -lammps_version: 17 Feb 2022 -date_generated: Fri Mar 18 22:18:00 2022 +lammps_version: 7 Feb 2024 +tags: +date_generated: Thu Apr 4 21:27:10 2024 epsilon: 5e-13 skip_tests: prerequisites: ! | @@ -14,65 +15,65 @@ post_commands: ! | input_file: in.fourmol natoms: 29 run_stress: ! |- - -1.4245356937318884e+03 -1.4496493315649691e+03 -3.6144360984224995e+03 8.4840626828644076e+02 2.0318336761611761e+02 -6.0622397707970140e+02 -global_scalar: 15.711521423178082 + -1.4245356937318909e+03 -1.4496493315649632e+03 -3.6144360984225123e+03 8.4840626828644361e+02 2.0318336761612773e+02 -6.0622397707969583e+02 +global_scalar: 15.711521423178084 run_pos: ! |2 - 1 -2.7899546863891400e-01 2.4731857340328229e+00 -1.7290667740242271e-01 - 2 3.0296221610264262e-01 2.9517129916957545e+00 -8.5798904387773245e-01 - 3 -6.9368802364134741e-01 1.2445115421754194e+00 -6.2281111198650418e-01 - 4 -1.5764879647103154e+00 1.4919714415841279e+00 -1.2492069414674623e+00 - 5 -8.9434512967429969e-01 9.3651699743511030e-01 4.0191726558261276e-01 - 6 2.9454439634451712e-01 2.2724545792544038e-01 -1.2845195053960268e+00 - 7 3.4049112903270051e-01 -9.4655678322458359e-03 -2.4634480020857055e+00 - 8 1.1644354555804874e+00 -4.8367776650961336e-01 -6.7663643940735863e-01 - 9 1.3781717822696469e+00 -2.5332509530010694e-01 2.6864954436590061e-01 - 10 2.0186368606041896e+00 -1.4285861423625796e+00 -9.6712491252780131e-01 - 11 1.7929137227577452e+00 -1.9875455388407426e+00 -1.8836565352266534e+00 - 12 3.0032775230399604e+00 -4.8983022415174027e-01 -1.6190248017343642e+00 - 13 4.0448964162125947e+00 -9.0213155122391020e-01 -1.6385398399479558e+00 - 14 2.6035151245015822e+00 -4.0874995493219213e-01 -2.6555999074786607e+00 - 15 2.9761196776172318e+00 5.6287237454108674e-01 -1.2442626196083388e+00 - 16 2.6517373021566168e+00 -2.3957035508393707e+00 3.3389262100692263e-02 - 17 2.2311114924744970e+00 -2.1018393228798513e+00 1.1496088522377543e+00 - 18 2.1390642573201784e+00 3.0164773560693781e+00 -3.5143984803853878e+00 - 19 1.5353246655146278e+00 2.6305911186316133e+00 -4.2455871034737074e+00 - 20 2.7649421538938390e+00 3.6818603528430849e+00 -3.9364115785985550e+00 - 21 4.9043112657298877e+00 -4.0774268210397882e+00 -3.6200836396129836e+00 - 22 4.3665322424283310e+00 -4.2075138112953594e+00 -4.4636587264885881e+00 - 23 5.7355405581985188e+00 -3.5789558641908918e+00 -3.8805763324089981e+00 - 24 2.0692780332810115e+00 3.1504920436416004e+00 3.1571131300668789e+00 - 25 1.3007297593169076e+00 3.2745259354179481e+00 2.5110163874103675e+00 - 26 2.5819416446099739e+00 4.0104903120756576e+00 3.2150249624526035e+00 + 1 -2.7899546863891755e-01 2.4731857340328198e+00 -1.7290667740241461e-01 + 2 3.0296221610263996e-01 2.9517129916957550e+00 -8.5798904387772190e-01 + 3 -6.9368802364134963e-01 1.2445115421754176e+00 -6.2281111198650141e-01 + 4 -1.5764879647103172e+00 1.4919714415841279e+00 -1.2492069414674598e+00 + 5 -8.9434512967430235e-01 9.3651699743510453e-01 4.0191726558261442e-01 + 6 2.9454439634451712e-01 2.2724545792544146e-01 -1.2845195053960266e+00 + 7 3.4049112903270240e-01 -9.4655678322404235e-03 -2.4634480020857055e+00 + 8 1.1644354555804877e+00 -4.8367776650961403e-01 -6.7663643940735962e-01 + 9 1.3781717822696455e+00 -2.5332509530011083e-01 2.6864954436590072e-01 + 10 2.0186368606041905e+00 -1.4285861423625785e+00 -9.6712491252780486e-01 + 11 1.7929137227577487e+00 -1.9875455388407386e+00 -1.8836565352266592e+00 + 12 3.0032775230399622e+00 -4.8983022415173583e-01 -1.6190248017343625e+00 + 13 4.0448964162125964e+00 -9.0213155122390454e-01 -1.6385398399479547e+00 + 14 2.6035151245015857e+00 -4.0874995493218413e-01 -2.6555999074786598e+00 + 15 2.9761196776172323e+00 5.6287237454109007e-01 -1.2442626196083335e+00 + 16 2.6517373021566182e+00 -2.3957035508393734e+00 3.3389262100686046e-02 + 17 2.2311114924744961e+00 -2.1018393228798584e+00 1.1496088522377494e+00 + 18 2.1390642573201792e+00 3.0164773560693803e+00 -3.5143984803853883e+00 + 19 1.5353246655146293e+00 2.6305911186316160e+00 -4.2455871034737100e+00 + 20 2.7649421538938399e+00 3.6818603528430875e+00 -3.9364115785985545e+00 + 21 4.9043112657298966e+00 -4.0774268210397882e+00 -3.6200836396129850e+00 + 22 4.3665322424283417e+00 -4.2075138112953612e+00 -4.4636587264885925e+00 + 23 5.7355405581985277e+00 -3.5789558641908901e+00 -3.8805763324089995e+00 + 24 2.0692780332810012e+00 3.1504920436415969e+00 3.1571131300668829e+00 + 25 1.3007297593168976e+00 3.2745259354179459e+00 2.5110163874103693e+00 + 26 2.5819416446099637e+00 4.0104903120756576e+00 3.2150249624526102e+00 27 -1.9613581876744359e+00 -4.3556300596085160e+00 2.1101467673534788e+00 28 -2.7406520384725965e+00 -4.0207251278130975e+00 1.5828689861678511e+00 29 -1.3108232656499081e+00 -3.5992986322410760e+00 2.2680459788743503e+00 run_vel: ! |2 - 1 4.7093289825842508e-04 2.6351122778447809e-04 -4.4905093064114883e-04 - 2 4.9594625316470506e-04 9.4561370489630299e-05 -5.4581359894047775e-04 - 3 3.3306085115756103e-04 2.3224943880673259e-04 -2.3659455671746018e-04 - 4 3.3692327392261152e-04 2.1926810694051179e-04 -2.4716631558862516e-04 - 5 3.3642542694186002e-04 4.1797578013265738e-04 -1.8011341766657675e-04 - 6 2.0926869754934769e-04 2.6449308951578185e-05 -1.0508938983871811e-04 - 7 1.4629043007907940e-04 -1.6873376665350122e-04 -6.8354048774350921e-05 - 8 1.5844101624224881e-04 3.7728761273999780e-05 -1.9162715667090996e-05 - 9 2.1299362072601952e-04 1.6917140529157474e-04 -6.3528165037845483e-05 - 10 5.4261629412254495e-05 -9.4655528376811482e-05 1.0511362869146690e-04 - 11 -3.2194160796502724e-05 -2.2025095264758716e-04 2.0300202946212429e-04 - 12 1.2640586304750378e-04 -2.9851080445665107e-04 -7.9476371818245798e-05 - 13 8.4523575162142608e-05 -4.0583135407330561e-04 -4.7551111331700511e-05 - 14 9.9954050381270972e-05 -4.2610816481298294e-04 -7.9255633594379530e-05 - 15 2.4417481119789862e-04 -2.3521002264677992e-04 -2.4875318161048917e-04 - 16 -9.0958138549664992e-06 3.7774817121222391e-06 2.4035199548835096e-04 - 17 5.7507224523612230e-05 2.2629217444843764e-04 2.0686920072684822e-04 - 18 2.9220264989359833e-04 -6.2478376436796265e-04 8.4222594596602366e-04 - 19 2.0572616567799188e-04 -5.0334424271726639e-04 8.4953929443210648e-04 - 20 4.1224811789513022e-04 -7.4115205416011554e-04 8.3678612337507920e-04 - 21 -1.0671858777656393e-03 -1.1531171045499515e-03 7.3720674900162159e-04 - 22 -1.1066511338291710e-03 -1.0433933757600460e-03 7.4544544325708573e-04 - 23 -9.7629260480941525e-04 -1.3100872491594103e-03 7.2687284219704804e-04 - 24 4.3308126651259312e-04 -6.6527658087322801e-04 8.4451298670663606e-04 - 25 4.4565811905442889e-04 -5.1298436273584285e-04 8.5878867884521559e-04 - 26 5.9865972692022765e-04 -7.6385263287080381e-04 8.4259943226842166e-04 + 1 4.7093289825842437e-04 2.6351122778447999e-04 -4.4905093064114823e-04 + 2 4.9594625316470473e-04 9.4561370489632928e-05 -5.4581359894047732e-04 + 3 3.3306085115756054e-04 2.3224943880673362e-04 -2.3659455671746045e-04 + 4 3.3692327392261130e-04 2.1926810694051292e-04 -2.4716631558862576e-04 + 5 3.3642542694185899e-04 4.1797578013265770e-04 -1.8011341766657654e-04 + 6 2.0926869754934769e-04 2.6449308951579106e-05 -1.0508938983871929e-04 + 7 1.4629043007908003e-04 -1.6873376665349995e-04 -6.8354048774352968e-05 + 8 1.5844101624224859e-04 3.7728761274000288e-05 -1.9162715667092141e-05 + 9 2.1299362072601887e-04 1.6917140529157517e-04 -6.3528165037845917e-05 + 10 5.4261629412254576e-05 -9.4655528376811157e-05 1.0511362869146505e-04 + 11 -3.2194160796502236e-05 -2.2025095264758700e-04 2.0300202946212152e-04 + 12 1.2640586304750429e-04 -2.9851080445664956e-04 -7.9476371818247574e-05 + 13 8.4523575162143312e-05 -4.0583135407330399e-04 -4.7551111331702557e-05 + 14 9.9954050381271961e-05 -4.2610816481298121e-04 -7.9255633594381943e-05 + 15 2.4417481119789894e-04 -2.3521002264677784e-04 -2.4875318161049020e-04 + 16 -9.0958138549668516e-06 3.7774817121217089e-06 2.4035199548834928e-04 + 17 5.7507224523611227e-05 2.2629217444843685e-04 2.0686920072684740e-04 + 18 2.9220264989359860e-04 -6.2478376436796244e-04 8.4222594596602409e-04 + 19 2.0572616567799204e-04 -5.0334424271726607e-04 8.4953929443210702e-04 + 20 4.1224811789513060e-04 -7.4115205416011543e-04 8.3678612337507964e-04 + 21 -1.0671858777656406e-03 -1.1531171045499533e-03 7.3720674900162007e-04 + 22 -1.1066511338291734e-03 -1.0433933757600477e-03 7.4544544325708432e-04 + 23 -9.7629260480941644e-04 -1.3100872491594124e-03 7.2687284219704641e-04 + 24 4.3308126651259382e-04 -6.6527658087322671e-04 8.4451298670663671e-04 + 25 4.4565811905442982e-04 -5.1298436273584133e-04 8.5878867884521635e-04 + 26 5.9865972692022961e-04 -7.6385263287080262e-04 8.4259943226842242e-04 27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04 28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03 29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03 diff --git a/unittest/force-styles/tests/fix-timestep-rigid_molecule.yaml b/unittest/force-styles/tests/fix-timestep-rigid_molecule.yaml index d667942e49..e871a351f6 100644 --- a/unittest/force-styles/tests/fix-timestep-rigid_molecule.yaml +++ b/unittest/force-styles/tests/fix-timestep-rigid_molecule.yaml @@ -1,6 +1,7 @@ --- -lammps_version: 17 Feb 2022 -date_generated: Fri Mar 18 22:18:00 2022 +lammps_version: 7 Feb 2024 +tags: +date_generated: Thu Apr 4 21:27:10 2024 epsilon: 5e-13 skip_tests: prerequisites: ! | @@ -14,8 +15,8 @@ post_commands: ! | input_file: in.fourmol natoms: 29 run_stress: ! |- - -4.9200116134789873e+01 -2.6907707565987707e+01 -6.0080860422278581e+00 -2.5620423972101300e+01 -1.3450224059983967e+01 -1.4947288487003760e+00 -global_scalar: 18.3405601674144 + -4.9200116134788615e+01 -2.6907707565987401e+01 -6.0080860422276308e+00 -2.5620423972100241e+01 -1.3450224059984270e+01 -1.4947288487006070e+00 +global_scalar: 18.340560167414402 run_pos: ! |2 1 -2.7993683669226832e-01 2.4726588069312840e+00 -1.7200860244148433e-01 2 3.0197083955402204e-01 2.9515239068888608e+00 -8.5689735572907566e-01 @@ -34,15 +35,15 @@ run_pos: ! |2 15 2.9756315249791303e+00 5.6334269722969288e-01 -1.2437650754599008e+00 16 2.6517554244980306e+00 -2.3957110424978438e+00 3.2908335999178327e-02 17 2.2309964792710639e+00 -2.1022918943319384e+00 1.1491948328949437e+00 - 18 2.1392027588271301e+00 3.0171068018412779e+00 -3.5144628518856349e+00 - 19 1.5366124997074571e+00 2.6286809834111748e+00 -4.2452547844370221e+00 - 20 2.7628161763455852e+00 3.6842251687634775e+00 -3.9370881219352554e+00 - 21 4.9036621347791245e+00 -4.0757648442838548e+00 -3.6192617654515904e+00 - 22 4.3655322291888483e+00 -4.2084949965552561e+00 -4.4622011117402334e+00 - 23 5.7380414793463101e+00 -3.5841969195032672e+00 -3.8827839830470219e+00 + 18 2.1392027588271301e+00 3.0171068018412783e+00 -3.5144628518856353e+00 + 19 1.5366124997074575e+00 2.6286809834111740e+00 -4.2452547844370221e+00 + 20 2.7628161763455852e+00 3.6842251687634775e+00 -3.9370881219352558e+00 + 21 4.9036621347791236e+00 -4.0757648442838548e+00 -3.6192617654515908e+00 + 22 4.3655322291888474e+00 -4.2084949965552561e+00 -4.4622011117402343e+00 + 23 5.7380414793463110e+00 -3.5841969195032672e+00 -3.8827839830470219e+00 24 2.0701314765323930e+00 3.1499370533342330e+00 3.1565324852522938e+00 - 25 1.3030170721374779e+00 3.2711173927682249e+00 2.5081940917429768e+00 - 26 2.5776230782480045e+00 4.0127347068243875e+00 3.2182355138709275e+00 + 25 1.3030170721374787e+00 3.2711173927682244e+00 2.5081940917429759e+00 + 26 2.5776230782480041e+00 4.0127347068243884e+00 3.2182355138709284e+00 27 -1.9613581876744359e+00 -4.3556300596085160e+00 2.1101467673534788e+00 28 -2.7406520384725965e+00 -4.0207251278130975e+00 1.5828689861678511e+00 29 -1.3108232656499081e+00 -3.5992986322410760e+00 2.2680459788743503e+00 @@ -64,15 +65,15 @@ run_vel: ! |2 15 -4.3301707382721859e-03 -3.1802661664634938e-03 3.2037919043360571e-03 16 -9.6715751018414326e-05 -5.0016572678960377e-04 1.4945658875149626e-03 17 6.5692180538157174e-04 3.6635779995305095e-04 8.3495414466050911e-04 - 18 3.6149625095704914e-04 -3.1032459262908286e-04 8.1043030117346052e-04 - 19 8.5103884665345452e-04 -1.4572280596788108e-03 1.0163621287634116e-03 - 20 -6.5204659278590683e-04 4.3989037444289853e-04 4.9909839028507901e-04 - 21 -1.3888125881903923e-03 -3.1978049143082385e-04 1.1455681499836646e-03 - 22 -1.6084223477729510e-03 -1.5355394240821117e-03 1.4772010826232375e-03 - 23 2.6392672378805124e-04 -3.9375414431174821e-03 -3.6991583139728095e-04 - 24 8.6062827067890247e-04 -9.4179873474469237e-04 5.5396395550012453e-04 - 25 1.5933645477487538e-03 -2.2139156625681695e-03 -5.5078029695647401e-04 - 26 -1.5679561743998840e-03 3.5146224354726100e-04 2.4446924193334478e-03 + 18 3.6149625095704849e-04 -3.1032459262908286e-04 8.1043030117346052e-04 + 19 8.5103884665345473e-04 -1.4572280596788095e-03 1.0163621287634121e-03 + 20 -6.5204659278590661e-04 4.3989037444289755e-04 4.9909839028507901e-04 + 21 -1.3888125881903906e-03 -3.1978049143082342e-04 1.1455681499836646e-03 + 22 -1.6084223477729526e-03 -1.5355394240821163e-03 1.4772010826232394e-03 + 23 2.6392672378804821e-04 -3.9375414431174795e-03 -3.6991583139728377e-04 + 24 8.6062827067890269e-04 -9.4179873474469291e-04 5.5396395550012388e-04 + 25 1.5933645477487551e-03 -2.2139156625681673e-03 -5.5078029695647250e-04 + 26 -1.5679561743998888e-03 3.5146224354726068e-04 2.4446924193334487e-03 27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04 28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03 29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03 diff --git a/unittest/force-styles/tests/fix-timestep-rigid_molecule_tri.yaml b/unittest/force-styles/tests/fix-timestep-rigid_molecule_tri.yaml index 304db9fd60..672bf8946c 100644 --- a/unittest/force-styles/tests/fix-timestep-rigid_molecule_tri.yaml +++ b/unittest/force-styles/tests/fix-timestep-rigid_molecule_tri.yaml @@ -1,6 +1,7 @@ --- -lammps_version: 17 Feb 2022 -date_generated: Fri Mar 18 22:18:00 2022 +lammps_version: 7 Feb 2024 +tags: +date_generated: Thu Apr 4 21:27:11 2024 epsilon: 5e-12 skip_tests: prerequisites: ! | @@ -15,8 +16,8 @@ post_commands: ! | input_file: in.fourmol natoms: 29 run_stress: ! |- - -4.9200116134788658e+01 -2.6907707565985344e+01 -6.0080860422268874e+00 -2.5620423972099733e+01 -1.3450224059983656e+01 -1.4947288487000705e+00 -global_scalar: 18.340560167414306 + -4.9200116134789653e+01 -2.6907707565986087e+01 -6.0080860422267843e+00 -2.5620423972100063e+01 -1.3450224059983270e+01 -1.4947288486998982e+00 +global_scalar: 18.340560167414335 run_pos: ! |2 1 -2.7993683669226854e-01 2.4726588069312836e+00 -1.7200860244148508e-01 2 3.0197083955402171e-01 2.9515239068888608e+00 -8.5689735572907555e-01 @@ -36,14 +37,14 @@ run_pos: ! |2 16 2.6517554244980301e+00 -2.3957110424978438e+00 3.2908335999177751e-02 17 2.2309964792710639e+00 -2.1022918943319384e+00 1.1491948328949437e+00 18 2.1392027588271310e+00 3.0171068018412779e+00 -3.5144628518856349e+00 - 19 1.5366124997074566e+00 2.6286809834111740e+00 -4.2452547844370239e+00 + 19 1.5366124997074584e+00 2.6286809834111722e+00 -4.2452547844370230e+00 20 2.7628161763455852e+00 3.6842251687634775e+00 -3.9370881219352558e+00 - 21 4.9036621347791245e+00 -4.0757648442838557e+00 -3.6192617654515900e+00 - 22 4.3655322291888465e+00 -4.2084949965552569e+00 -4.4622011117402334e+00 + 21 4.9036621347791245e+00 -4.0757648442838548e+00 -3.6192617654515900e+00 + 22 4.3655322291888465e+00 -4.2084949965552578e+00 -4.4622011117402343e+00 23 5.7380414793463101e+00 -3.5841969195032686e+00 -3.8827839830470232e+00 24 2.0701314765323913e+00 3.1499370533342308e+00 3.1565324852522920e+00 - 25 1.3030170721374770e+00 3.2711173927682236e+00 2.5081940917429755e+00 - 26 2.5776230782480054e+00 4.0127347068243875e+00 3.2182355138709262e+00 + 25 1.3030170721374779e+00 3.2711173927682236e+00 2.5081940917429755e+00 + 26 2.5776230782480036e+00 4.0127347068243875e+00 3.2182355138709280e+00 27 -1.9613581876744357e+00 -4.3556300596085160e+00 2.1101467673534788e+00 28 -2.7406520384725965e+00 -4.0207251278130975e+00 1.5828689861678509e+00 29 -1.3108232656499084e+00 -3.5992986322410765e+00 2.2680459788743512e+00 @@ -65,15 +66,15 @@ run_vel: ! |2 15 -4.3301707382721859e-03 -3.1802661664634938e-03 3.2037919043360571e-03 16 -9.6715751018414326e-05 -5.0016572678960377e-04 1.4945658875149626e-03 17 6.5692180538157174e-04 3.6635779995305095e-04 8.3495414466050911e-04 - 18 3.6149625095704681e-04 -3.1032459262907857e-04 8.1043030117346074e-04 - 19 8.5103884665345820e-04 -1.4572280596788108e-03 1.0163621287634073e-03 - 20 -6.5204659278590271e-04 4.3989037444289630e-04 4.9909839028508215e-04 - 21 -1.3888125881903852e-03 -3.1978049143082049e-04 1.1455681499836594e-03 - 22 -1.6084223477729513e-03 -1.5355394240820970e-03 1.4772010826232351e-03 - 23 2.6392672378803975e-04 -3.9375414431174569e-03 -3.6991583139727910e-04 - 24 8.6062827067889835e-04 -9.4179873474469346e-04 5.5396395550012518e-04 - 25 1.5933645477487516e-03 -2.2139156625681669e-03 -5.5078029695647542e-04 - 26 -1.5679561743998831e-03 3.5146224354726187e-04 2.4446924193334495e-03 + 18 3.6149625095704659e-04 -3.1032459262907825e-04 8.1043030117346085e-04 + 19 8.5103884665346059e-04 -1.4572280596788099e-03 1.0163621287634082e-03 + 20 -6.5204659278590227e-04 4.3989037444289446e-04 4.9909839028508150e-04 + 21 -1.3888125881903869e-03 -3.1978049143081757e-04 1.1455681499836596e-03 + 22 -1.6084223477729556e-03 -1.5355394240821013e-03 1.4772010826232407e-03 + 23 2.6392672378803953e-04 -3.9375414431174656e-03 -3.6991583139727423e-04 + 24 8.6062827067889998e-04 -9.4179873474469411e-04 5.5396395550012377e-04 + 25 1.5933645477487516e-03 -2.2139156625681634e-03 -5.5078029695647109e-04 + 26 -1.5679561743998922e-03 3.5146224354726068e-04 2.4446924193334543e-03 27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04 28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03 29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03 diff --git a/unittest/force-styles/tests/fix-timestep-rigid_nph.yaml b/unittest/force-styles/tests/fix-timestep-rigid_nph.yaml index c80a70b428..16ba7c079d 100644 --- a/unittest/force-styles/tests/fix-timestep-rigid_nph.yaml +++ b/unittest/force-styles/tests/fix-timestep-rigid_nph.yaml @@ -1,6 +1,7 @@ --- -lammps_version: 17 Feb 2022 -date_generated: Fri Mar 18 22:18:00 2022 +lammps_version: 7 Feb 2024 +tags: +date_generated: Thu Apr 4 21:27:11 2024 epsilon: 5e-13 skip_tests: prerequisites: ! | @@ -14,38 +15,38 @@ post_commands: ! | input_file: in.fourmol natoms: 29 run_stress: ! |2- - 4.3578059172167876e+01 1.7275105166465000e+01 6.7372361276631054e+01 5.1985075049901745e+01 -2.0990677389800993e+01 -7.5321398101844359e+00 -global_scalar: 29.023636440847998 + 4.3578059175768836e+01 1.7275105168781163e+01 6.7372361277896715e+01 5.1985075050485008e+01 -2.0990677388216337e+01 -7.5321398110797180e+00 +global_scalar: 29.023636439584656 run_pos: ! |2 - 1 -6.3472039825517168e-01 3.0113983126282058e+00 -8.8148450172235826e-02 - 2 6.4798884173500326e-02 3.5870486860057795e+00 -9.1146271255434463e-01 - 3 -1.1328967478840362e+00 1.5344674077762583e+00 -6.2949567786977667e-01 - 4 -2.1941320441841130e+00 1.8319737599530370e+00 -1.3824693495474225e+00 - 5 -1.3741175247360697e+00 1.1637763350569887e+00 6.0220861483086097e-01 - 6 5.5368589242158706e-02 3.1209253712244411e-01 -1.4252606627467266e+00 - 7 1.1075313780270069e-01 2.8008314824797154e-02 -2.8425552056438050e+00 - 8 1.1011987966104080e+00 -5.4254536577068713e-01 -6.9472264392660854e-01 - 9 1.3580030945401020e+00 -2.6595138115345840e-01 4.4172536708297194e-01 - 10 2.1282964643831388e+00 -1.6781145595676907e+00 -1.0442216631471304e+00 - 11 1.8571593172391605e+00 -2.3497452731071471e+00 -2.1462323657665392e+00 - 12 3.3117732698469986e+00 -5.4913311816190635e-01 -1.8274356036322548e+00 - 13 4.5640183918453143e+00 -1.0445083545907554e+00 -1.8509716390298214e+00 - 14 2.8312769330518019e+00 -4.5135848464344086e-01 -3.0735173792331993e+00 - 15 3.2788434490964296e+00 7.1618295543695254e-01 -1.3765217601452289e+00 - 16 2.8895075000232158e+00 -2.8409365554010479e+00 1.5818504152554702e-01 - 17 2.3837073405559277e+00 -2.4882133308169232e+00 1.5000885103549333e+00 - 18 2.2738793194357232e+00 3.6743407122553755e+00 -4.1408965121163197e+00 - 19 1.6572750518209336e+00 3.2770314238152451e+00 -4.8886441786593569e+00 - 20 2.9120476452800226e+00 4.3568412675031851e+00 -4.5732834167769187e+00 - 21 5.6058485050774536e+00 -4.8495065176300871e+00 -4.2655497599953458e+00 - 22 5.0552709232982114e+00 -4.9851876752032496e+00 -5.1280564953560424e+00 - 23 6.4593933585948218e+00 -4.3461765105422652e+00 -4.5350231456236889e+00 - 24 2.1823354619125279e+00 3.8552931130470363e+00 3.8953804330431208e+00 - 25 1.3973696115403698e+00 3.9794119228484153e+00 3.2321313266194949e+00 - 26 2.7018361227965517e+00 4.7379517631305443e+00 3.9583193478092706e+00 - 27 -2.6559803075358257e+00 -5.1969823689078796e+00 2.6552621488555683e+00 - 28 -3.5927802460207046e+00 -4.7943885088602283e+00 2.0214142204095413e+00 - 29 -1.8739632618339108e+00 -4.2877858778713946e+00 2.8450749793919066e+00 + 1 -6.3472039825540794e-01 3.0113983126285611e+00 -8.8148450172186088e-02 + 2 6.4798884173342230e-02 3.5870486860061987e+00 -9.1146271255438371e-01 + 3 -1.1328967478843275e+00 1.5344674077764573e+00 -6.2949567786978555e-01 + 4 -2.1941320441845233e+00 1.8319737599532644e+00 -1.3824693495475202e+00 + 5 -1.3741175247363868e+00 1.1637763350571468e+00 6.0220861483099597e-01 + 6 5.5368589242003274e-02 3.1209253712249918e-01 -1.4252606627468261e+00 + 7 1.1075313780254881e-01 2.8008314824818470e-02 -2.8425552056440617e+00 + 8 1.1011987966103707e+00 -5.4254536577072621e-01 -6.9472264392662098e-01 + 9 1.3580030945400878e+00 -2.6595138115347083e-01 4.4172536708308918e-01 + 10 2.1282964643832170e+00 -1.6781145595678604e+00 -1.0442216631471855e+00 + 11 1.8571593172392049e+00 -2.3497452731073896e+00 -2.1462323657667168e+00 + 12 3.3117732698472082e+00 -5.4913311816195076e-01 -1.8274356036323969e+00 + 13 4.5640183918456607e+00 -1.0445083545908531e+00 -1.8509716390299671e+00 + 14 2.8312769330519618e+00 -4.5135848464346928e-01 -3.0735173792334827e+00 + 15 3.2788434490966321e+00 7.1618295543705379e-01 -1.3765217601453177e+00 + 16 2.8895075000233756e+00 -2.8409365554013446e+00 1.5818504152563229e-01 + 17 2.3837073405560343e+00 -2.4882133308171808e+00 1.5000885103551624e+00 + 18 2.2738793194332434e+00 3.6743407122541889e+00 -4.1408965121171795e+00 + 19 1.6572750518219337e+00 3.2770314238270633e+00 -4.8886441786700008e+00 + 20 2.9120476452894675e+00 4.3568412674987194e+00 -4.5732834167653644e+00 + 21 5.6058485051319096e+00 -4.8495065176594299e+00 -4.2655497599906971e+00 + 22 5.0552709232924169e+00 -4.9851876754509741e+00 -5.1280564952785888e+00 + 23 6.4593933583860359e+00 -4.3461765101804879e+00 -4.5350231457223327e+00 + 24 2.1823354618683570e+00 3.8552931130563355e+00 3.8953804330779889e+00 + 25 1.3973696115700545e+00 3.9794119229082359e+00 3.2321313265764022e+00 + 26 2.7018361229436465e+00 4.7379517630364116e+00 3.9583193477161114e+00 + 27 -2.6559803075362858e+00 -5.1969823689084436e+00 2.6552621488559236e+00 + 28 -3.5927802460212725e+00 -4.7943885088607452e+00 2.0214142204098309e+00 + 29 -1.8739632618342856e+00 -4.2877858778718556e+00 2.8450749793922920e+00 run_vel: ! |2 1 7.7867804888392077e-04 5.8970331623292821e-04 -2.2179517633030531e-04 2 2.7129529964126462e-03 4.6286427111164284e-03 3.5805549693846352e-03 @@ -64,15 +65,15 @@ run_vel: ! |2 15 -4.3301707382721859e-03 -3.1802661664634938e-03 3.2037919043360571e-03 16 -9.6715751018414326e-05 -5.0016572678960377e-04 1.4945658875149626e-03 17 6.5692180538157174e-04 3.6635779995305095e-04 8.3495414466050911e-04 - 18 3.0094600491564739e-04 -2.4312792027781263e-04 6.5542049134062323e-04 - 19 7.4731683462770076e-04 -1.2894119671278408e-03 8.4327024053533397e-04 - 20 -6.2333686369976551e-04 4.4115361641690044e-04 3.7135656431834220e-04 - 21 -1.1457423793218525e-03 -1.7337748161437940e-04 9.4510018429417686e-04 - 22 -1.3457150581639313e-03 -1.2816797357047471e-03 1.2470992250388096e-03 - 23 3.6277645415306518e-04 -3.4719859048227848e-03 -4.3796817853449118e-04 - 24 7.2410992462873655e-04 -7.6012809744767037e-04 4.3327155128124943e-04 - 25 1.3921349892629666e-03 -1.9207002802664867e-03 -5.7453335109528090e-04 - 26 -1.4901465947638008e-03 4.2012923457099966e-04 2.1578545404178418e-03 + 18 3.0094600492089644e-04 -2.4312792028464785e-04 6.5542049134054972e-04 + 19 7.4731683460624917e-04 -1.2894119671240515e-03 8.4327024053305281e-04 + 20 -6.2333686369944134e-04 4.4115361644063580e-04 3.7135656432041769e-04 + 21 -1.1457423794330429e-03 -1.7337748206069275e-04 9.4510018428907005e-04 + 22 -1.3457150585185161e-03 -1.2816797348700177e-03 1.2470992253076274e-03 + 23 3.6277645495226573e-04 -3.4719859038751704e-03 -4.3796817878355291e-04 + 24 7.2410992459670032e-04 -7.6012809759399148e-04 4.3327155120505761e-04 + 25 1.3921349891892136e-03 -1.9207002802470530e-03 -5.7453335098663809e-04 + 26 -1.4901465945625111e-03 4.2012923513626559e-04 2.1578545406129137e-03 27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04 28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03 29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03 diff --git a/unittest/force-styles/tests/fix-timestep-rigid_nph_small.yaml b/unittest/force-styles/tests/fix-timestep-rigid_nph_small.yaml index 3894815950..80cc4865c0 100644 --- a/unittest/force-styles/tests/fix-timestep-rigid_nph_small.yaml +++ b/unittest/force-styles/tests/fix-timestep-rigid_nph_small.yaml @@ -1,6 +1,7 @@ --- -lammps_version: 17 Feb 2022 -date_generated: Fri Mar 18 22:18:00 2022 +lammps_version: 7 Feb 2024 +tags: +date_generated: Thu Apr 4 21:27:11 2024 epsilon: 6.5e-13 skip_tests: prerequisites: ! | @@ -14,38 +15,38 @@ post_commands: ! | input_file: in.fourmol natoms: 29 run_stress: ! |2- - 2.7340318973870396e+01 4.7963870091858283e+00 6.8884396847592512e+01 2.9853310007358935e+01 -1.0857139901347722e+01 -5.1889756561454785e+00 -global_scalar: 9.77678786310451 + 2.7340318979717416e+01 4.7963870104375275e+00 6.8884396847589585e+01 2.9853310005453281e+01 -1.0857139898599751e+01 -5.1889756547311965e+00 +global_scalar: 9.776787862991728 run_pos: ! |2 - 1 -5.1121862036604515e-01 2.8134872171079977e+00 -4.8993015395518924e-02 - 2 1.4735952488047133e-01 3.3535825972277546e+00 -9.3694001270735150e-01 - 3 -9.8023793775378820e-01 1.4277788160410712e+00 -6.3283768722999234e-01 - 4 -1.9793617512974304e+00 1.7069097152779946e+00 -1.4449221382955635e+00 - 5 -1.2073406578712120e+00 1.0799834439081337e+00 6.9555923026692668e-01 - 6 1.3848116183742931e-01 2.8090381873852976e-01 -1.4910727029127884e+00 - 7 1.9062418946016990e-01 1.4366032742456625e-02 -3.0196292835199614e+00 - 8 1.1231015082845541e+00 -5.2094745136401599e-01 -7.0318517336042774e-01 - 9 1.3648756844511976e+00 -2.6143726919534771e-01 5.2247754752734465e-01 - 10 2.0900856844466578e+00 -1.5863783165912952e+00 -1.0801209545800976e+00 - 11 1.8348175253566659e+00 -2.2165258198419622e+00 -2.2686429310672072e+00 - 12 3.2042965133156098e+00 -5.2712831182449804e-01 -1.9248196297790088e+00 - 13 4.3832508188729271e+00 -9.9190674157019298e-01 -1.9502033172902991e+00 - 14 2.7519224412447691e+00 -4.3539271970391624e-01 -3.2687227073821310e+00 - 15 3.1732939937025400e+00 6.6003562890618639e-01 -1.4385076445934288e+00 - 16 2.8067449168447887e+00 -2.6773787170015133e+00 2.1667842294144180e-01 - 17 2.3305479923928516e+00 -2.3464414104884277e+00 1.6639254952584981e+00 - 18 2.2269920241232128e+00 3.4328783208254681e+00 -4.4342132514635013e+00 - 19 1.6145347679280793e+00 3.0386658278179439e+00 -5.1868156516245785e+00 - 20 2.8608613711028656e+00 4.1100452338287408e+00 -4.8694049549907970e+00 - 21 5.3613621396958795e+00 -4.5653056926475841e+00 -4.5681019697305372e+00 - 22 4.8144754754921184e+00 -4.6999404674483083e+00 -5.4362066556130868e+00 - 23 6.2091840278795729e+00 -4.0659479262420684e+00 -4.8393130641864568e+00 - 24 2.1433208912603074e+00 3.5960988832146015e+00 4.2399236066404100e+00 - 25 1.3636453973491918e+00 3.7192408266342980e+00 3.5723762826473990e+00 - 26 2.6593036729945752e+00 4.4718649490241678e+00 4.3032623333405660e+00 - 27 -2.4141791756398536e+00 -4.8879035738852403e+00 2.9097838637418292e+00 - 28 -3.2961505257539048e+00 -4.5101758871984199e+00 2.2261768979308005e+00 - 29 -1.6779316575994301e+00 -4.0348635219024889e+00 3.1144975929056571e+00 + 1 -5.1121862036689958e-01 2.8134872171089729e+00 -4.8993015395755179e-02 + 2 1.4735952487989756e-01 3.3535825972289093e+00 -9.3694001270719340e-01 + 3 -9.8023793775484513e-01 1.4277788160415970e+00 -6.3283768722997102e-01 + 4 -1.9793617512989155e+00 1.7069097152786199e+00 -1.4449221382951762e+00 + 5 -1.2073406578723613e+00 1.0799834439085494e+00 6.9555923026634758e-01 + 6 1.3848116183685821e-01 2.8090381873868608e-01 -1.4910727029123834e+00 + 7 1.9062418945961834e-01 1.4366032742524126e-02 -3.0196292835188681e+00 + 8 1.1231015082843996e+00 -5.2094745136412257e-01 -7.0318517336038155e-01 + 9 1.3648756844511478e+00 -2.6143726919537080e-01 5.2247754752684727e-01 + 10 2.0900856844469189e+00 -1.5863783165917535e+00 -1.0801209545798738e+00 + 11 1.8348175253568222e+00 -2.2165258198426265e+00 -2.2686429310664504e+00 + 12 3.2042965133163452e+00 -5.2712831182460818e-01 -1.9248196297784048e+00 + 13 4.3832508188741741e+00 -9.9190674157045855e-01 -1.9502033172896844e+00 + 14 2.7519224412453145e+00 -4.3539271970399618e-01 -3.2687227073809266e+00 + 15 3.1732939937032665e+00 6.6003562890646350e-01 -1.4385076445930487e+00 + 16 2.8067449168453553e+00 -2.6773787170023233e+00 2.1667842294107942e-01 + 17 2.3305479923932175e+00 -2.3464414104891320e+00 1.6639254952574838e+00 + 18 2.2269920241209178e+00 3.4328783208250382e+00 -4.4342132514621486e+00 + 19 1.6145347679293440e+00 3.0386658278306271e+00 -5.1868156516331227e+00 + 20 2.8608613711127191e+00 4.1100452338250122e+00 -4.8694049549767646e+00 + 21 5.3613621397513214e+00 -4.5653056926761684e+00 -4.5681019697231218e+00 + 22 4.8144754754873968e+00 -4.6999404677006380e+00 -5.4362066555318300e+00 + 23 6.2091840276731247e+00 -4.0659479258840996e+00 -4.8393130642860642e+00 + 24 2.1433208912158790e+00 3.5960988832250020e+00 4.2399236066734023e+00 + 25 1.3636453973794058e+00 3.7192408266942927e+00 3.5723762826011995e+00 + 26 2.6593036731433042e+00 4.4718649489304223e+00 4.3032623332423157e+00 + 27 -2.4141791756415234e+00 -4.8879035738867795e+00 2.9097838637402536e+00 + 28 -3.2961505257559520e+00 -4.5101758871998348e+00 2.2261768979295358e+00 + 29 -1.6779316576007828e+00 -4.0348635219037465e+00 3.1144975929039944e+00 run_vel: ! |2 1 7.7867804888392077e-04 5.8970331623292821e-04 -2.2179517633030531e-04 2 2.7129529964126462e-03 4.6286427111164284e-03 3.5805549693846352e-03 @@ -64,15 +65,15 @@ run_vel: ! |2 15 -4.3301707382721859e-03 -3.1802661664634938e-03 3.2037919043360571e-03 16 -9.6715751018414326e-05 -5.0016572678960377e-04 1.4945658875149626e-03 17 6.5692180538157174e-04 3.6635779995305095e-04 8.3495414466050911e-04 - 18 3.1638284997073272e-04 -2.6313163919070405e-04 6.1054395248656961e-04 - 19 7.6494647252307673e-04 -1.3190724749214326e-03 7.9947132612985723e-04 - 20 -6.1620104632513929e-04 4.2577138774295274e-04 3.2526261653548693e-04 - 21 -1.2063428871524097e-03 -2.2879409878999576e-04 8.9132836538734445e-04 - 22 -1.4151473871894464e-03 -1.3502255393198256e-03 1.1972773109437849e-03 - 23 3.1280366109607172e-04 -3.5563936893394407e-03 -4.9548546532774958e-04 - 24 7.5594375541558026e-04 -8.1321043994394464e-04 3.9340911295780739e-04 - 25 1.4373446731689036e-03 -1.9778020567486213e-03 -6.1842201918304478e-04 - 26 -1.4806168650325999e-03 3.7766934274110835e-04 2.1280924225288342e-03 + 18 3.1638284997600319e-04 -2.6313163919763335e-04 6.1054395248685519e-04 + 19 7.6494647250110288e-04 -1.3190724749175438e-03 7.9947132612783736e-04 + 20 -6.1620104632483571e-04 4.2577138776739548e-04 3.2526261653790590e-04 + 21 -1.2063428872614197e-03 -2.2879409923923591e-04 8.9132836537741717e-04 + 22 -1.4151473875545966e-03 -1.3502255384792933e-03 1.1972773112250280e-03 + 23 3.1280366189902534e-04 -3.5563936883846667e-03 -4.9548546556753227e-04 + 24 7.5594375538112746e-04 -8.1321044009394260e-04 3.9340911288157350e-04 + 25 1.4373446730968913e-03 -1.9778020567293151e-03 -6.1842201907436371e-04 + 26 -1.4806168648243687e-03 3.7766934332225264e-04 2.1280924227258073e-03 27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04 28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03 29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03 diff --git a/unittest/force-styles/tests/fix-timestep-rigid_npt.yaml b/unittest/force-styles/tests/fix-timestep-rigid_npt.yaml index f5965e53ff..6757db5703 100644 --- a/unittest/force-styles/tests/fix-timestep-rigid_npt.yaml +++ b/unittest/force-styles/tests/fix-timestep-rigid_npt.yaml @@ -1,6 +1,7 @@ --- -lammps_version: 17 Feb 2022 -date_generated: Fri Mar 18 22:18:00 2022 +lammps_version: 7 Feb 2024 +tags: +date_generated: Thu Apr 4 21:27:12 2024 epsilon: 5e-13 skip_tests: prerequisites: ! | @@ -13,65 +14,65 @@ post_commands: ! | input_file: in.fourmol natoms: 29 run_stress: ! |- - -1.6326314448663306e+03 -1.4727331978532295e+03 -3.8557370515932275e+03 5.5052891601644615e+02 4.7346742977310657e+02 -6.2035591882122355e+02 -global_scalar: 106.86683072474125 + -1.6326314448662429e+03 -1.4727331978532245e+03 -3.8557370515929042e+03 5.5052891601619581e+02 4.7346742977256520e+02 -6.2035591882208064e+02 +global_scalar: 106.86683072474244 run_pos: ! |2 - 1 -2.6314711410922875e-01 2.4664715027241684e+00 -1.7093568570875561e-01 - 2 3.1632911015968190e-01 2.9434731493852482e+00 -8.5432214735778889e-01 - 3 -6.7623447816593885e-01 1.2410822625695044e+00 -6.1935152269903870e-01 - 4 -1.5552134736906362e+00 1.4878541800991378e+00 -1.2440909745466859e+00 - 5 -8.7601967096402067e-01 9.3417436540572218e-01 4.0272031680440712e-01 - 6 3.0755837780638462e-01 2.2629147986241449e-01 -1.2791162680673960e+00 - 7 3.5322094628053069e-01 -1.0043890952307954e-02 -2.4548503163676365e+00 - 8 1.1736205127907979e+00 -4.8269091330540537e-01 -6.7273784266507608e-01 - 9 1.3865071239751696e+00 -2.5278331076620741e-01 2.6996653369766221e-01 - 10 2.0239883243193546e+00 -1.4252201368162511e+00 -9.6228264545891751e-01 - 11 1.7991233925769246e+00 -1.9828365722517098e+00 -1.8762366544355809e+00 - 12 3.0044710092992837e+00 -4.8928363303895761e-01 -1.6126944183951402e+00 - 13 4.0415308387392486e+00 -9.0061411581930262e-01 -1.6321139880363660e+00 - 14 2.6064005411338655e+00 -4.0859653026870735e-01 -2.6465043951812621e+00 - 15 2.9775904824773907e+00 5.6065407887877150e-01 -1.2391617757503752e+00 - 16 2.6542663248057963e+00 -2.3895844048756363e+00 3.5746598094128501e-02 - 17 2.2355490747046538e+00 -2.0962135127180099e+00 1.1489434027780590e+00 - 18 2.0921160979727347e+00 2.9872159674143273e+00 -3.4902339097026891e+00 - 19 1.4908686219092431e+00 2.6025398330908249e+00 -4.2194623779121834e+00 - 20 2.7154518806645740e+00 3.6506388357595867e+00 -3.9111287168645399e+00 - 21 4.8435638296030810e+00 -4.0881941921728835e+00 -3.5957796498833634e+00 - 22 4.3080557005367073e+00 -4.2177797604324549e+00 -4.4370935526124242e+00 - 23 5.6713237924930837e+00 -3.5912865024293716e+00 -3.8555915013182531e+00 - 24 2.0228224543345528e+00 3.1208125399081723e+00 3.1634860992076259e+00 - 25 1.2576132296055036e+00 3.2447174749294536e+00 2.5191319958251963e+00 - 26 2.5334951322488237e+00 3.9783477827941720e+00 3.2212409164234312e+00 - 27 -1.8488304998563332e+00 -4.2601261704683342e+00 2.0568476369354265e+00 - 28 -2.6026086128772454e+00 -3.9329047688996304e+00 1.5399898445636406e+00 - 29 -1.2195954744860957e+00 -3.5211468177700818e+00 2.2116264666073615e+00 + 1 -2.6314711410917102e-01 2.4664715027243860e+00 -1.7093568570953632e-01 + 2 3.1632911015962950e-01 2.9434731493852171e+00 -8.5432214735883338e-01 + 3 -6.7623447816593352e-01 1.2410822625695497e+00 -6.1935152269929450e-01 + 4 -1.5552134736907304e+00 1.4878541800989344e+00 -1.2440909745469027e+00 + 5 -8.7601967096385724e-01 9.3417436540614585e-01 4.0272031680429610e-01 + 6 3.0755837780630380e-01 2.2629147986222176e-01 -1.2791162680674191e+00 + 7 3.5322094628027934e-01 -1.0043890952942114e-02 -2.4548503163675806e+00 + 8 1.1736205127908210e+00 -4.8269091330536096e-01 -6.7273784266496328e-01 + 9 1.3865071239753313e+00 -2.5278331076580596e-01 2.6996653369765600e-01 + 10 2.0239883243193466e+00 -1.4252201368163044e+00 -9.6228264545858089e-01 + 11 1.7991233925767878e+00 -1.9828365722521095e+00 -1.8762366544350000e+00 + 12 3.0044710092991682e+00 -4.8928363303924272e-01 -1.6126944183953009e+00 + 13 4.0415308387391402e+00 -9.0061411581958151e-01 -1.6321139880365303e+00 + 14 2.6064005411335902e+00 -4.0859653026938592e-01 -2.6465043951813936e+00 + 15 2.9775904824773161e+00 5.6065407887862850e-01 -1.2391617757509259e+00 + 16 2.6542663248059526e+00 -2.3895844048753085e+00 3.5746598094734239e-02 + 17 2.2355490747049700e+00 -2.0962135127172692e+00 1.1489434027786212e+00 + 18 2.0921160979710356e+00 2.9872159674136229e+00 -3.4902339097027140e+00 + 19 1.4908686219074729e+00 2.6025398330897387e+00 -4.2194623779119471e+00 + 20 2.7154518806624317e+00 3.6506388357591026e+00 -3.9111287168648765e+00 + 21 4.8435638296045518e+00 -4.0881941921723524e+00 -3.5957796498832693e+00 + 22 4.3080557005379525e+00 -4.2177797604322951e+00 -4.4370935526121276e+00 + 23 5.6713237924942437e+00 -3.5912865024285043e+00 -3.8555915013185178e+00 + 24 2.0228224543350635e+00 3.1208125399084361e+00 3.1634860992076055e+00 + 25 1.2576132296057372e+00 3.2447174749292715e+00 2.5191319958254175e+00 + 26 2.5334951322489658e+00 3.9783477827946756e+00 3.2212409164231035e+00 + 27 -1.8488304998563332e+00 -4.2601261704683413e+00 2.0568476369354238e+00 + 28 -2.6026086128772454e+00 -3.9329047688996370e+00 1.5399898445636415e+00 + 29 -1.2195954744860957e+00 -3.5211468177700862e+00 2.2116264666073588e+00 run_vel: ! |2 - 1 1.2393084479630034e-03 7.0215195817155049e-04 -1.1910956210640397e-03 - 2 1.3060936199988536e-03 2.5041119719347224e-04 -1.4496302699051125e-03 - 3 8.7069732478159932e-04 6.1866591813748923e-04 -6.2317312592554579e-04 - 4 8.8100215742025064e-04 5.8380213791516000e-04 -6.5145037264846529e-04 - 5 8.7979303397991678e-04 1.1152950208762130e-03 -4.7231382224758212e-04 - 6 5.3965146863311727e-04 6.8643008418757634e-05 -2.7149223435848658e-04 - 7 3.7117679682181569e-04 -4.5322194777211656e-04 -1.7317402888851005e-04 - 8 4.0378854177636284e-04 9.9015358993666757e-05 -4.1783685861269460e-05 - 9 5.4970639315540500e-04 4.5048022318729304e-04 -1.6045108899919851e-04 - 10 1.2521448037945991e-04 -2.5472783650533836e-04 2.9052485920877619e-04 - 11 -1.0599027352488127e-04 -5.9051612835384309e-04 5.5226010155799178e-04 - 12 3.1798607399623040e-04 -7.9980833669012115e-04 -2.0274707260294341e-04 - 13 2.0597404142686670e-04 -1.0865778699535151e-03 -1.1731137935658918e-04 - 14 2.4719215573349161e-04 -1.1410575874168858e-03 -2.0209037936298231e-04 - 15 6.3286464043726845e-04 -6.3068988069288313e-04 -6.5527927471360488e-04 - 16 -4.4100406048953834e-05 8.6869240444187047e-06 6.5198761255923199e-04 - 17 1.3407421346950653e-04 6.0357565278263911e-04 5.6233596575975121e-04 - 18 7.9277804690569076e-04 -1.5618239874425175e-03 2.1367192719678593e-03 - 19 5.6167660797942776e-04 -1.2371794194922848e-03 2.1562222137424714e-03 - 20 1.1137406410123489e-03 -1.8729421751430327e-03 2.1222207985340819e-03 - 21 -2.8426953558137740e-03 -2.9730185469781381e-03 1.8564402246257748e-03 - 22 -2.9480844379790165e-03 -2.6797216173769360e-03 1.8784164631754769e-03 - 23 -2.5997293519674958e-03 -3.3926375081633348e-03 1.8288830284141459e-03 - 24 1.1689404599043950e-03 -1.6701257754515662e-03 2.1428138286394673e-03 - 25 1.2027302640333160e-03 -1.2630861421196525e-03 2.1808987508670514e-03 - 26 1.6116362268906780e-03 -1.9337182438138849e-03 2.1377249582867843e-03 + 1 1.2393084479632162e-03 7.0215195817134601e-04 -1.1910956210642444e-03 + 2 1.3060936199989690e-03 2.5041119719309234e-04 -1.4496302699052684e-03 + 3 8.7069732478170037e-04 6.1866591813752230e-04 -6.2317312592555772e-04 + 4 8.8100215742026918e-04 5.8380213791525335e-04 -6.5145037264832683e-04 + 5 8.7979303398017070e-04 1.1152950208763543e-03 -4.7231382224773813e-04 + 6 5.3965146863306555e-04 6.8643008418797912e-05 -2.7149223435837187e-04 + 7 3.7117679682156736e-04 -4.5322194777208414e-04 -1.7317402888817444e-04 + 8 4.0378854177637320e-04 9.9015358993721983e-05 -4.1783685861266425e-05 + 9 5.4970639315557207e-04 4.5048022318731326e-04 -1.6045108899939207e-04 + 10 1.2521448037938158e-04 -2.5472783650525840e-04 2.9052485920884211e-04 + 11 -1.0599027352512348e-04 -5.9051612835367331e-04 5.5226010155827335e-04 + 12 3.1798607399607243e-04 -7.9980833669034384e-04 -2.0274707260289267e-04 + 13 2.0597404142668038e-04 -1.0865778699538143e-03 -1.1731137935657286e-04 + 14 2.4719215573317579e-04 -1.1410575874171004e-03 -2.0209037936272953e-04 + 15 6.3286464043720871e-04 -6.3068988069325653e-04 -6.5527927471369335e-04 + 16 -4.4100406048914694e-05 8.6869240445997393e-06 6.5198761255915100e-04 + 17 1.3407421346973834e-04 6.0357565278286712e-04 5.6233596575947994e-04 + 18 7.9277804690533363e-04 -1.5618239874416928e-03 2.1367192719678658e-03 + 19 5.6167660797890148e-04 -1.2371794194914493e-03 2.1562222137424727e-03 + 20 1.1137406410120911e-03 -1.8729421751419769e-03 2.1222207985341088e-03 + 21 -2.8426953558134235e-03 -2.9730185469789214e-03 1.8564402246258563e-03 + 22 -2.9480844379788334e-03 -2.6797216173776307e-03 1.8784164631755556e-03 + 23 -2.5997293519669897e-03 -3.3926375081639489e-03 1.8288830284142509e-03 + 24 1.1689404599044329e-03 -1.6701257754517325e-03 2.1428138286393884e-03 + 25 1.2027302640331447e-03 -1.2630861421197028e-03 2.1808987508669616e-03 + 26 1.6116362268908176e-03 -1.9337182438138503e-03 2.1377249582867175e-03 27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04 28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03 29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03 diff --git a/unittest/force-styles/tests/fix-timestep-rigid_npt_small.yaml b/unittest/force-styles/tests/fix-timestep-rigid_npt_small.yaml index 3b13658e19..b7b074debd 100644 --- a/unittest/force-styles/tests/fix-timestep-rigid_npt_small.yaml +++ b/unittest/force-styles/tests/fix-timestep-rigid_npt_small.yaml @@ -1,6 +1,7 @@ --- -lammps_version: 17 Feb 2022 -date_generated: Fri Mar 18 22:18:00 2022 +lammps_version: 7 Feb 2024 +tags: +date_generated: Thu Apr 4 21:27:12 2024 epsilon: 5e-13 skip_tests: prerequisites: ! | @@ -13,38 +14,38 @@ post_commands: ! | input_file: in.fourmol natoms: 29 run_stress: ! |- - -8.7531774769722489e+01 5.5811525017966304e+00 -5.5468297744356747e+01 -1.5316306343483370e+02 1.4641268097314367e+02 1.7263710089631324e+01 -global_scalar: 77.78983430293286 + -8.7531774640811420e+01 5.5811525750281774e+00 -5.5468297761715007e+01 -1.5316306336726905e+02 1.4641268095299071e+02 1.7263710083146290e+01 +global_scalar: 77.78983430422252 run_pos: ! |2 - 1 -4.6333219629007161e-01 2.7511450055070625e+00 -1.2865946102806269e-01 - 2 1.7937148390204793e-01 3.2800405238539234e+00 -8.8510337855738808e-01 - 3 -9.2104620265671233e-01 1.3941717929286011e+00 -6.2603796687145774e-01 - 4 -1.8960869879711328e+00 1.6675144043869761e+00 -1.3178544214440926e+00 - 5 -1.1426748052069362e+00 1.0535885915279550e+00 5.0562616550054784e-01 - 6 1.7070712623541162e-01 2.7107933832755826e-01 -1.3571701846607374e+00 - 7 2.2159329060539701e-01 1.0068698962042433e-02 -2.6593507556860114e+00 - 8 1.1315940381701060e+00 -5.1414408469809381e-01 -6.8596713849763802e-01 - 9 1.3675404538221994e+00 -2.6001531899016506e-01 3.5817751536664133e-01 - 10 2.0752698846777218e+00 -1.5574812996955254e+00 -1.0070795245589492e+00 - 11 1.8261547470632067e+00 -2.1745615463231482e+00 -2.0195839000288469e+00 - 12 3.1626236108721066e+00 -5.2019677375525752e-01 -1.7266801053747978e+00 - 13 4.3131602274134853e+00 -9.7533717592326674e-01 -1.7483045222380902e+00 - 14 2.7211536303664605e+00 -4.3036348628163701e-01 -2.8715539682060491e+00 - 15 3.1323683805788374e+00 6.4234915962457073e-01 -1.3123899007466848e+00 - 16 2.7746546569032322e+00 -2.6258578189755974e+00 9.7666596945726880e-02 - 17 2.3099360535750506e+00 -2.3017831004883886e+00 1.3305794265747686e+00 - 18 2.2091748314094701e+00 3.3564440703097080e+00 -3.8370878208998480e+00 - 19 1.5986312961639815e+00 2.9614993054417287e+00 -4.5778944294436021e+00 - 20 2.8405364052167421e+00 4.0335971973474170e+00 -4.2659151034329339e+00 - 21 5.2651527410670678e+00 -4.4761614286515128e+00 -3.9518304737634447e+00 - 22 4.7192922284117014e+00 -4.6119045765637390e+00 -4.8062296930647124e+00 - 23 6.1127575782518644e+00 -3.9811721108739997e+00 -4.2204729624242692e+00 - 24 2.1290800761933255e+00 3.5132841007593623e+00 3.5392070209389175e+00 - 25 1.3519459804490630e+00 3.6349473854278020e+00 2.8807586653452137e+00 - 26 2.6413474233716503e+00 4.3893648735951771e+00 3.6035699967293215e+00 - 27 -2.3204235087828389e+00 -4.7905434153250859e+00 2.3919287951691697e+00 - 28 -3.1811356909797261e+00 -4.4206486004501846e+00 1.8095625809312565e+00 - 29 -1.6019226098503827e+00 -3.9551927030786480e+00 2.5663248522869146e+00 + 1 -4.6333219629057343e-01 2.7511450055078264e+00 -1.2865946102794723e-01 + 2 1.7937148390171043e-01 3.2800405238548382e+00 -8.8510337855745913e-01 + 3 -9.2104620265733672e-01 1.3941717929290096e+00 -6.2603796687147195e-01 + 4 -1.8960869879720148e+00 1.6675144043874610e+00 -1.3178544214442827e+00 + 5 -1.1426748052076219e+00 1.0535885915282748e+00 5.0562616550083384e-01 + 6 1.7070712623507234e-01 2.7107933832768616e-01 -1.3571701846609390e+00 + 7 2.2159329060507194e-01 1.0068698962099276e-02 -2.6593507556865532e+00 + 8 1.1315940381700180e+00 -5.1414408469817374e-01 -6.8596713849766644e-01 + 9 1.3675404538221745e+00 -2.6001531899018637e-01 3.5817751536688647e-01 + 10 2.0752698846778816e+00 -1.5574812996958780e+00 -1.0070795245590576e+00 + 11 1.8261547470632973e+00 -2.1745615463236652e+00 -2.0195839000292208e+00 + 12 3.1626236108725436e+00 -5.2019677375534190e-01 -1.7266801053750953e+00 + 13 4.3131602274142278e+00 -9.7533717592347013e-01 -1.7483045222383922e+00 + 14 2.7211536303667962e+00 -4.3036348628169740e-01 -2.8715539682066451e+00 + 15 3.1323683805792637e+00 6.4234915962478567e-01 -1.3123899007468758e+00 + 16 2.7746546569035768e+00 -2.6258578189762343e+00 9.7666596945902739e-02 + 17 2.3099360535752709e+00 -2.3017831004889393e+00 1.3305794265752642e+00 + 18 2.2091748313982826e+00 3.3564440703034535e+00 -3.8370878209026742e+00 + 19 1.5986312961681257e+00 2.9614993054929961e+00 -4.5778944294898185e+00 + 20 2.8405364052584243e+00 4.0335971973267473e+00 -4.2659151033808254e+00 + 21 5.2651527413064194e+00 -4.4761614287784965e+00 -3.9518304737405883e+00 + 22 4.7192922283808425e+00 -4.6119045776644754e+00 -4.8062296927145907e+00 + 23 6.1127575773332410e+00 -3.9811721092729444e+00 -4.2204729628712050e+00 + 24 2.1290800759971340e+00 3.5132841007987228e+00 3.5392070210919400e+00 + 25 1.3519459805793055e+00 3.6349473856926782e+00 2.8807586651545414e+00 + 26 2.6413474240255201e+00 4.3893648731792023e+00 3.6035699963154144e+00 + 27 -2.3204235087838274e+00 -4.7905434153262867e+00 2.3919287951699459e+00 + 28 -3.1811356909809412e+00 -4.4206486004512886e+00 1.8095625809318783e+00 + 29 -1.6019226098511883e+00 -3.9551927030796277e+00 2.5663248522877335e+00 run_vel: ! |2 1 7.7867804888392077e-04 5.8970331623292821e-04 -2.2179517633030531e-04 2 2.7129529964126462e-03 4.6286427111164284e-03 3.5805549693846352e-03 @@ -63,15 +64,15 @@ run_vel: ! |2 15 -4.3301707382721859e-03 -3.1802661664634938e-03 3.2037919043360571e-03 16 -9.6715751018414326e-05 -5.0016572678960377e-04 1.4945658875149626e-03 17 6.5692180538157174e-04 3.6635779995305095e-04 8.3495414466050911e-04 - 18 7.2384391131466940e-04 -6.0015829212802722e-04 1.5957533238990559e-03 - 19 1.7583138222551384e-03 -3.0158245948490804e-03 2.0310435058142470e-03 - 20 -1.4153552732353322e-03 9.7835305930749246e-04 9.3881222516217474e-04 - 21 -2.7591188772323472e-03 -5.1180650802276303e-04 2.2758295071994400e-03 - 22 -3.2319732401280494e-03 -3.0809796427949646e-03 2.9861065768383484e-03 - 23 6.9767443123301817e-04 -8.1543313142268207e-03 -8.9929522742256325e-04 - 24 1.7345816999787505e-03 -1.8508160062822962e-03 1.0723416147087287e-03 - 25 3.2855417755407162e-03 -4.5284294762327620e-03 -1.2529299007822618e-03 - 26 -3.4004728795728936e-03 8.5952140737749613e-04 5.0505027847540665e-03 + 18 7.2384391137821785e-04 -6.0015829219183913e-04 1.5957533239005792e-03 + 19 1.7583138220942001e-03 -3.0158245949231362e-03 2.0310435058145879e-03 + 20 -1.4153552733289841e-03 9.7835305963750062e-04 9.3881222515317965e-04 + 21 -2.7591188784018856e-03 -5.1180651254767841e-04 2.2758295071625967e-03 + 22 -3.2319732438308327e-03 -3.0809796341686479e-03 2.9861065796802132e-03 + 23 6.9767443960831559e-04 -8.1543313047864312e-03 -8.9929523012053270e-04 + 24 1.7345816996818938e-03 -1.8508160077951139e-03 1.0723416139084840e-03 + 25 3.2855417748809557e-03 -4.5284294761711655e-03 -1.2529298997977286e-03 + 26 -3.4004728777299181e-03 8.5952141335802687e-04 5.0505027869618231e-03 27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04 28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03 29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03 diff --git a/unittest/force-styles/tests/fix-timestep-rigid_nve_group.yaml b/unittest/force-styles/tests/fix-timestep-rigid_nve_group.yaml index b20d639fd4..0e8f18da7b 100644 --- a/unittest/force-styles/tests/fix-timestep-rigid_nve_group.yaml +++ b/unittest/force-styles/tests/fix-timestep-rigid_nve_group.yaml @@ -1,6 +1,7 @@ --- -lammps_version: 17 Feb 2022 -date_generated: Fri Mar 18 22:18:00 2022 +lammps_version: 7 Feb 2024 +tags: +date_generated: Thu Apr 4 21:27:13 2024 epsilon: 5e-13 skip_tests: prerequisites: ! | @@ -14,65 +15,65 @@ post_commands: ! | input_file: in.fourmol natoms: 29 run_stress: ! |- - -1.4245356938011610e+03 -1.4496493316650424e+03 -3.6144360982532016e+03 8.4840626794792252e+02 2.0318336802442886e+02 -6.0622397695978805e+02 -global_scalar: 15.711521423178128 + -1.4245356938011316e+03 -1.4496493316650758e+03 -3.6144360982530934e+03 8.4840626794790273e+02 2.0318336802433893e+02 -6.0622397695991208e+02 +global_scalar: 15.711521423178162 run_pos: ! |2 - 1 -2.7899546863905123e-01 2.4731857340327181e+00 -1.7290667740231969e-01 - 2 3.0296221610252227e-01 2.9517129916957194e+00 -8.5798904387756503e-01 - 3 -6.9368802364141247e-01 1.2445115421753310e+00 -6.2281111198650718e-01 - 4 -1.5764879647103560e+00 1.4919714415840475e+00 -1.2492069414674947e+00 - 5 -8.9434512967440649e-01 9.3651699743494377e-01 4.0191726558257690e-01 - 6 2.9454439634452678e-01 2.2724545792543693e-01 -1.2845195053960459e+00 - 7 3.4049112903278234e-01 -9.4655678321664549e-03 -2.4634480020857370e+00 - 8 1.1644354555804921e+00 -4.8367776650962330e-01 -6.7663643940738027e-01 - 9 1.3781717822695918e+00 -2.5332509530017322e-01 2.6864954436590494e-01 - 10 2.0186368606042460e+00 -1.4285861423625348e+00 -9.6712491252784183e-01 - 11 1.7929137227578726e+00 -1.9875455388406436e+00 -1.8836565352267429e+00 - 12 3.0032775230400142e+00 -4.8983022415161337e-01 -1.6190248017342870e+00 - 13 4.0448964162126639e+00 -9.0213155122374034e-01 -1.6385398399478515e+00 - 14 2.6035151245016883e+00 -4.0874995493201027e-01 -2.6555999074785985e+00 - 15 2.9761196776172243e+00 5.6287237454118566e-01 -1.2442626196081918e+00 - 16 2.6517373021566577e+00 -2.3957035508393689e+00 3.3389262100618433e-02 - 17 2.2311114924744668e+00 -2.1018393228799419e+00 1.1496088522376777e+00 - 18 2.1390642573199212e+00 3.0164773560692755e+00 -3.5143984803853900e+00 - 19 1.5353246655143720e+00 2.6305911186314508e+00 -4.2455871034736816e+00 - 20 2.7649421538935122e+00 3.6818603528430254e+00 -3.9364115785985936e+00 - 21 4.9043112657301942e+00 -4.0774268210396798e+00 -3.6200836396129796e+00 - 22 4.3665322424286144e+00 -4.2075138112953070e+00 -4.4636587264885614e+00 - 23 5.7355405581987764e+00 -3.5789558641907195e+00 -3.8805763324090350e+00 - 24 2.0692780332810026e+00 3.1504920436416008e+00 3.1571131300668833e+00 - 25 1.3007297593168636e+00 3.2745259354178766e+00 2.5110163874103986e+00 - 26 2.5819416446099002e+00 4.0104903120757012e+00 3.2150249624525742e+00 + 1 -2.7899546863904412e-01 2.4731857340327541e+00 -1.7290667740243348e-01 + 2 3.0296221610251317e-01 2.9517129916957181e+00 -8.5798904387771990e-01 + 3 -6.9368802364141358e-01 1.2445115421753392e+00 -6.2281111198654315e-01 + 4 -1.5764879647103740e+00 1.4919714415840188e+00 -1.2492069414675249e+00 + 5 -8.9434512967438362e-01 9.3651699743500849e-01 4.0191726558256402e-01 + 6 2.9454439634451368e-01 2.2724545792540876e-01 -1.2845195053960490e+00 + 7 3.4049112903274215e-01 -9.4655678322607961e-03 -2.4634480020857299e+00 + 8 1.1644354555804954e+00 -4.8367776650961680e-01 -6.7663643940736340e-01 + 9 1.3781717822696169e+00 -2.5332509530011327e-01 2.6864954436590560e-01 + 10 2.0186368606042455e+00 -1.4285861423625437e+00 -9.6712491252779242e-01 + 11 1.7929137227578522e+00 -1.9875455388407057e+00 -1.8836565352266585e+00 + 12 3.0032775230399977e+00 -4.8983022415165589e-01 -1.6190248017343138e+00 + 13 4.0448964162126479e+00 -9.0213155122378219e-01 -1.6385398399478794e+00 + 14 2.6035151245016470e+00 -4.0874995493211108e-01 -2.6555999074786221e+00 + 15 2.9761196776172136e+00 5.6287237454116579e-01 -1.2442626196082760e+00 + 16 2.6517373021566839e+00 -2.3957035508393223e+00 3.3389262100708361e-02 + 17 2.2311114924745179e+00 -2.1018393228798340e+00 1.1496088522377621e+00 + 18 2.1390642573196605e+00 3.0164773560691671e+00 -3.5143984803853927e+00 + 19 1.5353246655140995e+00 2.6305911186312847e+00 -4.2455871034736425e+00 + 20 2.7649421538931831e+00 3.6818603528429503e+00 -3.9364115785986438e+00 + 21 4.9043112657304171e+00 -4.0774268210395990e+00 -3.6200836396129659e+00 + 22 4.3665322424288018e+00 -4.2075138112952830e+00 -4.4636587264885161e+00 + 23 5.7355405581989505e+00 -3.5789558641905872e+00 -3.8805763324090754e+00 + 24 2.0692780332810834e+00 3.1504920436416377e+00 3.1571131300668784e+00 + 25 1.3007297593169014e+00 3.2745259354178451e+00 2.5110163874104305e+00 + 26 2.5819416446099250e+00 4.0104903120757749e+00 3.2150249624525231e+00 27 -1.9613581876744359e+00 -4.3556300596085160e+00 2.1101467673534788e+00 28 -2.7406520384725965e+00 -4.0207251278130975e+00 1.5828689861678511e+00 29 -1.3108232656499081e+00 -3.5992986322410760e+00 2.2680459788743503e+00 run_vel: ! |2 - 1 4.7093289825841293e-04 2.6351122778450888e-04 -4.4905093064113717e-04 - 2 4.9594625316469964e-04 9.4561370489668111e-05 -5.4581359894048111e-04 - 3 3.3306085115754910e-04 2.3224943880673595e-04 -2.3659455671744723e-04 - 4 3.3692327392259764e-04 2.1926810694050300e-04 -2.4716631558861373e-04 - 5 3.3642542694184180e-04 4.1797578013266372e-04 -1.8011341766654800e-04 - 6 2.0926869754934492e-04 2.6449308951570887e-05 -1.0508938983871866e-04 - 7 1.4629043007908284e-04 -1.6873376665352296e-04 -6.8354048774366290e-05 - 8 1.5844101624224813e-04 3.7728761273997381e-05 -1.9162715667088780e-05 - 9 2.1299362072601532e-04 1.6917140529158732e-04 -6.3528165037833598e-05 - 10 5.4261629412260376e-05 -9.4655528376821362e-05 1.0511362869146115e-04 - 11 -3.2194160796493454e-05 -2.2025095264761673e-04 2.0300202946211041e-04 - 12 1.2640586304751833e-04 -2.9851080445664229e-04 -7.9476371818270762e-05 - 13 8.4523575162163329e-05 -4.0583135407329152e-04 -4.7551111331733064e-05 - 14 9.9954050381288400e-05 -4.2610816481298728e-04 -7.9255633594414740e-05 - 15 2.4417481119791087e-04 -2.3521002264675206e-04 -2.4875318161051227e-04 - 16 -9.0958138549618100e-06 3.7774817121146141e-06 2.4035199548835590e-04 - 17 5.7507224523608950e-05 2.2629217444844056e-04 2.0686920072686990e-04 - 18 2.9220264989358538e-04 -6.2478376436791018e-04 8.4222594596602778e-04 - 19 2.0572616567796829e-04 -5.0334424271721273e-04 8.4953929443210897e-04 - 20 4.1224811789512659e-04 -7.4115205416005016e-04 8.3678612337508636e-04 - 21 -1.0671858777656236e-03 -1.1531171045500116e-03 7.3720674900161585e-04 - 22 -1.1066511338291651e-03 -1.0433933757601002e-03 7.4544544325707912e-04 - 23 -9.7629260480938717e-04 -1.3100872491594619e-03 7.2687284219704522e-04 - 24 4.3308126651259090e-04 -6.6527658087322823e-04 8.4451298670663681e-04 - 25 4.4565811905441464e-04 -5.1298436273583472e-04 8.5878867884521526e-04 - 26 5.9865972692023459e-04 -7.6385263287079232e-04 8.4259943226842524e-04 + 1 4.7093289825842481e-04 2.6351122778449815e-04 -4.4905093064115029e-04 + 2 4.9594625316470614e-04 9.4561370489646928e-05 -5.4581359894049163e-04 + 3 3.3306085115755453e-04 2.3224943880673822e-04 -2.3659455671744877e-04 + 4 3.3692327392259862e-04 2.1926810694050856e-04 -2.4716631558860722e-04 + 5 3.3642542694185568e-04 4.1797578013267277e-04 -1.8011341766655748e-04 + 6 2.0926869754934175e-04 2.6449308951572771e-05 -1.0508938983871239e-04 + 7 1.4629043007906883e-04 -1.6873376665352220e-04 -6.8354048774347479e-05 + 8 1.5844101624224818e-04 3.7728761274000153e-05 -1.9162715667088122e-05 + 9 2.1299362072602399e-04 1.6917140529158875e-04 -6.3528165037844006e-05 + 10 5.4261629412255362e-05 -9.4655528376817648e-05 1.0511362869146607e-04 + 11 -3.2194160796507657e-05 -2.2025095264760857e-04 2.0300202946212778e-04 + 12 1.2640586304750909e-04 -2.9851080445665606e-04 -7.9476371818267184e-05 + 13 8.4523575162152420e-05 -4.0583135407330979e-04 -4.7551111331730963e-05 + 14 9.9954050381270538e-05 -4.2610816481300132e-04 -7.9255633594400035e-05 + 15 2.4417481119790729e-04 -2.3521002264677391e-04 -2.4875318161051720e-04 + 16 -9.0958138549606716e-06 3.7774817121242263e-06 2.4035199548835337e-04 + 17 5.7507224523620660e-05 2.2629217444845357e-04 2.0686920072685659e-04 + 18 2.9220264989356375e-04 -6.2478376436786377e-04 8.4222594596602756e-04 + 19 2.0572616567793704e-04 -5.0334424271716611e-04 8.4953929443210886e-04 + 20 4.1224811789511017e-04 -7.4115205415999053e-04 8.3678612337508690e-04 + 21 -1.0671858777656028e-03 -1.1531171045500558e-03 7.3720674900162051e-04 + 22 -1.1066511338291541e-03 -1.0433933757601397e-03 7.4544544325708389e-04 + 23 -9.7629260480935768e-04 -1.3100872491594961e-03 7.2687284219705075e-04 + 24 4.3308126651259366e-04 -6.6527658087323755e-04 8.4451298670663172e-04 + 25 4.4565811905440515e-04 -5.1298436273583775e-04 8.5878867884520984e-04 + 26 5.9865972692024294e-04 -7.6385263287079004e-04 8.4259943226842036e-04 27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04 28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03 29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03 diff --git a/unittest/force-styles/tests/fix-timestep-rigid_nve_molecule.yaml b/unittest/force-styles/tests/fix-timestep-rigid_nve_molecule.yaml index 839ac060a5..b0e52d3fea 100644 --- a/unittest/force-styles/tests/fix-timestep-rigid_nve_molecule.yaml +++ b/unittest/force-styles/tests/fix-timestep-rigid_nve_molecule.yaml @@ -1,6 +1,7 @@ --- -lammps_version: 17 Feb 2022 -date_generated: Fri Mar 18 22:18:00 2022 +lammps_version: 7 Feb 2024 +tags: +date_generated: Thu Apr 4 21:27:13 2024 epsilon: 5e-13 skip_tests: prerequisites: ! | @@ -14,8 +15,8 @@ post_commands: ! | input_file: in.fourmol natoms: 29 run_stress: ! |- - -4.9200114774918006e+01 -2.6907707694141354e+01 -6.0080872444875970e+00 -2.5620425756344780e+01 -1.3450222538011893e+01 -1.4947348732785031e+00 -global_scalar: 18.340560167364448 + -4.9200114760030708e+01 -2.6907707699312748e+01 -6.0080872440179061e+00 -2.5620425767600064e+01 -1.3450222535184853e+01 -1.4947348700253382e+00 +global_scalar: 18.340560165889197 run_pos: ! |2 1 -2.7993683669226832e-01 2.4726588069312840e+00 -1.7200860244148433e-01 2 3.0197083955402204e-01 2.9515239068888608e+00 -8.5689735572907566e-01 @@ -34,15 +35,15 @@ run_pos: ! |2 15 2.9756315249791303e+00 5.6334269722969288e-01 -1.2437650754599008e+00 16 2.6517554244980306e+00 -2.3957110424978438e+00 3.2908335999178327e-02 17 2.2309964792710639e+00 -2.1022918943319384e+00 1.1491948328949437e+00 - 18 2.1392027588270928e+00 3.0171068018423082e+00 -3.5144628518853867e+00 - 19 1.5366124996934336e+00 2.6286809834236959e+00 -4.2452547844313493e+00 - 20 2.7628161763597592e+00 3.6842251687468450e+00 -3.9370881219419189e+00 - 21 4.9036621348471368e+00 -4.0757648444604762e+00 -3.6192617654906609e+00 - 22 4.3655322292129357e+00 -4.2084949964269480e+00 -4.4622011117992786e+00 - 23 5.7380414790507261e+00 -3.5841969189265162e+00 -3.8827839828320116e+00 - 24 2.0701314764933532e+00 3.1499370533556008e+00 3.1565324853054118e+00 - 25 1.3030170721038390e+00 3.2711173927738786e+00 2.5081940917867680e+00 - 26 2.5776230784374867e+00 4.0127347067334345e+00 3.2182355136150917e+00 + 18 2.1392027588241729e+00 3.0171068018404634e+00 -3.5144628518858858e+00 + 19 1.5366124996944652e+00 2.6286809834366300e+00 -4.2452547844429631e+00 + 20 2.7628161763703827e+00 3.6842251687412753e+00 -3.9370881219283147e+00 + 21 4.9036621349084646e+00 -4.0757648444931904e+00 -3.6192617654848509e+00 + 22 4.3655322292057255e+00 -4.2084949967079632e+00 -4.4622011117106153e+00 + 23 5.7380414788131207e+00 -3.5841969185149058e+00 -3.8827839829438688e+00 + 24 2.0701314764430685e+00 3.1499370533656190e+00 3.1565324853444698e+00 + 25 1.3030170721374645e+00 3.2711173928413317e+00 2.5081940917372791e+00 + 26 2.5776230786045939e+00 4.0127347066259897e+00 3.2182355135086644e+00 27 -1.9613581876744359e+00 -4.3556300596085160e+00 2.1101467673534788e+00 28 -2.7406520384725965e+00 -4.0207251278130975e+00 1.5828689861678511e+00 29 -1.3108232656499081e+00 -3.5992986322410760e+00 2.2680459788743503e+00 @@ -64,15 +65,15 @@ run_vel: ! |2 15 -4.3301707382721859e-03 -3.1802661664634938e-03 3.2037919043360571e-03 16 -9.6715751018414326e-05 -5.0016572678960377e-04 1.4945658875149626e-03 17 6.5692180538157174e-04 3.6635779995305095e-04 8.3495414466050911e-04 - 18 3.6149625094898067e-04 -3.1032459262177040e-04 8.1043030117471950e-04 - 19 8.5103884664914254e-04 -1.4572280597118469e-03 1.0163621287571445e-03 - 20 -6.5204659274939057e-04 4.3989037444674739e-04 4.9909839028631532e-04 - 21 -1.3888125888095134e-03 -3.1978049191290817e-04 1.1455681505629727e-03 - 22 -1.6084223473476296e-03 -1.5355394235202363e-03 1.4772010819351844e-03 - 23 2.6392672583440717e-04 -3.9375414417551127e-03 -3.6991583302200246e-04 - 24 8.6062827046548790e-04 -9.4179873487668705e-04 5.5396395555797203e-04 - 25 1.5933645478462865e-03 -2.2139156628290975e-03 -5.5078029723780941e-04 - 26 -1.5679561736454237e-03 3.5146224433513641e-04 2.4446924193838983e-03 + 18 3.6149625095571725e-04 -3.1032459263052550e-04 8.1043030117473349e-04 + 19 8.5103884662188244e-04 -1.4572280597071525e-03 1.0163621287543638e-03 + 20 -6.5204659274901945e-04 4.3989037447700791e-04 4.9909839028904252e-04 + 21 -1.3888125889514069e-03 -3.1978049248194420e-04 1.1455681505565557e-03 + 22 -1.6084223477996385e-03 -1.5355394224557757e-03 1.4772010822781041e-03 + 23 2.6392672685288674e-04 -3.9375414405480738e-03 -3.6991583333937880e-04 + 24 8.6062827042478370e-04 -9.4179873506334828e-04 5.5396395546095014e-04 + 25 1.5933645477524167e-03 -2.2139156628045932e-03 -5.5078029709943691e-04 + 26 -1.5679561733890424e-03 3.5146224505578228e-04 2.4446924196328459e-03 27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04 28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03 29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03 diff --git a/unittest/force-styles/tests/fix-timestep-rigid_nve_single.yaml b/unittest/force-styles/tests/fix-timestep-rigid_nve_single.yaml index 854e8b4d45..0277d7991a 100644 --- a/unittest/force-styles/tests/fix-timestep-rigid_nve_single.yaml +++ b/unittest/force-styles/tests/fix-timestep-rigid_nve_single.yaml @@ -1,6 +1,7 @@ --- -lammps_version: 17 Feb 2022 -date_generated: Fri Mar 18 22:18:00 2022 +lammps_version: 7 Feb 2024 +tags: +date_generated: Thu Apr 4 21:27:13 2024 epsilon: 5e-13 skip_tests: prerequisites: ! | @@ -14,26 +15,26 @@ post_commands: ! | input_file: in.fourmol natoms: 29 run_stress: ! |- - -1.3754817467882767e+03 -1.4228425246441275e+03 -3.6087196200592489e+03 8.7407043142559303e+02 2.1665316510426268e+02 -6.0480791467747542e+02 -global_scalar: 4.531423038570333 + -1.3754817467882813e+03 -1.4228425246442055e+03 -3.6087196200592184e+03 8.7407043142559792e+02 2.1665316510417179e+02 -6.0480791467761571e+02 +global_scalar: 4.531423038570381 run_pos: ! |2 - 1 -2.7899546859706881e-01 2.4731857340427750e+00 -1.7290667720866193e-01 - 2 3.0296221616781649e-01 2.9517129917211218e+00 -8.5798904365338713e-01 - 3 -6.9368802362172777e-01 1.2445115422148878e+00 -6.2281111185285920e-01 - 4 -1.5764879646739900e+00 1.4919714416721197e+00 -1.2492069413381908e+00 - 5 -8.9434512967965252e-01 9.3651699743522254e-01 4.0191726569953845e-01 - 6 2.9454439635066831e-01 2.2724545796942719e-01 -1.2845195052894431e+00 - 7 3.4049112905319934e-01 -9.4655677384814507e-03 -2.4634480019885556e+00 - 8 1.1644354555589707e+00 -4.8367776651303718e-01 -6.7663643931662931e-01 - 9 1.3781717822376129e+00 -2.5332509534954067e-01 2.6864954447021949e-01 - 10 2.0186368605646337e+00 -1.4285861423742481e+00 -9.6712491246329535e-01 - 11 1.7929137227202196e+00 -1.9875455388073511e+00 -1.8836565351901273e+00 - 12 3.0032775230343667e+00 -4.8983022415922672e-01 -1.6190248016125368e+00 - 13 4.0448964161972993e+00 -9.0213155125590028e-01 -1.6385398398261621e+00 - 14 2.6035151245156412e+00 -4.0874995488520105e-01 -2.6555999073601511e+00 - 15 2.9761196776308623e+00 5.6287237451808192e-01 -1.2442626194415292e+00 - 16 2.6517373020764632e+00 -2.3957035509096389e+00 3.3389262134244646e-02 - 17 2.2311114923824555e+00 -2.1018393229880719e+00 1.1496088522768189e+00 + 1 -2.7899546859705771e-01 2.4731857340428069e+00 -1.7290667720877784e-01 + 2 3.0296221616781072e-01 2.9517129917211151e+00 -8.5798904365354312e-01 + 3 -6.9368802362172532e-01 1.2445115422148945e+00 -6.2281111185289584e-01 + 4 -1.5764879646740031e+00 1.4919714416720897e+00 -1.2492069413382207e+00 + 5 -8.9434512967962521e-01 9.3651699743528616e-01 4.0191726569952280e-01 + 6 2.9454439635065666e-01 2.2724545796939852e-01 -1.2845195052894454e+00 + 7 3.4049112905316026e-01 -9.4655677385761805e-03 -2.4634480019885459e+00 + 8 1.1644354555589742e+00 -4.8367776651303018e-01 -6.7663643931661244e-01 + 9 1.3781717822376380e+00 -2.5332509534948033e-01 2.6864954447021760e-01 + 10 2.0186368605646310e+00 -1.4285861423742554e+00 -9.6712491246324517e-01 + 11 1.7929137227201968e+00 -1.9875455388074099e+00 -1.8836565351900401e+00 + 12 3.0032775230343471e+00 -4.8983022415926980e-01 -1.6190248016125621e+00 + 13 4.0448964161972807e+00 -9.0213155125594269e-01 -1.6385398398261892e+00 + 14 2.6035151245155976e+00 -4.0874995488530264e-01 -2.6555999073601715e+00 + 15 2.9761196776308503e+00 5.6287237451805949e-01 -1.2442626194416131e+00 + 16 2.6517373020764849e+00 -2.3957035509095892e+00 3.3389262134333686e-02 + 17 2.2311114923825035e+00 -2.1018393229879604e+00 1.1496088522769004e+00 18 2.1384791188033843e+00 3.0177261773770208e+00 -3.5160827596876225e+00 19 1.5349125211132961e+00 2.6315969880333707e+00 -4.2472859440220647e+00 20 2.7641167828863153e+00 3.6833419064000221e+00 -3.9380850623312638e+00 @@ -47,23 +48,23 @@ run_pos: ! |2 28 -2.7406520384725965e+00 -4.0207251278130975e+00 1.5828689861678511e+00 29 -1.3108232656499081e+00 -3.5992986322410760e+00 2.2680459788743503e+00 run_vel: ! |2 - 1 4.7093296226164550e-04 2.6351124312060223e-04 -4.4905063547613568e-04 - 2 4.9594635271876775e-04 9.4561409237174846e-05 -5.4581325723053790e-04 - 3 3.3306088119081919e-04 2.3224949911015709e-04 -2.3659435306899653e-04 - 4 3.3692332940285361e-04 2.1926824120528752e-04 -2.4716611858555457e-04 - 5 3.3642541894622217e-04 4.1797578053944250e-04 -1.8011323945926332e-04 - 6 2.0926870695908031e-04 2.6449376032433555e-05 -1.0508922741401509e-04 - 7 1.4629046128363305e-04 -1.6873362379725323e-04 -6.8353900724087087e-05 - 8 1.5844098346817862e-04 3.7728756087615553e-05 -1.9162577392847385e-05 - 9 2.1299357198252531e-04 1.6917133003967874e-04 -6.3528006071188683e-05 - 10 5.4261569071251603e-05 -9.4655546204709643e-05 1.0511372702289179e-04 - 11 -3.2194218121513917e-05 -2.2025090185605342e-04 2.0300208519291412e-04 - 12 1.2640585449265036e-04 -2.9851081600945991e-04 -7.9476186245599681e-05 - 13 8.4523551795123310e-05 -4.0583140303606936e-04 -4.7550925831962545e-05 - 14 9.9954071734181717e-05 -4.2610809338914382e-04 -7.9255453072696249e-05 - 15 2.4417483202631243e-04 -2.3521005781666407e-04 -2.4875292755154228e-04 - 16 -9.0959360838797421e-06 3.7773746063106756e-06 2.4035204669042973e-04 - 17 5.7507084250803101e-05 2.2629200960629499e-04 2.0686926033796699e-04 + 1 4.7093296226165618e-04 2.6351124312058857e-04 -4.4905063547614403e-04 + 2 4.9594635271877252e-04 9.4561409237151983e-05 -5.4581325723054321e-04 + 3 3.3306088119082413e-04 2.3224949911015692e-04 -2.3659435306899455e-04 + 4 3.3692332940285378e-04 2.1926824120529077e-04 -2.4716611858554389e-04 + 5 3.3642541894623611e-04 4.1797578053944765e-04 -1.8011323945926958e-04 + 6 2.0926870695907706e-04 2.6449376032434591e-05 -1.0508922741400673e-04 + 7 1.4629046128361865e-04 -1.6873362379725188e-04 -6.8353900724066446e-05 + 8 1.5844098346817927e-04 3.7728756087617390e-05 -1.9162577392845779e-05 + 9 2.1299357198253474e-04 1.6917133003967807e-04 -6.3528006071197993e-05 + 10 5.4261569071247645e-05 -9.4655546204705848e-05 1.0511372702289633e-04 + 11 -3.2194218121526927e-05 -2.2025090185604412e-04 2.0300208519293052e-04 + 12 1.2640585449264128e-04 -2.9851081600947238e-04 -7.9476186245595616e-05 + 13 8.4523551795112752e-05 -4.0583140303608579e-04 -4.7550925831960783e-05 + 14 9.9954071734163598e-05 -4.2610809338915548e-04 -7.9255453072680826e-05 + 15 2.4417483202630842e-04 -2.3521005781668527e-04 -2.4875292755154548e-04 + 16 -9.0959360838764895e-06 3.7773746063197473e-06 2.4035204669042547e-04 + 17 5.7507084250817169e-05 2.2629200960630572e-04 2.0686926033795233e-04 18 -6.0936815808025862e-04 -9.3774557532468582e-04 -3.3558072507805731e-04 19 -6.9919768291957119e-04 -3.6060777270430031e-03 4.2833405289822791e-03 20 4.7777805013736515e-03 5.1003745845520452e-03 1.8002873923729241e-03 diff --git a/unittest/force-styles/tests/fix-timestep-rigid_nve_small.yaml b/unittest/force-styles/tests/fix-timestep-rigid_nve_small.yaml index 664921b147..1a017f0a6c 100644 --- a/unittest/force-styles/tests/fix-timestep-rigid_nve_small.yaml +++ b/unittest/force-styles/tests/fix-timestep-rigid_nve_small.yaml @@ -1,6 +1,7 @@ --- -lammps_version: 17 Feb 2022 -date_generated: Fri Mar 18 22:18:00 2022 +lammps_version: 7 Feb 2024 +tags: +date_generated: Thu Apr 4 21:27:14 2024 epsilon: 5e-13 skip_tests: prerequisites: ! | @@ -14,8 +15,8 @@ post_commands: ! | input_file: in.fourmol natoms: 29 run_stress: ! |- - -4.9200114774918006e+01 -2.6907707694141354e+01 -6.0080872444875970e+00 -2.5620425756344780e+01 -1.3450222538011893e+01 -1.4947348732785031e+00 -global_scalar: 0.5007318719663203 + -4.9200114760030708e+01 -2.6907707699312748e+01 -6.0080872440179061e+00 -2.5620425767600064e+01 -1.3450222535184853e+01 -1.4947348700253382e+00 +global_scalar: 0.5007318719399354 run_pos: ! |2 1 -2.7993683669226832e-01 2.4726588069312840e+00 -1.7200860244148433e-01 2 3.0197083955402204e-01 2.9515239068888608e+00 -8.5689735572907566e-01 @@ -34,15 +35,15 @@ run_pos: ! |2 15 2.9756315249791303e+00 5.6334269722969288e-01 -1.2437650754599008e+00 16 2.6517554244980306e+00 -2.3957110424978438e+00 3.2908335999178327e-02 17 2.2309964792710639e+00 -2.1022918943319384e+00 1.1491948328949437e+00 - 18 2.1392027588270928e+00 3.0171068018423082e+00 -3.5144628518853867e+00 - 19 1.5366124996934336e+00 2.6286809834236959e+00 -4.2452547844313493e+00 - 20 2.7628161763597592e+00 3.6842251687468450e+00 -3.9370881219419189e+00 - 21 4.9036621348471368e+00 -4.0757648444604762e+00 -3.6192617654906609e+00 - 22 4.3655322292129357e+00 -4.2084949964269480e+00 -4.4622011117992786e+00 - 23 5.7380414790507261e+00 -3.5841969189265162e+00 -3.8827839828320116e+00 - 24 2.0701314764933532e+00 3.1499370533556008e+00 3.1565324853054118e+00 - 25 1.3030170721038390e+00 3.2711173927738786e+00 2.5081940917867680e+00 - 26 2.5776230784374867e+00 4.0127347067334345e+00 3.2182355136150917e+00 + 18 2.1392027588241729e+00 3.0171068018404634e+00 -3.5144628518858858e+00 + 19 1.5366124996944652e+00 2.6286809834366300e+00 -4.2452547844429631e+00 + 20 2.7628161763703827e+00 3.6842251687412753e+00 -3.9370881219283147e+00 + 21 4.9036621349084646e+00 -4.0757648444931904e+00 -3.6192617654848509e+00 + 22 4.3655322292057255e+00 -4.2084949967079632e+00 -4.4622011117106153e+00 + 23 5.7380414788131207e+00 -3.5841969185149058e+00 -3.8827839829438688e+00 + 24 2.0701314764430685e+00 3.1499370533656190e+00 3.1565324853444698e+00 + 25 1.3030170721374645e+00 3.2711173928413317e+00 2.5081940917372791e+00 + 26 2.5776230786045939e+00 4.0127347066259897e+00 3.2182355135086644e+00 27 -1.9613581876744359e+00 -4.3556300596085160e+00 2.1101467673534788e+00 28 -2.7406520384725965e+00 -4.0207251278130975e+00 1.5828689861678511e+00 29 -1.3108232656499081e+00 -3.5992986322410760e+00 2.2680459788743503e+00 @@ -64,15 +65,15 @@ run_vel: ! |2 15 -4.3301707382721859e-03 -3.1802661664634938e-03 3.2037919043360571e-03 16 -9.6715751018414326e-05 -5.0016572678960377e-04 1.4945658875149626e-03 17 6.5692180538157174e-04 3.6635779995305095e-04 8.3495414466050911e-04 - 18 3.6149625094898067e-04 -3.1032459262177040e-04 8.1043030117471950e-04 - 19 8.5103884664914254e-04 -1.4572280597118469e-03 1.0163621287571445e-03 - 20 -6.5204659274939057e-04 4.3989037444674739e-04 4.9909839028631532e-04 - 21 -1.3888125888095134e-03 -3.1978049191290817e-04 1.1455681505629727e-03 - 22 -1.6084223473476296e-03 -1.5355394235202363e-03 1.4772010819351844e-03 - 23 2.6392672583440717e-04 -3.9375414417551127e-03 -3.6991583302200246e-04 - 24 8.6062827046548790e-04 -9.4179873487668705e-04 5.5396395555797203e-04 - 25 1.5933645478462865e-03 -2.2139156628290975e-03 -5.5078029723780941e-04 - 26 -1.5679561736454237e-03 3.5146224433513641e-04 2.4446924193838983e-03 + 18 3.6149625095571725e-04 -3.1032459263052550e-04 8.1043030117473349e-04 + 19 8.5103884662188244e-04 -1.4572280597071525e-03 1.0163621287543638e-03 + 20 -6.5204659274901945e-04 4.3989037447700791e-04 4.9909839028904252e-04 + 21 -1.3888125889514069e-03 -3.1978049248194420e-04 1.1455681505565557e-03 + 22 -1.6084223477996385e-03 -1.5355394224557757e-03 1.4772010822781041e-03 + 23 2.6392672685288674e-04 -3.9375414405480738e-03 -3.6991583333937880e-04 + 24 8.6062827042478370e-04 -9.4179873506334828e-04 5.5396395546095014e-04 + 25 1.5933645477524167e-03 -2.2139156628045932e-03 -5.5078029709943691e-04 + 26 -1.5679561733890424e-03 3.5146224505578228e-04 2.4446924196328459e-03 27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04 28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03 29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03 diff --git a/unittest/force-styles/tests/fix-timestep-rigid_nvt.yaml b/unittest/force-styles/tests/fix-timestep-rigid_nvt.yaml index a49508ca15..f15e2a3c7f 100644 --- a/unittest/force-styles/tests/fix-timestep-rigid_nvt.yaml +++ b/unittest/force-styles/tests/fix-timestep-rigid_nvt.yaml @@ -1,7 +1,8 @@ --- -lammps_version: 17 Feb 2022 -date_generated: Fri Mar 18 22:18:00 2022 -epsilon: 5e-13 +lammps_version: 7 Feb 2024 +tags: +date_generated: Thu Apr 4 21:27:14 2024 +epsilon: 1e-12 skip_tests: prerequisites: ! | atom full @@ -13,26 +14,26 @@ post_commands: ! | input_file: in.fourmol natoms: 29 run_stress: ! |- - -1.3123962047757550e+03 -1.3675423591710460e+03 -3.5468492999583855e+03 7.8271738572396373e+02 2.6480486115495069e+02 -7.6950536863736306e+02 -global_scalar: 68.08659647423171 + -1.3123962047758187e+03 -1.3675423591720764e+03 -3.5468492999580299e+03 7.8271738572394452e+02 2.6480486115379637e+02 -7.6950536863892899e+02 +global_scalar: 68.08659647424867 run_pos: ! |2 - 1 -2.7802951913990959e-01 2.4737132264311215e+00 -1.7381271738602289e-01 - 2 3.0397800832473609e-01 2.9519031941431444e+00 -8.5908822750267100e-01 - 3 -6.9299720296404743e-01 1.2449766685866726e+00 -6.2329294828335358e-01 - 4 -1.5757894675975461e+00 1.4924105480974301e+00 -1.2497098747240374e+00 - 5 -8.9364750934418624e-01 9.3735293261000852e-01 4.0154813851989335e-01 - 6 2.9498813449175199e-01 2.2729986882976547e-01 -1.2847387164260673e+00 - 7 3.4080910885027837e-01 -9.8008218359699473e-03 -2.4635938021179546e+00 - 8 1.1647778042705452e+00 -4.8360070140706557e-01 -6.7668409924218165e-01 - 9 1.3786230528159027e+00 -2.5298559880150862e-01 2.6851325883861188e-01 - 10 2.0187712935465942e+00 -1.4287732348422091e+00 -9.6692440387148870e-01 - 11 1.7928755785831587e+00 -1.9879833661313322e+00 -1.8832605388690278e+00 - 12 3.0035558347419657e+00 -4.9042429038271507e-01 -1.6191927838346238e+00 - 13 4.0450911337530959e+00 -9.0293975523160919e-01 -1.6386440514135796e+00 - 14 2.6037405819194577e+00 -4.0959881564101863e-01 -2.6557674031621108e+00 - 15 2.9766330093335447e+00 5.6240461100771322e-01 -1.2447686007433758e+00 - 16 2.6517453810147344e+00 -2.3956939898026426e+00 3.3859750042781744e-02 - 17 2.2312525656149020e+00 -2.1013855689264771e+00 1.1500124166835219e+00 + 1 -2.7802951913978302e-01 2.4737132264315886e+00 -1.7381271738770820e-01 + 2 3.0397800832462774e-01 2.9519031941430738e+00 -8.5908822750493219e-01 + 3 -6.9299720296403144e-01 1.2449766685867643e+00 -6.2329294828390935e-01 + 4 -1.5757894675977402e+00 1.4924105480969891e+00 -1.2497098747245081e+00 + 5 -8.9364750934382919e-01 9.3735293261092456e-01 4.0154813851965188e-01 + 6 2.9498813449158368e-01 2.2729986882934847e-01 -1.2847387164261186e+00 + 7 3.4080910884973536e-01 -9.8008218373410172e-03 -2.4635938021178290e+00 + 8 1.1647778042705941e+00 -4.8360070140696521e-01 -6.7668409924193851e-01 + 9 1.3786230528162504e+00 -2.5298559880063631e-01 2.6851325883859889e-01 + 10 2.0187712935465760e+00 -1.4287732348423197e+00 -9.6692440387075651e-01 + 11 1.7928755785828601e+00 -1.9879833661321924e+00 -1.8832605388677695e+00 + 12 3.0035558347417104e+00 -4.9042429038332558e-01 -1.6191927838349707e+00 + 13 4.0450911337528455e+00 -9.0293975523220671e-01 -1.6386440514139291e+00 + 14 2.6037405819188639e+00 -4.0959881564248080e-01 -2.6557674031623937e+00 + 15 2.9766330093333795e+00 5.6240461100740513e-01 -1.2447686007445669e+00 + 16 2.6517453810150675e+00 -2.3956939898019254e+00 3.3859750044092363e-02 + 17 2.2312525656155877e+00 -2.1013855689248668e+00 1.1500124166847305e+00 18 2.1384791188033843e+00 3.0177261773770208e+00 -3.5160827596876225e+00 19 1.5349125211132961e+00 2.6315969880333707e+00 -4.2472859440220647e+00 20 2.7641167828863153e+00 3.6833419064000221e+00 -3.9380850623312638e+00 @@ -46,23 +47,23 @@ run_pos: ! |2 28 -2.7406520384725965e+00 -4.0207251278130975e+00 1.5828689861678511e+00 29 -1.3108232656499081e+00 -3.5992986322410760e+00 2.2680459788743503e+00 run_vel: ! |2 - 1 1.8443993556501188e-03 1.0121779580014884e-03 -1.7361326034900006e-03 - 2 1.9401022924558343e-03 3.6428754787592733e-04 -2.1069540627804634e-03 - 3 1.3158623602983108e-03 8.9265747656461540e-04 -9.2144725682164657e-04 - 4 1.3306255280096089e-03 8.4281508655990054e-04 -9.6194026572564146e-04 - 5 1.3289682243410692e-03 1.6048237018834067e-03 -7.0511232123071470e-04 - 6 8.4113718611833661e-04 1.0389683283144290e-04 -4.1697370456873913e-04 - 7 5.9950574545626287e-04 -6.4437674895215604e-04 -2.7586696717582678e-04 - 8 6.4634547270651834e-04 1.4734228826522431e-04 -8.7540766366730972e-05 - 9 8.5561404484505246e-04 6.5123532540338036e-04 -2.5782947158524498e-04 - 10 2.4688038968480818e-04 -3.5995975344065565e-04 3.8912416843275122e-04 - 11 -8.4672359473208624e-05 -8.4134349031640394e-04 7.6463157764214873e-04 - 12 5.2321633256319569e-04 -1.1418047427480882e-03 -3.1842516233562688e-04 - 13 3.6258187754908603e-04 -1.5531581259494627e-03 -1.9590476904013767e-04 - 14 4.2166181631324117e-04 -1.6310415916630540e-03 -3.1740232809360453e-04 - 15 9.7471807923383321e-04 -8.9939841790992827e-04 -9.6757308853409824e-04 - 16 4.1534888649229478e-06 1.7705740202856454e-05 9.0753010117813394e-04 - 17 2.5969943716026096e-04 8.7075266710270492e-04 7.7887058799645239e-04 + 1 1.8443993556507550e-03 1.0121779580008364e-03 -1.7361326034906117e-03 + 2 1.9401022924561704e-03 3.6428754787474148e-04 -2.1069540627809144e-03 + 3 1.3158623602986111e-03 8.9265747656469769e-04 -9.2144725682167822e-04 + 4 1.3306255280096579e-03 8.4281508656016844e-04 -9.6194026572521364e-04 + 5 1.3289682243418409e-03 1.6048237018838117e-03 -7.0511232123120064e-04 + 6 8.4113718611817723e-04 1.0389683283156166e-04 -4.1697370456838980e-04 + 7 5.9950574545550414e-04 -6.4437674895204296e-04 -2.7586696717479603e-04 + 8 6.4634547270655271e-04 1.4734228826538870e-04 -8.7540766366732192e-05 + 9 8.5561404484556399e-04 6.5123532540342654e-04 -2.5782947158584915e-04 + 10 2.4688038968457540e-04 -3.5995975344040265e-04 3.8912416843293944e-04 + 11 -8.4672359473939376e-05 -8.4134349031586390e-04 7.6463157764299549e-04 + 12 5.2321633256271539e-04 -1.1418047427487572e-03 -3.1842516233546950e-04 + 13 3.6258187754852045e-04 -1.5531581259503574e-03 -1.9590476904008422e-04 + 14 4.2166181631227780e-04 -1.6310415916636891e-03 -3.1740232809282303e-04 + 15 9.7471807923364706e-04 -8.9939841791107037e-04 -9.6757308853435780e-04 + 16 4.1534888650543531e-06 1.7705740203412426e-05 9.0753010117785768e-04 + 17 2.5969943716097897e-04 8.7075266710338634e-04 7.7887058799558893e-04 18 -6.0936815808025862e-04 -9.3774557532468582e-04 -3.3558072507805731e-04 19 -6.9919768291957119e-04 -3.6060777270430031e-03 4.2833405289822791e-03 20 4.7777805013736515e-03 5.1003745845520452e-03 1.8002873923729241e-03 diff --git a/unittest/force-styles/tests/fix-timestep-rigid_nvt_small.yaml b/unittest/force-styles/tests/fix-timestep-rigid_nvt_small.yaml index 6068993094..dab3d52a04 100644 --- a/unittest/force-styles/tests/fix-timestep-rigid_nvt_small.yaml +++ b/unittest/force-styles/tests/fix-timestep-rigid_nvt_small.yaml @@ -1,6 +1,7 @@ --- -lammps_version: 17 Feb 2022 -date_generated: Fri Mar 18 22:18:00 2022 +lammps_version: 7 Feb 2024 +tags: +date_generated: Thu Apr 4 21:27:15 2024 epsilon: 5e-13 skip_tests: prerequisites: ! | @@ -13,8 +14,8 @@ post_commands: ! | input_file: in.fourmol natoms: 29 run_stress: ! |- - -1.4827261116680472e+02 -1.8411194349753309e+01 -1.0752762859308649e+02 -2.1814511477016276e+02 1.7027764307147623e+02 2.1058942244057214e+01 -global_scalar: 0.9532609554739606 + -1.4827261099624999e+02 -1.8411194282828326e+01 -1.0752762861573947e+02 -2.1814511471949461e+02 1.7027764305079162e+02 2.1058942246396320e+01 +global_scalar: 0.9532609552151339 run_pos: ! |2 1 -2.7993683669226832e-01 2.4726588069312840e+00 -1.7200860244148433e-01 2 3.0197083955402204e-01 2.9515239068888608e+00 -8.5689735572907566e-01 @@ -33,15 +34,15 @@ run_pos: ! |2 15 2.9756315249791303e+00 5.6334269722969288e-01 -1.2437650754599008e+00 16 2.6517554244980306e+00 -2.3957110424978438e+00 3.2908335999178327e-02 17 2.2309964792710639e+00 -2.1022918943319384e+00 1.1491948328949437e+00 - 18 2.1395635672981443e+00 3.0168023048492310e+00 -3.5136606977867388e+00 - 19 1.5374727853253387e+00 2.6272080572819609e+00 -4.2442423140467360e+00 - 20 2.7621434607990372e+00 3.6846842324743214e+00 -3.9366036441030396e+00 - 21 4.9022821625125470e+00 -4.0760572704380627e+00 -3.6181235130909242e+00 - 22 4.3639257458824501e+00 -4.2100277325126187e+00 -4.4607219430080747e+00 - 23 5.7383384133351401e+00 -3.5881799317362106e+00 -3.8831848688588710e+00 - 24 2.0709922902331592e+00 3.1490053461169678e+00 3.1570777020268803e+00 - 25 1.3046262534530633e+00 3.2688902575528282e+00 2.5076144141701078e+00 - 26 2.5760050685080813e+00 4.0131166912605272e+00 3.2207051913215210e+00 + 18 2.1395635672857165e+00 3.0168023048413781e+00 -3.5136606977888540e+00 + 19 1.5374727853296883e+00 2.6272080573369379e+00 -4.2442423140961818e+00 + 20 2.7621434608442974e+00 3.6846842324506923e+00 -3.9366036440451500e+00 + 21 4.9022821627727593e+00 -4.0760572705753884e+00 -3.6181235130648650e+00 + 22 4.3639257458473608e+00 -4.2100277337137149e+00 -4.4607219426242057e+00 + 23 5.7383384123314833e+00 -3.5881799299869201e+00 -3.8831848693467652e+00 + 24 2.0709922900187268e+00 3.1490053461587983e+00 3.1570777021928031e+00 + 25 1.3046262535950772e+00 3.2688902578410239e+00 2.5076144139609013e+00 + 26 2.5760050692220648e+00 4.0131166908053464e+00 3.2207051908683750e+00 27 -1.9613581876744359e+00 -4.3556300596085160e+00 2.1101467673534788e+00 28 -2.7406520384725965e+00 -4.0207251278130975e+00 1.5828689861678511e+00 29 -1.3108232656499081e+00 -3.5992986322410760e+00 2.2680459788743503e+00 @@ -63,15 +64,15 @@ run_vel: ! |2 15 -4.3301707382721859e-03 -3.1802661664634938e-03 3.2037919043360571e-03 16 -9.6715751018414326e-05 -5.0016572678960377e-04 1.4945658875149626e-03 17 6.5692180538157174e-04 3.6635779995305095e-04 8.3495414466050911e-04 - 18 7.8522439440007537e-04 -6.6826115062653757e-04 1.7528441282153480e-03 - 19 1.8628941719211862e-03 -3.1840047051916367e-03 2.2062694140207390e-03 - 20 -1.4430972531298200e-03 9.7564145841628493e-04 1.0686492192569898e-03 - 21 -3.0047717246574385e-03 -6.6139343888744974e-04 2.4784169377340712e-03 - 22 -3.4980341571643784e-03 -3.3380963325931002e-03 3.2191613979274040e-03 - 23 5.9333930569297746e-04 -8.6231086219834968e-03 -8.2692040355627789e-04 - 24 1.8727912311097641e-03 -2.0349136820274911e-03 1.1951471753018509e-03 - 25 3.4887365958745920e-03 -4.8232966889391266e-03 -1.2263764490291313e-03 - 26 -3.4770258010749858e-03 7.8662050223200905e-04 5.3381090661352298e-03 + 18 7.8522439447394326e-04 -6.6826115070004464e-04 1.7528441282176825e-03 + 19 1.8628941717384645e-03 -3.1840047052822556e-03 2.2062694140226819e-03 + 20 -1.4430972532419690e-03 9.7564145880034414e-04 1.0686492192457362e-03 + 21 -3.0047717260078453e-03 -6.6139344410253201e-04 2.4784169376928207e-03 + 22 -3.4980341614361554e-03 -3.3380963226435131e-03 3.2191614012082861e-03 + 23 5.9333931535562748e-04 -8.6231086111150188e-03 -8.2692040667271425e-04 + 24 1.8727912307694413e-03 -2.0349136837727452e-03 1.1951471743788897e-03 + 25 3.4887365951187166e-03 -4.8232966888750181e-03 -1.2263764478999317e-03 + 26 -3.4770257989604671e-03 7.8662050913487318e-04 5.3381090686904524e-03 27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04 28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03 29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03 diff --git a/unittest/force-styles/tests/fix-timestep-rigid_single.yaml b/unittest/force-styles/tests/fix-timestep-rigid_single.yaml index 02acb437d9..5af45ebc1b 100644 --- a/unittest/force-styles/tests/fix-timestep-rigid_single.yaml +++ b/unittest/force-styles/tests/fix-timestep-rigid_single.yaml @@ -1,6 +1,7 @@ --- -lammps_version: 17 Feb 2022 -date_generated: Fri Mar 18 22:18:00 2022 +lammps_version: 7 Feb 2024 +tags: +date_generated: Thu Apr 4 21:27:15 2024 epsilon: 7.5e-13 skip_tests: prerequisites: ! | @@ -14,26 +15,26 @@ post_commands: ! | input_file: in.fourmol natoms: 29 run_stress: ! |- - -1.3754817466835989e+03 -1.4228425246166137e+03 -3.6087196201914348e+03 8.7407043149698916e+02 2.1665316519769885e+02 -6.0480791462033073e+02 -global_scalar: 4.531423038570297 + -1.3754817466835991e+03 -1.4228425246166084e+03 -3.6087196201914162e+03 8.7407043149699155e+02 2.1665316519769920e+02 -6.0480791462032153e+02 +global_scalar: 4.531423038570312 run_pos: ! |2 - 1 -2.7899546859693136e-01 2.4731857340428784e+00 -1.7290667720876285e-01 - 2 3.0296221616793728e-01 2.9517129917211546e+00 -8.5798904365355155e-01 - 3 -6.9368802362166204e-01 1.2445115422149751e+00 -6.2281111185285498e-01 - 4 -1.5764879646739487e+00 1.4919714416722010e+00 -1.2492069413381564e+00 - 5 -8.9434512967954416e-01 9.3651699743538730e-01 4.0191726569957442e-01 - 6 2.9454439635065910e-01 2.2724545796943096e-01 -1.2845195052894232e+00 - 7 3.4049112905311751e-01 -9.4655677385591108e-03 -2.4634480019885228e+00 - 8 1.1644354555589662e+00 -4.8367776651302724e-01 -6.7663643931660777e-01 - 9 1.3781717822376680e+00 -2.5332509534947545e-01 2.6864954447021416e-01 - 10 2.0186368605645764e+00 -1.4285861423742918e+00 -9.6712491246325605e-01 - 11 1.7929137227200918e+00 -1.9875455388074483e+00 -1.8836565351900385e+00 - 12 3.0032775230343125e+00 -4.8983022415935312e-01 -1.6190248016126132e+00 - 13 4.0448964161972283e+00 -9.0213155125606947e-01 -1.6385398398262669e+00 - 14 2.6035151245155355e+00 -4.0874995488538129e-01 -2.6555999073602123e+00 - 15 2.9761196776308694e+00 5.6287237451798222e-01 -1.2442626194416753e+00 - 16 2.6517373020764219e+00 -2.3957035509096407e+00 3.3389262134315700e-02 - 17 2.2311114923824857e+00 -2.1018393229879817e+00 1.1496088522768926e+00 + 1 -2.7899546859693225e-01 2.4731857340428771e+00 -1.7290667720876018e-01 + 2 3.0296221616793617e-01 2.9517129917211538e+00 -8.5798904365354822e-01 + 3 -6.9368802362166271e-01 1.2445115422149740e+00 -6.2281111185285387e-01 + 4 -1.5764879646739496e+00 1.4919714416722003e+00 -1.2492069413381550e+00 + 5 -8.9434512967954460e-01 9.3651699743538508e-01 4.0191726569957453e-01 + 6 2.9454439635065910e-01 2.2724545796943096e-01 -1.2845195052894227e+00 + 7 3.4049112905311785e-01 -9.4655677385578896e-03 -2.4634480019885232e+00 + 8 1.1644354555589664e+00 -4.8367776651302741e-01 -6.7663643931660822e-01 + 9 1.3781717822376678e+00 -2.5332509534947639e-01 2.6864954447021405e-01 + 10 2.0186368605645768e+00 -1.4285861423742912e+00 -9.6712491246325705e-01 + 11 1.7929137227200933e+00 -1.9875455388074468e+00 -1.8836565351900401e+00 + 12 3.0032775230343129e+00 -4.8983022415935129e-01 -1.6190248016126136e+00 + 13 4.0448964161972292e+00 -9.0213155125606781e-01 -1.6385398398262672e+00 + 14 2.6035151245155359e+00 -4.0874995488537874e-01 -2.6555999073602123e+00 + 15 2.9761196776308694e+00 5.6287237451798344e-01 -1.2442626194416739e+00 + 16 2.6517373020764223e+00 -2.3957035509096416e+00 3.3389262134313369e-02 + 17 2.2311114923824853e+00 -2.1018393229879830e+00 1.1496088522768906e+00 18 2.1384791188033843e+00 3.0177261773770208e+00 -3.5160827596876225e+00 19 1.5349125211132961e+00 2.6315969880333707e+00 -4.2472859440220647e+00 20 2.7641167828863153e+00 3.6833419064000221e+00 -3.9380850623312638e+00 @@ -47,23 +48,23 @@ run_pos: ! |2 28 -2.7406520384725965e+00 -4.0207251278130975e+00 1.5828689861678511e+00 29 -1.3108232656499081e+00 -3.5992986322410760e+00 2.2680459788743503e+00 run_vel: ! |2 - 1 4.7093296226165759e-04 2.6351124312057290e-04 -4.4905063547614669e-04 - 2 4.9594635271877263e-04 9.4561409237138512e-05 -5.4581325723053421e-04 - 3 3.3306088119083101e-04 2.3224949911015481e-04 -2.3659435306900835e-04 - 4 3.3692332940286717e-04 2.1926824120529722e-04 -2.4716611858556465e-04 - 5 3.3642541894624077e-04 4.1797578053943724e-04 -1.8011323945929064e-04 - 6 2.0926870695908283e-04 2.6449376032441855e-05 -1.0508922741401397e-04 - 7 1.4629046128362884e-04 -1.6873362379723068e-04 -6.8353900724071325e-05 - 8 1.5844098346817943e-04 3.7728756087619084e-05 -1.9162577392849316e-05 - 9 2.1299357198253002e-04 1.6917133003966749e-04 -6.3528006071200284e-05 - 10 5.4261569071245856e-05 -9.4655546204698666e-05 1.0511372702289738e-04 - 11 -3.2194218121523431e-05 -2.2025090185602293e-04 2.0300208519292805e-04 - 12 1.2640585449263546e-04 -2.9851081600946745e-04 -7.9476186245575585e-05 - 13 8.4523551795102263e-05 -4.0583140303608199e-04 -4.7550925831931374e-05 - 14 9.9954071734163435e-05 -4.2610809338913835e-04 -7.9255453072661880e-05 - 15 2.4417483202629980e-04 -2.3521005781669047e-04 -2.4875292755152005e-04 - 16 -9.0959360838836724e-06 3.7773746063194780e-06 2.4035204669042463e-04 - 17 5.7507084250807628e-05 2.2629200960629336e-04 2.0686926033794547e-04 + 1 4.7093296226165726e-04 2.6351124312057366e-04 -4.4905063547614750e-04 + 2 4.9594635271877263e-04 9.4561409237139244e-05 -5.4581325723053519e-04 + 3 3.3306088119083079e-04 2.3224949911015511e-04 -2.3659435306900900e-04 + 4 3.3692332940286722e-04 2.1926824120529738e-04 -2.4716611858556574e-04 + 5 3.3642541894624012e-04 4.1797578053943767e-04 -1.8011323945929113e-04 + 6 2.0926870695908297e-04 2.6449376032441903e-05 -1.0508922741401427e-04 + 7 1.4629046128362941e-04 -1.6873362379723111e-04 -6.8353900724071745e-05 + 8 1.5844098346817935e-04 3.7728756087619165e-05 -1.9162577392849147e-05 + 9 2.1299357198252962e-04 1.6917133003966793e-04 -6.3528006071199972e-05 + 10 5.4261569071245965e-05 -9.4655546204698774e-05 1.0511372702289789e-04 + 11 -3.2194218121522970e-05 -2.2025090185602350e-04 2.0300208519292848e-04 + 12 1.2640585449263589e-04 -2.9851081600946756e-04 -7.9476186245575178e-05 + 13 8.4523551795102697e-05 -4.0583140303608210e-04 -4.7550925831930561e-05 + 14 9.9954071734164248e-05 -4.2610809338913878e-04 -7.9255453072661758e-05 + 15 2.4417483202630007e-04 -2.3521005781669015e-04 -2.4875292755151984e-04 + 16 -9.0959360838839976e-06 3.7773746063194848e-06 2.4035204669042588e-04 + 17 5.7507084250806896e-05 2.2629200960629374e-04 2.0686926033794661e-04 18 -6.0936815808025862e-04 -9.3774557532468582e-04 -3.3558072507805731e-04 19 -6.9919768291957119e-04 -3.6060777270430031e-03 4.2833405289822791e-03 20 4.7777805013736515e-03 5.1003745845520452e-03 1.8002873923729241e-03 diff --git a/unittest/force-styles/tests/fix-timestep-rigid_small.yaml b/unittest/force-styles/tests/fix-timestep-rigid_small.yaml index 92754f85f5..ed92a4e5a8 100644 --- a/unittest/force-styles/tests/fix-timestep-rigid_small.yaml +++ b/unittest/force-styles/tests/fix-timestep-rigid_small.yaml @@ -1,6 +1,7 @@ --- -lammps_version: 17 Feb 2022 -date_generated: Fri Mar 18 22:18:00 2022 +lammps_version: 7 Feb 2024 +tags: +date_generated: Thu Apr 4 21:27:15 2024 epsilon: 5e-13 skip_tests: prerequisites: ! | @@ -14,8 +15,8 @@ post_commands: ! | input_file: in.fourmol natoms: 29 run_stress: ! |- - -4.9200116134789873e+01 -2.6907707565987707e+01 -6.0080860422278581e+00 -2.5620423972101300e+01 -1.3450224059983967e+01 -1.4947288487003760e+00 -global_scalar: 18.3405601674144 + -4.9200116134788615e+01 -2.6907707565987401e+01 -6.0080860422276308e+00 -2.5620423972100241e+01 -1.3450224059984270e+01 -1.4947288487006070e+00 +global_scalar: 18.340560167414402 run_pos: ! |2 1 -2.7993683669226832e-01 2.4726588069312840e+00 -1.7200860244148433e-01 2 3.0197083955402204e-01 2.9515239068888608e+00 -8.5689735572907566e-01 @@ -34,15 +35,15 @@ run_pos: ! |2 15 2.9756315249791303e+00 5.6334269722969288e-01 -1.2437650754599008e+00 16 2.6517554244980306e+00 -2.3957110424978438e+00 3.2908335999178327e-02 17 2.2309964792710639e+00 -2.1022918943319384e+00 1.1491948328949437e+00 - 18 2.1392027588271301e+00 3.0171068018412779e+00 -3.5144628518856349e+00 - 19 1.5366124997074571e+00 2.6286809834111748e+00 -4.2452547844370221e+00 - 20 2.7628161763455852e+00 3.6842251687634775e+00 -3.9370881219352554e+00 - 21 4.9036621347791245e+00 -4.0757648442838548e+00 -3.6192617654515904e+00 - 22 4.3655322291888483e+00 -4.2084949965552561e+00 -4.4622011117402334e+00 - 23 5.7380414793463101e+00 -3.5841969195032672e+00 -3.8827839830470219e+00 + 18 2.1392027588271301e+00 3.0171068018412783e+00 -3.5144628518856353e+00 + 19 1.5366124997074575e+00 2.6286809834111740e+00 -4.2452547844370221e+00 + 20 2.7628161763455852e+00 3.6842251687634775e+00 -3.9370881219352558e+00 + 21 4.9036621347791236e+00 -4.0757648442838548e+00 -3.6192617654515908e+00 + 22 4.3655322291888474e+00 -4.2084949965552561e+00 -4.4622011117402343e+00 + 23 5.7380414793463110e+00 -3.5841969195032672e+00 -3.8827839830470219e+00 24 2.0701314765323930e+00 3.1499370533342330e+00 3.1565324852522938e+00 - 25 1.3030170721374779e+00 3.2711173927682249e+00 2.5081940917429768e+00 - 26 2.5776230782480045e+00 4.0127347068243875e+00 3.2182355138709275e+00 + 25 1.3030170721374787e+00 3.2711173927682244e+00 2.5081940917429759e+00 + 26 2.5776230782480041e+00 4.0127347068243884e+00 3.2182355138709284e+00 27 -1.9613581876744359e+00 -4.3556300596085160e+00 2.1101467673534788e+00 28 -2.7406520384725965e+00 -4.0207251278130975e+00 1.5828689861678511e+00 29 -1.3108232656499081e+00 -3.5992986322410760e+00 2.2680459788743503e+00 @@ -64,15 +65,15 @@ run_vel: ! |2 15 -4.3301707382721859e-03 -3.1802661664634938e-03 3.2037919043360571e-03 16 -9.6715751018414326e-05 -5.0016572678960377e-04 1.4945658875149626e-03 17 6.5692180538157174e-04 3.6635779995305095e-04 8.3495414466050911e-04 - 18 3.6149625095704914e-04 -3.1032459262908286e-04 8.1043030117346052e-04 - 19 8.5103884665345452e-04 -1.4572280596788108e-03 1.0163621287634116e-03 - 20 -6.5204659278590683e-04 4.3989037444289853e-04 4.9909839028507901e-04 - 21 -1.3888125881903923e-03 -3.1978049143082385e-04 1.1455681499836646e-03 - 22 -1.6084223477729510e-03 -1.5355394240821117e-03 1.4772010826232375e-03 - 23 2.6392672378805124e-04 -3.9375414431174821e-03 -3.6991583139728095e-04 - 24 8.6062827067890247e-04 -9.4179873474469237e-04 5.5396395550012453e-04 - 25 1.5933645477487538e-03 -2.2139156625681695e-03 -5.5078029695647401e-04 - 26 -1.5679561743998840e-03 3.5146224354726100e-04 2.4446924193334478e-03 + 18 3.6149625095704849e-04 -3.1032459262908286e-04 8.1043030117346052e-04 + 19 8.5103884665345473e-04 -1.4572280596788095e-03 1.0163621287634121e-03 + 20 -6.5204659278590661e-04 4.3989037444289755e-04 4.9909839028507901e-04 + 21 -1.3888125881903906e-03 -3.1978049143082342e-04 1.1455681499836646e-03 + 22 -1.6084223477729526e-03 -1.5355394240821163e-03 1.4772010826232394e-03 + 23 2.6392672378804821e-04 -3.9375414431174795e-03 -3.6991583139728377e-04 + 24 8.6062827067890269e-04 -9.4179873474469291e-04 5.5396395550012388e-04 + 25 1.5933645477487551e-03 -2.2139156625681673e-03 -5.5078029695647250e-04 + 26 -1.5679561743998888e-03 3.5146224354726068e-04 2.4446924193334487e-03 27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04 28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03 29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03