include documentation of utility functions in utils:: to developer guide
This commit is contained in:
@ -48,8 +48,8 @@ Some source files and classes do not have a corresponding input script
|
|||||||
command, e.g. ``src/force.cpp`` and the :cpp:class:`LAMMPS_NS::Force`
|
command, e.g. ``src/force.cpp`` and the :cpp:class:`LAMMPS_NS::Force`
|
||||||
class. They are discussed in the next section.
|
class. They are discussed in the next section.
|
||||||
|
|
||||||
Overview of LAMMPS class topology
|
LAMMPS class topology
|
||||||
=================================
|
=====================
|
||||||
|
|
||||||
Though LAMMPS has a lot of source files and classes, its class topology
|
Though LAMMPS has a lot of source files and classes, its class topology
|
||||||
is relative flat, as outlined in the :ref:`class-topology` figure. Each
|
is relative flat, as outlined in the :ref:`class-topology` figure. Each
|
||||||
@ -488,8 +488,8 @@ calls the ``post_run()`` method of fixes to perform operations only required
|
|||||||
at the end of a calculations (like freeing temporary storage or creating
|
at the end of a calculations (like freeing temporary storage or creating
|
||||||
final outputs).
|
final outputs).
|
||||||
|
|
||||||
Modifying and extending LAMMPS
|
Writing LAMMPS styles
|
||||||
==============================
|
=====================
|
||||||
|
|
||||||
The :doc:`Modify` section of the manual gives an overview of how LAMMPS can
|
The :doc:`Modify` section of the manual gives an overview of how LAMMPS can
|
||||||
be extended by writing new classes that derive from existing
|
be extended by writing new classes that derive from existing
|
||||||
@ -740,3 +740,67 @@ files additional settings and functions are needed:
|
|||||||
restart processing instead of per-atom data memory management).
|
restart processing instead of per-atom data memory management).
|
||||||
- the functions ``void pack_restart(int i, double *buf)`` and
|
- the functions ``void pack_restart(int i, double *buf)`` and
|
||||||
``void unpack_restart(int nlocal, int nth)`` need to be implemented
|
``void unpack_restart(int nlocal, int nth)`` need to be implemented
|
||||||
|
|
||||||
|
LAMMPS utility functions
|
||||||
|
========================
|
||||||
|
|
||||||
|
The ``utils`` sub-namespace inside the ``LAMMPS_NS`` namespace provides
|
||||||
|
a collection of convenience functions and utilities that perform common
|
||||||
|
tasks that are required repeatedly throughout the LAMMPS code like
|
||||||
|
reading or writing to files with error checking or translation of
|
||||||
|
strings into specific types of numbers with checking for validity. This
|
||||||
|
reduces redundant implementations and encourages consistent behavior.
|
||||||
|
|
||||||
|
I/O functions with validity check
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
These are wrappers around the corresponding C library calls like
|
||||||
|
``fgets()`` or ``fread()``. They will check if there were errors
|
||||||
|
on reading or an unexpected end-of-file state was reached. In that
|
||||||
|
case, the functions will stop the calculation with an error message,
|
||||||
|
indicating the name of the problematic file, if possible.
|
||||||
|
|
||||||
|
.. doxygenfunction:: sfgets
|
||||||
|
:project: progguide
|
||||||
|
|
||||||
|
.. doxygenfunction:: sfread
|
||||||
|
:project: progguide
|
||||||
|
|
||||||
|
String to number conversions with validity check
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
These are functions equivalent to those in the ``Force`` class that
|
||||||
|
were implemented with the aim to replace and supersede those. Unlike
|
||||||
|
the versions in ``Force``, these can be used in cases where only
|
||||||
|
a single MPI rank is trying to convert strings to numbers, as you
|
||||||
|
can select through an argument, whether ``Error->all()`` or ``Error->one()``
|
||||||
|
should be called on improper strings.
|
||||||
|
|
||||||
|
These functions are preferred over C library calls like ``atoi()`` or
|
||||||
|
``atof()`` since they check if the **entire** provided string is a valid
|
||||||
|
(floating-point or integer) number, and will error out instead of silently
|
||||||
|
return the result of a partial conversion or zero in cases where the
|
||||||
|
string is not a valid number. This behavior allows to more easily detect
|
||||||
|
typos or issues when processing input files.
|
||||||
|
|
||||||
|
.. doxygenfunction:: numeric
|
||||||
|
:project: progguide
|
||||||
|
|
||||||
|
.. doxygenfunction:: inumeric
|
||||||
|
:project: progguide
|
||||||
|
|
||||||
|
.. doxygenfunction:: bnumeric
|
||||||
|
:project: progguide
|
||||||
|
|
||||||
|
.. doxygenfunction:: tnumeric
|
||||||
|
:project: progguide
|
||||||
|
|
||||||
|
|
||||||
|
Convenience functions
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. doxygenfunction:: strmatch
|
||||||
|
:project: progguide
|
||||||
|
|
||||||
|
.. doxygenfunction:: check_packages_for_style
|
||||||
|
:project: progguide
|
||||||
|
|||||||
Reference in New Issue
Block a user