1Configuration information 2========================= 3 4This section documents the following functions: 5 6- :cpp:func:`lammps_version` 7- :cpp:func:`lammps_get_os_info` 8- :cpp:func:`lammps_config_has_mpi_support` 9- :cpp:func:`lammps_config_has_gzip_support` 10- :cpp:func:`lammps_config_has_png_support` 11- :cpp:func:`lammps_config_has_jpeg_support` 12- :cpp:func:`lammps_config_has_ffmpeg_support` 13- :cpp:func:`lammps_config_has_exceptions` 14- :cpp:func:`lammps_config_has_package` 15- :cpp:func:`lammps_config_package_count` 16- :cpp:func:`lammps_config_package_name` 17- :cpp:func:`lammps_config_accelerator` 18- :cpp:func:`lammps_has_gpu_device` 19- :cpp:func:`lammps_gpu_device_info` 20- :cpp:func:`lammps_has_style` 21- :cpp:func:`lammps_style_count` 22- :cpp:func:`lammps_style_name` 23- :cpp:func:`lammps_has_id` 24- :cpp:func:`lammps_id_count` 25- :cpp:func:`lammps_id_name` 26 27-------------------- 28 29These library functions can be used to query the LAMMPS library for 30compile time settings and included packages and styles. This enables 31programs that use the library interface to determine whether the 32linked LAMMPS library is compatible with the requirements of the 33application without crashing during the LAMMPS functions (e.g. due to 34missing pair styles from packages) or to choose between different 35options (e.g. whether to use ``lj/cut``, ``lj/cut/opt``, 36``lj/cut/omp`` or ``lj/cut/intel``). Most of the functions can be 37called directly without first creating a LAMMPS instance. While 38crashes within LAMMPS may be recovered from by enabling 39:ref:`exceptions <exceptions>`, avoiding them proactively is a safer 40approach. 41 42.. code-block:: C 43 :caption: Example for using configuration settings functions 44 45 #include "library.h" 46 #include <stdio.h> 47 48 int main(int argc, char **argv) 49 { 50 void *handle; 51 52 handle = lammps_open_no_mpi(0, NULL, NULL); 53 lammps_file(handle, "in.missing"); 54 if (lammps_has_error(handle)) { 55 char errmsg[256]; 56 int errtype; 57 errtype = lammps_get_last_error_message(handle, errmsg, 256); 58 fprintf(stderr, "LAMMPS failed with error: %s\n", errmsg); 59 return 1; 60 } 61 /* write compressed dump file depending on available of options */ 62 if (lammps_has_style(handle, "dump", "atom/zstd")) { 63 lammps_command(handle, "dump d1 all atom/zstd 100 dump.zst"); 64 } else if (lammps_has_style(handle, "dump", "atom/gz")) { 65 lammps_command(handle, "dump d1 all atom/gz 100 dump.gz"); 66 } else if (lammps_config_has_gzip_support()) { 67 lammps_command(handle, "dump d1 all atom 100 dump.gz"); 68 } else { 69 lammps_command(handle, "dump d1 all atom 100 dump"); 70 } 71 lammps_close(handle); 72 return 0; 73 } 74 75----------------------- 76 77.. doxygenfunction:: lammps_version 78 :project: progguide 79 80----------------------- 81 82.. doxygenfunction:: lammps_get_os_info 83 :project: progguide 84 85----------------------- 86 87.. doxygenfunction:: lammps_config_has_mpi_support 88 :project: progguide 89 90----------------------- 91 92.. doxygenfunction:: lammps_config_has_gzip_support 93 :project: progguide 94 95----------------------- 96 97.. doxygenfunction:: lammps_config_has_png_support 98 :project: progguide 99 100----------------------- 101 102.. doxygenfunction:: lammps_config_has_jpeg_support 103 :project: progguide 104 105----------------------- 106 107.. doxygenfunction:: lammps_config_has_ffmpeg_support 108 :project: progguide 109 110----------------------- 111 112.. doxygenfunction:: lammps_config_has_exceptions 113 :project: progguide 114 115----------------------- 116 117.. doxygenfunction:: lammps_config_has_package 118 :project: progguide 119 120----------------------- 121 122.. doxygenfunction:: lammps_config_package_count 123 :project: progguide 124 125----------------------- 126 127.. doxygenfunction:: lammps_config_package_name 128 :project: progguide 129 130----------------------- 131 132.. doxygenfunction:: lammps_config_accelerator 133 :project: progguide 134 135----------------------- 136 137.. doxygenfunction:: lammps_has_gpu_device 138 :project: progguide 139 140----------------------- 141 142.. doxygenfunction:: lammps_get_gpu_device_info 143 :project: progguide 144 145----------------------- 146 147.. doxygenfunction:: lammps_has_style 148 :project: progguide 149 150----------------------- 151 152.. doxygenfunction:: lammps_style_count 153 :project: progguide 154 155----------------------- 156 157.. doxygenfunction:: lammps_style_name 158 :project: progguide 159 160----------------------- 161 162.. doxygenfunction:: lammps_has_id 163 :project: progguide 164 165----------------------- 166 167.. doxygenfunction:: lammps_id_count 168 :project: progguide 169 170----------------------- 171 172.. doxygenfunction:: lammps_id_name 173 :project: progguide 174 175