Files
lammps/doc/html/Library_atoms.html
2025-01-13 14:55:48 +00:00

272 lines
21 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>1.1.4. Per-atom properties &mdash; LAMMPS documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/sphinx-design.min.css" type="text/css" />
<link rel="stylesheet" href="_static/css/lammps.css" type="text/css" />
<link rel="shortcut icon" href="_static/lammps.ico"/>
<link rel="canonical" href="https://docs.lammps.org/Library_atoms.html" />
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script src="_static/jquery.js?v=5d32c60e"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="_static/documentation_options.js?v=5929fcd5"></script>
<script src="_static/doctools.js?v=9bcbadda"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="_static/design-tabs.js?v=f930bc37"></script>
<script async="async" src="_static/mathjax/es5/tex-mml-chtml.js?v=cadf963e"></script>
<script src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="1.1.5. Compute, fixes, variables" href="Library_objects.html" />
<link rel="prev" title="1.1.3. System properties" href="Library_properties.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="Manual.html">
<img src="_static/lammps-logo.png" class="logo" alt="Logo"/>
</a>
<div class="lammps_version">Version: <b>19 Nov 2024</b></div>
<div class="lammps_release">git info: </div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">User Guide</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="Intro.html">1. Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="Install.html">2. Install LAMMPS</a></li>
<li class="toctree-l1"><a class="reference internal" href="Build.html">3. Build LAMMPS</a></li>
<li class="toctree-l1"><a class="reference internal" href="Run_head.html">4. Run LAMMPS</a></li>
<li class="toctree-l1"><a class="reference internal" href="Commands.html">5. Commands</a></li>
<li class="toctree-l1"><a class="reference internal" href="Packages.html">6. Optional packages</a></li>
<li class="toctree-l1"><a class="reference internal" href="Speed.html">7. Accelerate performance</a></li>
<li class="toctree-l1"><a class="reference internal" href="Howto.html">8. Howto discussions</a></li>
<li class="toctree-l1"><a class="reference internal" href="Examples.html">9. Example scripts</a></li>
<li class="toctree-l1"><a class="reference internal" href="Tools.html">10. Auxiliary tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="Errors.html">11. Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Programmer Guide</span></p>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="Library.html">1. LAMMPS Library Interfaces</a><ul class="current">
<li class="toctree-l2 current"><a class="reference internal" href="Library.html#lammps-c-library-api">1.1. LAMMPS C Library API</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="Library_create.html">1.1.1. Creating or deleting a LAMMPS object</a></li>
<li class="toctree-l3"><a class="reference internal" href="Library_execute.html">1.1.2. Executing commands</a></li>
<li class="toctree-l3"><a class="reference internal" href="Library_properties.html">1.1.3. System properties</a></li>
<li class="toctree-l3 current"><a class="current reference internal" href="#">1.1.4. Per-atom properties</a></li>
<li class="toctree-l3"><a class="reference internal" href="Library_objects.html">1.1.5. Compute, fixes, variables</a></li>
<li class="toctree-l3"><a class="reference internal" href="Library_scatter.html">1.1.6. Scatter/gather operations</a></li>
<li class="toctree-l3"><a class="reference internal" href="Library_neighbor.html">1.1.7. Neighbor list access</a></li>
<li class="toctree-l3"><a class="reference internal" href="Library_config.html">1.1.8. Configuration information</a></li>
<li class="toctree-l3"><a class="reference internal" href="Library_utility.html">1.1.9. Utility functions</a></li>
<li class="toctree-l3"><a class="reference internal" href="Library_add.html">1.1.10. Extending the C API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="Library.html#lammps-python-apis">1.2. LAMMPS Python APIs</a></li>
<li class="toctree-l2"><a class="reference internal" href="Library.html#lammps-fortran-api">1.3. LAMMPS Fortran API</a></li>
<li class="toctree-l2"><a class="reference internal" href="Library.html#lammps-cplusplus-api">1.4. LAMMPS C++ API</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Python_head.html">2. Use Python with LAMMPS</a></li>
<li class="toctree-l1"><a class="reference internal" href="Modify.html">3. Modifying &amp; extending LAMMPS</a></li>
<li class="toctree-l1"><a class="reference internal" href="Developer.html">4. Information for Developers</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Command Reference</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="commands_list.html">Commands</a></li>
<li class="toctree-l1"><a class="reference internal" href="fixes.html">Fix Styles</a></li>
<li class="toctree-l1"><a class="reference internal" href="computes.html">Compute Styles</a></li>
<li class="toctree-l1"><a class="reference internal" href="pairs.html">Pair Styles</a></li>
<li class="toctree-l1"><a class="reference internal" href="bonds.html">Bond Styles</a></li>
<li class="toctree-l1"><a class="reference internal" href="angles.html">Angle Styles</a></li>
<li class="toctree-l1"><a class="reference internal" href="dihedrals.html">Dihedral Styles</a></li>
<li class="toctree-l1"><a class="reference internal" href="impropers.html">Improper Styles</a></li>
<li class="toctree-l1"><a class="reference internal" href="dumps.html">Dump Styles</a></li>
<li class="toctree-l1"><a class="reference internal" href="fix_modify_atc_commands.html">fix_modify AtC commands</a></li>
<li class="toctree-l1"><a class="reference internal" href="Bibliography.html">Bibliography</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="Manual.html">LAMMPS</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content style-external-links">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="Manual.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="Library.html"><span class="section-number">1. </span>LAMMPS Library Interfaces</a></li>
<li class="breadcrumb-item active"><span class="section-number">1.1.4. </span>Per-atom properties</li>
<li class="wy-breadcrumbs-aside">
<a href="https://www.lammps.org"><img src="_static/lammps-logo.png" width="64" height="16" alt="LAMMPS Homepage"></a> | <a href="Commands_all.html">Commands</a>
</li>
</ul><div class="rst-breadcrumbs-buttons" role="navigation" aria-label="Sequential page navigation">
<a href="Library_properties.html" class="btn btn-neutral float-left" title="1.1.3. System properties" accesskey="p"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="Library_objects.html" class="btn btn-neutral float-right" title="1.1.5. Compute, fixes, variables" accesskey="n">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<p><span class="math notranslate nohighlight">\(\renewcommand{\AA}{\text{Å}}\)</span></p>
<section id="per-atom-properties">
<h1><span class="section-number">1.1.4. </span>Per-atom properties<a class="headerlink" href="#per-atom-properties" title="Link to this heading"></a></h1>
<p>This section documents the following functions:</p>
<ul class="simple">
<li><p><a class="reference internal" href="#_CPPv428lammps_extract_atom_datatypePvPKc" title="lammps_extract_atom_datatype"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">lammps_extract_atom_datatype()</span></code></a></p></li>
<li><p><a class="reference internal" href="#_CPPv424lammps_extract_atom_sizePvPKci" title="lammps_extract_atom_size"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">lammps_extract_atom_size()</span></code></a></p></li>
<li><p><a class="reference internal" href="#_CPPv419lammps_extract_atomPvPKc" title="lammps_extract_atom"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">lammps_extract_atom()</span></code></a></p></li>
</ul>
<hr class="docutils" />
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv428lammps_extract_atom_datatypePvPKc">
<span id="_CPPv328lammps_extract_atom_datatypePvPKc"></span><span id="_CPPv228lammps_extract_atom_datatypePvPKc"></span><span id="lammps_extract_atom_datatype__voidP.cCP"></span><span class="target" id="library_8h_1aed36a77c70d91c9497b5eee075d18aab"></span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">lammps_extract_atom_datatype</span></span></span><span class="sig-paren">(</span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">handle</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">name</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv428lammps_extract_atom_datatypePvPKc" title="Link to this definition"></a><br /></dt>
<dd><p>Get data type of a LAMMPS per-atom property</p>
<p><div class="versionadded">
<p><span class="versionmodified added">Added in version 18Sep2020.</span></p>
</div>
<p>This function returns an integer that encodes the data type of the
per-atom property with the specified name. See
<code class="xref cpp cpp-enum docutils literal notranslate"><span class="pre">_LMP_DATATYPE_CONST</span></code> for valid values. Callers of
<a class="reference internal" href="#_CPPv419lammps_extract_atomPvPKc" title="lammps_extract_atom"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">lammps_extract_atom()</span></code></a> can use this information to decide how
to cast the <code class="docutils literal notranslate"><span class="pre">void</span> <span class="pre">*</span></code> pointer and access the data. In addition,
<a class="reference internal" href="#_CPPv424lammps_extract_atom_sizePvPKci" title="lammps_extract_atom_size"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">lammps_extract_atom_size()</span></code></a> can be used to get information
about the vector or array dimensions.</p>
</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>handle</strong> pointer to a previously created LAMMPS instance </p></li>
<li><p><strong>name</strong> string with the name of the extracted property </p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>integer constant encoding the data type of the property or -1 if not found. </p>
</dd>
</dl>
</dd></dl>
<hr class="docutils" />
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv424lammps_extract_atom_sizePvPKci">
<span id="_CPPv324lammps_extract_atom_sizePvPKci"></span><span id="_CPPv224lammps_extract_atom_sizePvPKci"></span><span id="lammps_extract_atom_size__voidP.cCP.i"></span><span class="target" id="library_8h_1a2e1f204c0e8b8fc3bde330e9fe94cff3"></span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">lammps_extract_atom_size</span></span></span><span class="sig-paren">(</span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">handle</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">name</span></span>, <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">type</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv424lammps_extract_atom_sizePvPKci" title="Link to this definition"></a><br /></dt>
<dd><p>Get dimension info of a LAMMPS per-atom property</p>
<p><div class="versionadded">
<p><span class="versionmodified added">Added in version 19Nov2024.</span></p>
</div>
<p>This function returns an integer with the size of the per-atom
property with the specified name. This allows to accurately determine
the size of the per-atom data vectors or arrays. For per-atom arrays,
the <em>type</em> argument is required to return either the number of rows or the
number of columns. It is ignored for per-atom vectors.</p>
<p>Callers of <a class="reference internal" href="#_CPPv419lammps_extract_atomPvPKc" title="lammps_extract_atom"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">lammps_extract_atom()</span></code></a> can use this information in
combination with the result from <a class="reference internal" href="#_CPPv428lammps_extract_atom_datatypePvPKc" title="lammps_extract_atom_datatype"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">lammps_extract_atom_datatype()</span></code></a>
to decide how to cast the <code class="docutils literal notranslate"><span class="pre">void</span> <span class="pre">*</span></code> pointer and access the data.</p>
</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>handle</strong> pointer to a previously created LAMMPS instance </p></li>
<li><p><strong>name</strong> string with the name of the extracted property </p></li>
<li><p><strong>type</strong> either LMP_SIZE_ROWS or LMP_SIZE_COLS if <em>name</em> refers to a per-atom array otherwise ignored </p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>integer with the size of the vector or array dimension or -1 </p>
</dd>
</dl>
</dd></dl>
<hr class="docutils" />
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv419lammps_extract_atomPvPKc">
<span id="_CPPv319lammps_extract_atomPvPKc"></span><span id="_CPPv219lammps_extract_atomPvPKc"></span><span id="lammps_extract_atom__voidP.cCP"></span><span class="target" id="library_8h_1ac7a2b3791b785a29e1cc383dec467819"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">lammps_extract_atom</span></span></span><span class="sig-paren">(</span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">handle</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">name</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv419lammps_extract_atomPvPKc" title="Link to this definition"></a><br /></dt>
<dd><p>Get pointer to a LAMMPS per-atom property.</p>
<p><p>This function returns a pointer to the location of per-atom properties (and
per-atom-type properties in the case of the mass keyword). Per-atom data is
distributed across sub-domains and thus MPI ranks. The returned pointer is cast
to <code class="docutils literal notranslate"><span class="pre">void</span> <span class="pre">*</span></code> and needs to be cast to a pointer of data type that the entity
represents. You can use the functions <a class="reference internal" href="#_CPPv428lammps_extract_atom_datatypePvPKc" title="lammps_extract_atom_datatype"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">lammps_extract_atom_datatype()</span></code></a>
and <a class="reference internal" href="#_CPPv424lammps_extract_atom_sizePvPKci" title="lammps_extract_atom_size"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">lammps_extract_atom_size()</span></code></a> to determine data type, dimensions and
sizes of the storage pointed to by the returned pointer.</p>
<p>A table with supported keywords is included in the documentation of the
<a class="reference internal" href="Classes_atom.html#_CPPv4N9LAMMPS_NS4Atom7extractEPKc" title="LAMMPS_NS::Atom::extract"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">Atom::extract()</span></code></a> function.</p>
</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>The pointers returned by this function are generally not persistent
since per-atom data may be re-distributed, re-allocated, and
re-ordered at every re-neighboring operation.</p>
</div>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>handle</strong> pointer to a previously created LAMMPS instance </p></li>
<li><p><strong>name</strong> string with the name of the extracted property </p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>pointer (cast to <code class="docutils literal notranslate"><span class="pre">void</span> <span class="pre">*</span></code>) to the location of the requested data or <code class="docutils literal notranslate"><span class="pre">NULL</span></code> if not found. </p>
</dd>
</dl>
</dd></dl>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="Library_properties.html" class="btn btn-neutral float-left" title="1.1.3. System properties" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="Library_objects.html" class="btn btn-neutral float-right" title="1.1.5. Compute, fixes, variables" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2003-2025 Sandia Corporation.</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(false);
});
</script>
</body>
</html>