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

808 lines
69 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>fix electrode/conp command &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/fix_electrode.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="fix electron/stopping command" href="fix_electron_stopping.html" />
<link rel="prev" title="fix ehex command" href="fix_ehex.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>
<li class="toctree-l1"><a class="reference internal" href="Library.html">1. LAMMPS Library Interfaces</a></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 class="current">
<li class="toctree-l1"><a class="reference internal" href="commands_list.html">Commands</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="fixes.html">Fix Styles</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="fix_accelerate_cos.html">fix accelerate/cos command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_acks2_reaxff.html">fix acks2/reaxff command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_adapt.html">fix adapt command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_adapt_fep.html">fix adapt/fep command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_add_heat.html">fix add/heat command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_addforce.html">fix addforce command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_addtorque.html">fix addtorque command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_alchemy.html">fix alchemy command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_amoeba_bitorsion.html">fix amoeba/bitorsion command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_amoeba_pitorsion.html">fix amoeba/pitorsion command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_append_atoms.html">fix append/atoms command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_atc.html">fix atc command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_atom_swap.html">fix atom/swap command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_ave_atom.html">fix ave/atom command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_ave_chunk.html">fix ave/chunk command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_ave_correlate.html">fix ave/correlate command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_ave_correlate_long.html">fix ave/correlate/long command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_ave_grid.html">fix ave/grid command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_ave_histo.html">fix ave/histo command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_ave_histo.html#fix-ave-histo-weight-command">fix ave/histo/weight command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_ave_spatial.html">fix ave/spatial command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_ave_spatial_sphere.html">fix ave/spatial/sphere command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_ave_time.html">fix ave/time command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_aveforce.html">fix aveforce command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_balance.html">fix balance command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_bocs.html">fix bocs command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_bond_break.html">fix bond/break command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_bond_create.html">fix bond/create command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_bond_create.html#fix-bond-create-angle-command">fix bond/create/angle command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_bond_react.html">fix bond/react command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_bond_swap.html">fix bond/swap command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_box_relax.html">fix box/relax command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_brownian.html">fix brownian command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_brownian.html#fix-brownian-sphere-command">fix brownian/sphere command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_brownian.html#fix-brownian-asphere-command">fix brownian/asphere command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_charge_regulation.html">fix charge/regulation command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_cmap.html">fix cmap command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_colvars.html">fix colvars command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_controller.html">fix controller command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_damping_cundall.html">fix damping/cundall command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_deform.html">fix deform command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_deform_pressure.html">fix deform/pressure command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_deposit.html">fix deposit command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_dpd_energy.html">fix dpd/energy command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_dpd_source.html">fix edpd/source command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_dpd_source.html#fix-tdpd-source-command">fix tdpd/source command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_drag.html">fix drag command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_drude.html">fix drude command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_drude_transform.html">fix drude/transform/direct command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_drude_transform.html#fix-drude-transform-inverse-command">fix drude/transform/inverse command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_dt_reset.html">fix dt/reset command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_efield.html">fix efield command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_efield.html#fix-efield-tip4p-command">fix efield/tip4p command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_ehex.html">fix ehex command</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">fix electrode/conp command</a></li>
<li class="toctree-l2"><a class="reference internal" href="#fix-electrode-conq-command">fix electrode/conq command</a></li>
<li class="toctree-l2"><a class="reference internal" href="#fix-electrode-thermo-command">fix electrode/thermo command</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#syntax">Syntax</a></li>
<li class="toctree-l3"><a class="reference internal" href="#examples">Examples</a></li>
<li class="toctree-l3"><a class="reference internal" href="#description">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#restart-fix-modify-output-run-start-stop-minimize-info">Restart, fix_modify, output, run start/stop, minimize info</a></li>
<li class="toctree-l3"><a class="reference internal" href="#restrictions">Restrictions</a></li>
<li class="toctree-l3"><a class="reference internal" href="#default">Default</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="fix_electron_stopping.html">fix electron/stopping command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_electron_stopping.html#fix-electron-stopping-fit-command">fix electron/stopping/fit command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_enforce2d.html">fix enforce2d command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_eos_cv.html">fix eos/cv command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_eos_table.html">fix eos/table command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_eos_table_rx.html">fix eos/table/rx command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_evaporate.html">fix evaporate command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_external.html">fix external command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_ffl.html">fix ffl command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_filter_corotate.html">fix filter/corotate command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_flow_gauss.html">fix flow/gauss command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_freeze.html">fix freeze command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_gcmc.html">fix gcmc command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_gld.html">fix gld command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_gle.html">fix gle command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_gravity.html">fix gravity command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_grem.html">fix grem command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_halt.html">fix halt command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_heat.html">fix heat command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_heat_flow.html">fix heat/flow command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_hyper_global.html">fix hyper/global command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_hyper_local.html">fix hyper/local command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_imd.html">fix imd command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_indent.html">fix indent command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_ipi.html">fix ipi command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_langevin.html">fix langevin command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_langevin_drude.html">fix langevin/drude command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_langevin_eff.html">fix langevin/eff command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_langevin_spin.html">fix langevin/spin command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_lb_fluid.html">fix lb/fluid command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_lb_momentum.html">fix lb/momentum command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_lb_viscous.html">fix lb/viscous command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_lineforce.html">fix lineforce command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_manifoldforce.html">fix manifoldforce command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_mdi_qm.html">fix mdi/qm command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_mdi_qmmm.html">fix mdi/qmmm command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_meso_move.html">fix meso/move command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_mol_swap.html">fix mol/swap command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_momentum.html">fix momentum command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_momentum.html#fix-momentum-chunk-command">fix momentum/chunk command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_move.html">fix move command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_msst.html">fix msst command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_mvv_dpd.html">fix mvv/dpd command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_mvv_dpd.html#fix-mvv-edpd-command">fix mvv/edpd command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_mvv_dpd.html#fix-mvv-tdpd-command">fix mvv/tdpd command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_neb.html">fix neb command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_neb_spin.html">fix neb/spin command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nh.html">fix nvt command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nh.html#fix-npt-command">fix npt command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nh.html#fix-nph-command">fix nph command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nh_eff.html">fix nvt/eff command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nh_eff.html#fix-npt-eff-command">fix npt/eff command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nh_eff.html#fix-nph-eff-command">fix nph/eff command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nh_uef.html">fix nvt/uef command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nh_uef.html#fix-npt-uef-command">fix npt/uef command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nonaffine_displacement.html">fix nonaffine/displacement command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nph_asphere.html">fix nph/asphere command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nph_body.html">fix nph/body command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nph_sphere.html">fix nph/sphere command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nphug.html">fix nphug command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_npt_asphere.html">fix npt/asphere command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_npt_body.html">fix npt/body command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_npt_cauchy.html">fix npt/cauchy command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_npt_sphere.html">fix npt/sphere command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_numdiff.html">fix numdiff command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_numdiff_virial.html">fix numdiff/virial command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nve.html">fix nve command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nve_asphere.html">fix nve/asphere command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nve_asphere_noforce.html">fix nve/asphere/noforce command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nve_awpmd.html">fix nve/awpmd command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nve_body.html">fix nve/body command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nve_bpm_sphere.html">fix nve/bpm/sphere command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nve_dot.html">fix nve/dot command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nve_dotc_langevin.html">fix nve/dotc/langevin command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nve_eff.html">fix nve/eff command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nve_limit.html">fix nve/limit command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nve_line.html">fix nve/line command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nve_manifold_rattle.html">fix nve/manifold/rattle command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nve_noforce.html">fix nve/noforce command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nve_sphere.html">fix nve/sphere command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nve_spin.html">fix nve/spin command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nve_tri.html">fix nve/tri command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nvk.html">fix nvk command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nvt_asphere.html">fix nvt/asphere command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nvt_body.html">fix nvt/body command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nvt_manifold_rattle.html">fix nvt/manifold/rattle command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nvt_sllod.html">fix nvt/sllod command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nvt_sllod_eff.html">fix nvt/sllod/eff command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_nvt_sphere.html">fix nvt/sphere command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_oneway.html">fix oneway command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_orient.html">fix orient/fcc command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_orient.html#fix-orient-bcc-command">fix orient/bcc command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_orient_eco.html">fix orient/eco command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_pafi.html">fix pafi command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_pair.html">fix pair command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_phonon.html">fix phonon command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_pimd.html">fix pimd/langevin command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_pimd.html#fix-pimd-nvt-command">fix pimd/nvt command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_pimdb.html">fix pimdb/langevin command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_pimdb.html#fix-pimdb-nvt-command">fix pimdb/nvt command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_planeforce.html">fix planeforce command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_plumed.html">fix plumed command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_poems.html">fix poems command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_polarize.html">fix polarize/bem/gmres command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_polarize.html#fix-polarize-bem-icc-command">fix polarize/bem/icc command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_polarize.html#fix-polarize-functional-command">fix polarize/functional command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_pour.html">fix pour command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_precession_spin.html">fix precession/spin command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_press_berendsen.html">fix press/berendsen command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_press_langevin.html">fix press/langevin command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_print.html">fix print command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_propel_self.html">fix propel/self command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_property_atom.html">fix property/atom command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_python_invoke.html">fix python/invoke command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_python_move.html">fix python/move command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_qbmsst.html">fix qbmsst command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_qeq.html">fix qeq/point command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_qeq.html#fix-qeq-shielded-command">fix qeq/shielded command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_qeq.html#fix-qeq-slater-command">fix qeq/slater command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_qeq.html#fix-qeq-ctip-command">fix qeq/ctip command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_qeq.html#fix-qeq-dynamic-command">fix qeq/dynamic command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_qeq.html#fix-qeq-fire-command">fix qeq/fire command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_qeq_comb.html">fix qeq/comb command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_qeq_reaxff.html">fix qeq/reaxff command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_qmmm.html">fix qmmm command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_qtb.html">fix qtb command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_qtpie_reaxff.html">fix qtpie/reaxff command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_reaxff_bonds.html">fix reaxff/bonds command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_reaxff_species.html">fix reaxff/species command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_recenter.html">fix recenter command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_restrain.html">fix restrain command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_rheo.html">fix rheo command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_rheo_oxidation.html">fix rheo/oxidation command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_rheo_pressure.html">fix rheo/pressure command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_rheo_thermal.html">fix rheo/thermal command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_rheo_viscosity.html">fix rheo/viscosity command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_rhok.html">fix rhok command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_rigid.html">fix rigid command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_rigid.html#fix-rigid-nve-command">fix rigid/nve command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_rigid.html#fix-rigid-nvt-command">fix rigid/nvt command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_rigid.html#fix-rigid-npt-command">fix rigid/npt command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_rigid.html#fix-rigid-nph-command">fix rigid/nph command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_rigid.html#fix-rigid-small-command">fix rigid/small command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_rigid.html#fix-rigid-nve-small-command">fix rigid/nve/small command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_rigid.html#fix-rigid-nvt-small-command">fix rigid/nvt/small command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_rigid.html#fix-rigid-npt-small-command">fix rigid/npt/small command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_rigid.html#fix-rigid-nph-small-command">fix rigid/nph/small command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_rigid_meso.html">fix rigid/meso command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_rx.html">fix rx command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_saed_vtk.html">fix saed/vtk command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_setforce.html">fix setforce command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_setforce.html#fix-setforce-spin-command">fix setforce/spin command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_sgcmc.html">fix sgcmc command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_shake.html">fix shake command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_shake.html#fix-rattle-command">fix rattle command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_shardlow.html">fix shardlow command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_smd.html">fix smd command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_smd_adjust_dt.html">fix smd/adjust_dt command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_smd_integrate_tlsph.html">fix smd/integrate_tlsph command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_smd_integrate_ulsph.html">fix smd/integrate_ulsph command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_smd_move_triangulated_surface.html">fix smd/move_tri_surf command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_smd_setvel.html">fix smd/setvel command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_smd_wall_surface.html">fix smd/wall_surface command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_sph.html">fix sph command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_sph_stationary.html">fix sph/stationary command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_spring.html">fix spring command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_spring_chunk.html">fix spring/chunk command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_spring_rg.html">fix spring/rg command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_spring_self.html">fix spring/self command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_srd.html">fix srd command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_store_force.html">fix store/force command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_store_state.html">fix store/state command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_temp_berendsen.html">fix temp/berendsen command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_temp_csvr.html">fix temp/csvr command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_temp_csvr.html#fix-temp-csld-command">fix temp/csld command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_temp_rescale.html">fix temp/rescale command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_temp_rescale_eff.html">fix temp/rescale/eff command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_tfmc.html">fix tfmc command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_tgnh_drude.html">fix tgnvt/drude command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_tgnh_drude.html#fix-tgnpt-drude-command">fix tgnpt/drude command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_thermal_conductivity.html">fix thermal/conductivity command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_ti_spring.html">fix ti/spring command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_tmd.html">fix tmd command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_ttm.html">fix ttm command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_ttm.html#fix-ttm-grid-command">fix ttm/grid command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_ttm.html#fix-ttm-mod-command">fix ttm/mod command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_tune_kspace.html">fix tune/kspace command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_vector.html">fix vector command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_viscosity.html">fix viscosity command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_viscous.html">fix viscous command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_viscous_sphere.html">fix viscous/sphere command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_wall.html">fix wall/lj93 command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_wall.html#fix-wall-lj126-command">fix wall/lj126 command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_wall.html#fix-wall-lj1043-command">fix wall/lj1043 command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_wall.html#fix-wall-colloid-command">fix wall/colloid command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_wall.html#fix-wall-harmonic-command">fix wall/harmonic command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_wall.html#fix-wall-lepton-command">fix wall/lepton command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_wall.html#fix-wall-morse-command">fix wall/morse command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_wall.html#fix-wall-table-command">fix wall/table command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_wall_body_polygon.html">fix wall/body/polygon command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_wall_body_polyhedron.html">fix wall/body/polyhedron command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_wall_ees.html">fix wall/ees command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_wall_ees.html#fix-wall-region-ees-command">fix wall/region/ees command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_wall_flow.html">fix wall/flow command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_wall_gran.html">fix wall/gran command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_wall_gran_region.html">fix wall/gran/region command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_wall_piston.html">fix wall/piston command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_wall_reflect.html">fix wall/reflect command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_wall_reflect_stochastic.html">fix wall/reflect/stochastic command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_wall_region.html">fix wall/region command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_wall_srd.html">fix wall/srd command</a></li>
<li class="toctree-l2"><a class="reference internal" href="fix_widom.html">fix widom command</a></li>
</ul>
</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="fixes.html">Fix Styles</a></li>
<li class="breadcrumb-item active">fix electrode/conp command</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="fix_ehex.html" class="btn btn-neutral float-left" title="fix ehex command" accesskey="p"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="fix_electron_stopping.html" class="btn btn-neutral float-right" title="fix electron/stopping command" 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="fix-electrode-conp-command">
<span id="index-5"></span><span id="index-4"></span><span id="index-3"></span><span id="index-2"></span><span id="index-1"></span><span id="index-0"></span><h1>fix electrode/conp command<a class="headerlink" href="#fix-electrode-conp-command" title="Link to this heading"></a></h1>
<p>Accelerator Variant: <em>electrode/conp/intel</em></p>
</section>
<section id="fix-electrode-conq-command">
<h1>fix electrode/conq command<a class="headerlink" href="#fix-electrode-conq-command" title="Link to this heading"></a></h1>
<p>Accelerator Variant: <em>electrode/conq/intel</em></p>
</section>
<section id="fix-electrode-thermo-command">
<h1>fix electrode/thermo command<a class="headerlink" href="#fix-electrode-thermo-command" title="Link to this heading"></a></h1>
<p>Accelerator Variant: <em>electrode/thermo/intel</em></p>
<section id="syntax">
<h2>Syntax<a class="headerlink" href="#syntax" title="Link to this heading"></a></h2>
<div class="highlight-LAMMPS notranslate"><div class="highlight"><pre><span></span><span class="k">fix </span><span class="nv nv-Identifier">ID</span><span class="w"> </span><span class="nv nv-Identifier">group-ID</span><span class="w"> </span><span class="n">style</span><span class="w"> </span><span class="n">args</span><span class="w"> </span><span class="n">keyword</span><span class="w"> </span><span class="n">value</span><span class="w"> </span><span class="n">...</span>
</pre></div>
</div>
<ul>
<li><p>ID, group-ID are documented in <a class="reference internal" href="fix.html"><span class="doc">fix</span></a> command</p></li>
<li><p>style = <em>electrode/conp</em> or <em>electrode/conq</em> or <em>electrode/thermo</em></p></li>
<li><p>args = arguments used by a particular style</p>
<pre class="literal-block"><em>electrode/conp</em> args = potential eta
<em>electrode/conq</em> args = charge eta
<em>electrode/thermo</em> args = potential eta <em>temp</em> values
potential = electrode potential
charge = electrode charge
eta = reciprocal width of electrode charge smearing (can be NULL if eta keyword is used)
<em>temp</em> values = T_v tau_v rng_v
T_v = temperature of thermo-potentiostat
tau_v = time constant of thermo-potentiostat
rng_v = integer used to initialize random number generator</pre>
</li>
<li><p>zero or more keyword/value pairs may be appended</p></li>
<li><p>keyword = <em>algo</em> or <em>symm</em> or <em>couple</em> or <em>etypes</em> or <em>ffield</em> or <em>write_mat</em> or <em>write_inv</em> or <em>read_mat</em> or <em>read_inv</em> or <em>qtotal</em> or <em>eta</em></p></li>
</ul>
<pre class="literal-block"><em>algo</em> values = <em>mat_inv</em> or <em>mat_cg</em> tol or <em>cg</em> tol
specify the algorithm used to compute the electrode charges
<em>symm</em> value = <em>on</em> or <em>off</em>
turn on/off charge neutrality constraint for the electrodes
<em>couple</em> values = group-ID val
group-ID = group of atoms treated as additional electrode
val = electric potential or charge on this electrode
<em>etypes</em> value = <em>on</em> or <em>off</em>
turn on/off type-based optimized neighbor lists (electrode and electrolyte types may not overlap)
<em>ffield</em> value = <em>on</em> or <em>off</em>
turn on/off finite-field implementation
<em>write_mat</em> value = filename
filename = file to which to write elastance matrix
<em>write_inv</em> value = filename
filename = file to which to write inverted matrix
<em>read_mat</em> value = filename
filename = file from which to read elastance matrix
<em>read_inv</em> value = filename
filename = file from which to read inverted matrix
<em>qtotal</em> value = number or <em>v_</em> equal-style variable
add overall potential so that all electrode charges add up to <em>qtotal</em>
<em>eta</em> value = d_propname
d_propname = a custom double vector defined via fix property/atom</pre>
</section>
<section id="examples">
<h2>Examples<a class="headerlink" href="#examples" title="Link to this heading"></a></h2>
<div class="highlight-LAMMPS notranslate"><div class="highlight"><pre><span></span><span class="k">fix </span><span class="nv nv-Identifier">fxconp</span><span class="w"> </span><span class="nv nv-Identifier">bot</span><span class="w"> </span><span class="n">electrode</span><span class="o">/</span><span class="n">conp</span><span class="w"> </span><span class="o">-</span><span class="m">1.0</span><span class="w"> </span><span class="m">1.805</span><span class="w"> </span><span class="n">couple</span><span class="w"> </span><span class="n">top</span><span class="w"> </span><span class="m">1.0</span><span class="w"> </span><span class="n">couple</span><span class="w"> </span><span class="n">ref</span><span class="w"> </span><span class="m">0.0</span><span class="w"> </span><span class="n">write_inv</span><span class="w"> </span><span class="n">inv.csv</span><span class="w"> </span><span class="n">symm</span><span class="w"> </span><span class="n">on</span>
<span class="k">fix </span><span class="nv nv-Identifier">fxconp</span><span class="w"> </span><span class="nv nv-Identifier">electrodes</span><span class="w"> </span><span class="n">electrode</span><span class="o">/</span><span class="n">conq</span><span class="w"> </span><span class="m">0.0</span><span class="w"> </span><span class="m">1.805</span><span class="w"> </span><span class="n">algo</span><span class="w"> </span><span class="n">cg</span><span class="w"> </span><span class="m">1e-5</span>
<span class="k">fix </span><span class="nv nv-Identifier">fxconp</span><span class="w"> </span><span class="nv nv-Identifier">bot</span><span class="w"> </span><span class="n">electrode</span><span class="o">/</span><span class="n">thermo</span><span class="w"> </span><span class="o">-</span><span class="m">1.0</span><span class="w"> </span><span class="m">1.805</span><span class="w"> </span><span class="n">temp</span><span class="w"> </span><span class="m">298</span><span class="w"> </span><span class="m">100</span><span class="w"> </span><span class="n">couple</span><span class="w"> </span><span class="n">top</span><span class="w"> </span><span class="m">1.0</span>
</pre></div>
</div>
</section>
<section id="description">
<h2>Description<a class="headerlink" href="#description" title="Link to this heading"></a></h2>
<p>The <em>electrode</em> fixes implement the constant potential method (CPM)
(<a class="reference internal" href="#siepmann"><span class="std std-ref">Siepmann</span></a>, <a class="reference internal" href="#reed3"><span class="std std-ref">Reed</span></a>), and modern variants,
to accurately model electrified, conductive electrodes. This is
primarily useful for studying electrode-electrolyte interfaces,
especially at high potential differences or ionicities, with non-planar
electrodes such as nanostructures or nanopores, and to study dynamic
phenomena such as charging or discharging time scales or conductivity or
ionic diffusivities.</p>
<p>Each <em>electrode</em> fix allows users to set additional electrostatic
relationships between the specified groups which model useful
electrostatic configurations:</p>
<ul class="simple">
<li><p><em>electrode/conp</em> sets potentials or potential differences between electrodes</p>
<ul>
<li><p>(resulting in changing electrode total charges)</p></li>
</ul>
</li>
<li><p><em>electrode/conq</em> sets the total charge on each electrode</p>
<ul>
<li><p>(resulting in changing electrode potentials)</p></li>
</ul>
</li>
<li><p><em>electrode/thermo</em> sets a thermopotentiostat
<a class="reference internal" href="#deissenbeck"><span class="std std-ref">(Deissenbeck)</span></a> between two electrodes</p>
<ul>
<li><p>(resulting in changing charges and potentials with appropriate
average potential difference and thermal variance)</p></li>
</ul>
</li>
</ul>
<p>The first group-ID provided to each fix specifies the first electrode
group, and more group(s) are added using the <em>couple</em> keyword for each
additional group. While <em>electrode/thermo</em> only accepts two groups,
<em>electrode/conp</em> and <em>electrode/conq</em> accept any number of groups, up to
LAMMPSs internal restrictions (see Restrictions below). Electrode
groups must not overlap, i.e. the fix will issue an error if any
particle is detected to belong to at least two electrode groups.</p>
<p>CPM involves updating charges on groups of electrode particles, per time
step, so that the systems total energy is minimized with respect to
those charges. From basic electrostatics, this is equivalent to making
each group conductive, or imposing an equal electrostatic potential on
every particle in the same group (hence the name CPM). The charges are
usually modelled as a Gaussian distribution to make the charge-charge
interaction matrix invertible (<a class="reference internal" href="#gingrich"><span class="std std-ref">Gingrich</span></a>). The keyword
<em>eta</em> specifies the distributions width in units of inverse length.</p>
<div class="versionadded">
<p><span class="versionmodified added">Added in version 22Dec2022.</span></p>
</div>
<p>Three algorithms are available to minimize the energy, varying in how
matrices are pre-calculated before a run to provide computational
speedup. These algorithms can be selected using the keyword <em>algo</em>:</p>
<ul class="simple">
<li><p><em>algo mat_inv</em> pre-calculates the capacitance matrix and obtains the
charge configuration in one matrix-vector calculation per time step</p></li>
<li><p><em>algo mat_cg</em> pre-calculates the elastance matrix (inverse of
capacitance matrix) and obtains the charge configuration using a
conjugate gradient solver in multiple matrix-vector calculations per
time step</p></li>
<li><p><em>algo cg</em> does not perform any pre-calculation and obtains the charge
configuration using a conjugate gradient solver and multiple
calculations of the electric potential per time step.</p></li>
</ul>
<p>For both <em>cg</em> methods, the command must specify the conjugate gradient
tolerance. <em>fix electrode/thermo</em> currently only supports the <em>mat_inv</em>
algorithm.</p>
<p>The keyword <em>symm</em> can be set <em>on</em> (or <em>off</em>) to turn on (or turn off)
the capacitance matrix constraint that sets total electrode charge to be
zero. This has slightly different effects for each <em>fix electrode</em>
variant. For <em>fix electrode/conp</em>, with <em>symm off</em>, the potentials
specified are absolute potentials, but the charge configurations
satisfying them may add up to an overall non-zero, varying charge for
the electrodes (and thus the simulation box). With <em>symm on</em>, the total
charge over all electrode groups is constrained to zero, and potential
differences rather than absolute potentials are the physically relevant
quantities.</p>
<p>For <em>fix electrode/conq</em>, with <em>symm off</em>, overall neutrality is
explicitly obeyed or violated by the user input (which is not
checked!). With <em>symm on</em>, overall neutrality is ensured by ignoring the
user-input charge for the last listed electrode (instead, its charge
will always be minus the total sum of all other electrode charges). For
<em>fix electrode/thermo</em>, overall neutrality is always automatically
imposed for any setting of <em>symm</em>, but <em>symm on</em> allows finite-field
mode (<em>ffield on</em>, described below) for faster simulations.</p>
<p>For all three fixes, any potential (or charge for <em>conq</em>) can be
specified as an equal-style variable prefixed with “v_”. For example,
the following code will ramp the potential difference between electrodes
from 0.0V to 2.0V over the course of the simulation:</p>
<div class="highlight-LAMMPS notranslate"><div class="highlight"><pre><span></span><span class="k">fix </span><span class="nv nv-Identifier">fxconp</span><span class="w"> </span><span class="nv nv-Identifier">bot</span><span class="w"> </span><span class="n">electrode</span><span class="o">/</span><span class="n">conp</span><span class="w"> </span><span class="m">0.0</span><span class="w"> </span><span class="m">1.805</span><span class="w"> </span><span class="n">couple</span><span class="w"> </span><span class="n">top</span><span class="w"> </span><span class="n">v_v</span><span class="w"> </span><span class="n">symm</span><span class="w"> </span><span class="n">on</span>
<span class="k">variable </span><span class="nv nv-Identifier">v</span><span class="w"> </span><span class="n">equal</span><span class="w"> </span><span class="n">ramp</span><span class="nv">(0.0, 2.0)</span>
</pre></div>
</div>
<p>Note that these fixes only parse their supplied variable name when
starting a run, and so these fixes will accept equal-style variables
defined <em>after</em> the fix definition, including variables dependent on the
fixs own output. This is useful, for example, in the fixs internal
finite-field commands (see below). For an advanced example of this see
the in.conq2 input file in the directory
<code class="docutils literal notranslate"><span class="pre">examples/PACKAGES/electrode/graph-il</span></code>.</p>
<p>This fix necessitates the use of a long range solver that calculates and
provides the matrix of electrode-electrode interactions and a vector of
electrode-electrolyte interactions. The Kspace styles
<em>ewald/electrode</em>, <em>pppm/electrode</em> and <em>pppm/electrode/intel</em> are
created specifically for this task <a class="reference internal" href="#ahrens-iwers"><span class="std std-ref">(Ahrens-Iwers)</span></a>.</p>
<p>For systems with non-periodic boundaries in one or two directions dipole
corrections are available with the <a class="reference internal" href="kspace_modify.html"><span class="doc">kspace_modify</span></a>.
For ewald/electrode a two-dimensional Ewald summation <a class="reference internal" href="#hu"><span class="std std-ref">(Hu)</span></a>
can be used by setting “slab ew2d”:</p>
<div class="highlight-LAMMPS notranslate"><div class="highlight"><pre><span></span><span class="k">kspace_modify</span><span class="w"> </span><span class="n">slab</span><span class="w"> </span><span class="o">&lt;</span><span class="n">slab_factor</span><span class="o">&gt;</span>
<span class="k">kspace_modify</span><span class="w"> </span><span class="n">wire</span><span class="w"> </span><span class="o">&lt;</span><span class="n">wire_factor</span><span class="o">&gt;</span>
<span class="k">kspace_modify</span><span class="w"> </span><span class="n">slab</span><span class="w"> </span><span class="n">ew2d</span>
</pre></div>
</div>
<p>Two implementations for the calculation of the elastance matrix are
available with pppm and can be selected using the <em>amat onestep/twostep</em>
keyword. <em>onestep</em> is the default; <em>twostep</em> can be faster for large
electrodes and a moderate mesh size but requires more memory.</p>
<div class="highlight-LAMMPS notranslate"><div class="highlight"><pre><span></span><span class="k">kspace_modify</span><span class="w"> </span><span class="n">amat</span><span class="w"> </span><span class="n">onestep</span><span class="o">/</span><span class="n">twostep</span>
</pre></div>
</div>
<p>For all versions of the fix, the keyword-value <em>ffield on</em> enables the
finite-field mode (<a class="reference internal" href="#dufils"><span class="std std-ref">Dufils</span></a>, <a class="reference internal" href="#tee"><span class="std std-ref">Tee</span></a>), which uses
an electric field across a periodic cell instead of non-periodic
boundary conditions to impose a potential difference between the two
electrodes bounding the cell. The fix (with name <em>fix-ID</em>) detects which
of the two electrodes is “on top” (has the larger maximum <em>z</em>-coordinate
among all particles). Assuming the first electrode group is on top, it
then issues the following commands internally:</p>
<div class="highlight-LAMMPS notranslate"><div class="highlight"><pre><span></span><span class="k">variable </span><span class="nv nv-Identifier">fix-ID_ffield_zfield</span><span class="w"> </span><span class="n">equal</span><span class="w"> </span><span class="nv">(f_fix-ID[2]-f_fix-ID[1])</span><span class="o">/</span><span class="n">lz</span>
<span class="n">efield</span><span class="w"> </span><span class="n">fix</span><span class="o">-</span><span class="n">ID_efield</span><span class="w"> </span><span class="n">all</span><span class="w"> </span><span class="n">efield</span><span class="w"> </span><span class="m">0.0</span><span class="w"> </span><span class="m">0.0</span><span class="w"> </span><span class="n">v_fix</span><span class="o">-</span><span class="n">ID_ffield_zfield</span>
</pre></div>
</div>
<p>which implements the required electric field as the potential difference
divided by cell length. The internal commands use variable so that the
electric field will correctly vary with changing potentials in the
correct way (for example with equal-style potential difference or with
<em>fix electrode/conq</em>). This keyword requires two electrodes and will
issue an error with any other number of electrodes. This keyword
requires electroneutrality to be imposed (<em>symm on</em>) and will issue an
error otherwise.</p>
<div class="versionchanged">
<p><span class="versionmodified changed">Changed in version 22Dec2022.</span></p>
</div>
<p>For all versions of the fix, the keyword-value <em>etypes on</em> enables
type-based optimized neighbor lists. With this feature enabled, LAMMPS
provides the fix with an occasional neighbor list restricted to
electrode-electrode interactions for calculating the electrode matrix,
and a perpetual neighbor list restricted to electrode-electrolyte
interactions for calculating the electrode potentials, using particle
types to list only desired interactions, and typically resulting in
510% less computational time. Without this feature the fix will
simply use the active pair styles neighbor list. This feature cannot
be enabled if any electrode particle has the same type as any
electrolyte particle (which would be unusual in a typical simulation)
and the fix will issue an error in that case.</p>
<div class="versionadded">
<p><span class="versionmodified added">Added in version 17Apr2024.</span></p>
</div>
<p>The keyword <em>qtotal</em> causes <em>fix electrode/conp</em> and <em>fix
electrode/thermo</em> 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 <em>qtotal -2</em> would cause the total electrode charge to be -2, so
that the simulation box remains overall electroneutral. Since <em>fix
electrode/conq</em> constrains the total charges of individual electrodes,
and since <em>symm on</em> constrains the total charge of all electrodes to be
zero, either option is incompatible with the <em>qtotal</em> keyword (even if
<em>qtotal</em> is set to zero).</p>
<div class="versionadded">
<p><span class="versionmodified added">Added in version 17Apr2024.</span></p>
</div>
<p>The keyword <em>eta</em> 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 <em>ghost on</em> option.</p>
</section>
<section id="restart-fix-modify-output-run-start-stop-minimize-info">
<h2>Restart, fix_modify, output, run start/stop, minimize info<a class="headerlink" href="#restart-fix-modify-output-run-start-stop-minimize-info" title="Link to this heading"></a></h2>
<p>This fix currently does not write any information to restart files.</p>
<p>The <em>fix_modify tf</em> option enables the Thomas-Fermi metallicity model
(<a class="reference internal" href="#scalfi"><span class="std std-ref">Scalfi</span></a>) and allows parameters to be set for each atom type.</p>
<div class="highlight-LAMMPS notranslate"><div class="highlight"><pre><span></span><span class="k">fix_modify </span><span class="nv nv-Identifier">ID</span><span class="w"> </span><span class="n">tf</span><span class="w"> </span><span class="n">type</span><span class="w"> </span><span class="n">length</span><span class="w"> </span><span class="n">voronoi</span>
</pre></div>
</div>
<p>If this option is used, these two parameters must be set for
all atom types of the electrode:</p>
<ul class="simple">
<li><p><cite>tf</cite> is the Thomas-Fermi length <span class="math notranslate nohighlight">\(l_{TF}\)</span></p></li>
<li><p><cite>voronoi</cite> is the Voronoi volume per atom in units of length cubed</p></li>
</ul>
<p>Different types may have different <cite>tf</cite> and <cite>voronoi</cite> values.
The following self-energy term is then added for all electrode atoms:</p>
<div class="math notranslate nohighlight">
\[A_{ii} += \frac{1}{4 \pi \epsilon_0} \times \frac{4 \pi l_{TF}^2}{\mathrm{Voronoi volume}}\]</div>
<p>The <em>fix_modify timer</em> option turns on (off) additional timer outputs in the log
file, for code developers to track optimization.</p>
<div class="highlight-LAMMPS notranslate"><div class="highlight"><pre><span></span><span class="k">fix_modify </span><span class="nv nv-Identifier">ID</span><span class="w"> </span><span class="n">timer</span><span class="w"> </span><span class="n">on</span><span class="o">/</span><span class="n">off</span>
</pre></div>
</div>
<hr class="docutils" />
<p>These fixes compute a global (extensive) scalar, a global (intensive)
vector, and a global array, which can be accessed by various
<a class="reference internal" href="Howto_output.html"><span class="doc">output commands</span></a>.</p>
<p>The global scalar outputs the energy added to the system by this fix,
which is the negative of the total charge on each electrode multiplied
by that electrodes potential.</p>
<p>The global vector outputs the potential on each electrode (and thus has
<em>N</em> entries if the fix manages <em>N</em> electrode groups), in <a class="reference internal" href="units.html"><span class="doc">units</span></a> of electric field multiplied by distance (thus volts for <em>real</em>
and <em>metal</em> units). The electrode groups ordering follows the order in
which they were input in the fix command using <em>couple</em>. The global
vector output is useful for <em>fix electrode/conq</em> and <em>fix
electrode/thermo</em>, where potential is dynamically updated based on
electrolyte configuration instead of being directly set.</p>
<p>The global array has <em>N</em> rows and <em>2N+1</em> columns, where the fix manages
<em>N</em> electrode groups managed by the fix. For the <em>I</em>-th row of the
array, the elements are:</p>
<ul class="simple">
<li><p>array[I][1] = total charge that group <em>I</em> would have had <em>if it were
at 0 V applied potential</em></p></li>
<li><p>array[I][2 to <em>N</em> + 1] = the <em>N</em> entries
of the <em>I</em>-th row of the electrode capacitance matrix (definition
follows)</p></li>
<li><p>array[I][<em>N</em> + 2 to <em>2N</em> + 1] = the <em>N</em> entries of the
<em>I</em>-th row of the electrode elastance matrix (the inverse of the
electrode capacitance matrix)</p></li>
</ul>
<p>The <span class="math notranslate nohighlight">\(N \times N\)</span> electrode capacitance matrix, denoted <span class="math notranslate nohighlight">\(\mathbf{C}\)</span>
in the following equation, summarizes how the total charge induced on each
electrode (<span class="math notranslate nohighlight">\(\mathbf{Q}\)</span> as an <em>N</em>-vector) is related to the potential on
each electrode, <span class="math notranslate nohighlight">\(\mathbf{V}\)</span>, and the charge-at-0V <span class="math notranslate nohighlight">\(\mathbf{Q}_{0V}\)</span>
(which is influenced by the local electrolyte structure):</p>
<div class="math notranslate nohighlight">
\[\mathbf{Q} = \mathbf{Q}_{0V} + \mathbf{C} \cdot \mathbf{V}\]</div>
<p>The charge-at-0V, electrode capacitance and elastance matrices are internally
used to calculate the potentials required to induce the specified total
electrode charges in <em>fix electrode/conq</em> and <em>fix electrode/thermo</em>. With the
<em>symm on</em> option, the electrode capacitance matrix would be singular, and thus
its last row is replaced with <em>N</em> copies of its top-left entry
(<span class="math notranslate nohighlight">\(\mathbf{C}_{11}\)</span>) for invertibility.</p>
<p>The global array output is mainly useful for quickly determining the vacuum
capacitance of the system (capacitance with only electrodes, no electrolyte),
and can also be used for advanced simulations setting the potential as some
function of the charge-at-0V (such as the <code class="docutils literal notranslate"><span class="pre">in.conq2</span></code> example mentioned above).</p>
<p>Please cite <a class="reference internal" href="#ahrens-iwers2"><span class="std std-ref">(Ahrens-Iwers2022)</span></a> in any publication that
uses this implementation. Please cite also the publication on the combination
of the CPM with PPPM if you use <em>pppm/electrode</em> <a class="reference internal" href="#ahrens-iwers"><span class="std std-ref">(Ahrens-Iwers)</span></a>.</p>
</section>
<hr class="docutils" />
<section id="restrictions">
<h2>Restrictions<a class="headerlink" href="#restrictions" title="Link to this heading"></a></h2>
<p>For algorithms that use a matrix for the electrode-electrode
interactions, positions of electrode particles have to be immobilized at
all times.</p>
<p>With <em>ffield off</em> (i.e. the default), the box geometry is expected to be
<em>z</em>-non-periodic (i.e. <em>boundary p p f</em>), and this fix will issue an
error if the box is <em>z</em>-periodic. With <em>ffield on</em>, the box geometry is
expected to be <em>z</em>-periodic, and this fix will issue an error if the box
is <em>z</em>-non-periodic.</p>
<p>The parallelization for the fix works best if electrode atoms are evenly
distributed across processors. For a system with two electrodes at the bottom
and top of the cell this can be achieved with <em>processors * * 2</em>, or with the
line</p>
<div class="highlight-LAMMPS notranslate"><div class="highlight"><pre><span></span><span class="k">if</span><span class="w"> </span><span class="s">&quot;$(extract_setting(world_size) % 2) == 0&quot;</span><span class="w"> </span><span class="k">then</span><span class="w"> </span><span class="s">&quot;processors * * 2&quot;</span>
</pre></div>
</div>
<p>which avoids an error if the script is run on an odd number of
processors (such as on just one processor for testing).</p>
<p>The fix creates an additional group named <em>[fix-ID]_group</em> which is the
union of all electrode groups supplied to LAMMPS. This additional group
counts towards LAMMPSs limitation on the total number of groups
(currently 32), which may not allow scripts that use that many groups to
run with this fix.</p>
<p>The matrix-based algorithms (<em>algo mat_inv</em> and <em>algo mat_cg</em>) currently
store an interaction matrix (either elastance or capacitance) of <em>N</em> by
<em>N</em> doubles for each MPI process. This memory requirement may be
prohibitive for large electrode groups. The fix will issue a warning if
it expects to use more than 0.5 GiB of memory.</p>
</section>
<section id="default">
<h2>Default<a class="headerlink" href="#default" title="Link to this heading"></a></h2>
<p>The default keyword-option settings are <em>algo mat_inv</em>, <em>symm off</em>,
<em>etypes off</em> and <em>ffield off</em>.</p>
<hr class="docutils" />
<p>Styles with a <em>gpu</em>, <em>intel</em>, <em>kk</em>, <em>omp</em>, or <em>opt</em> suffix are
functionally the same as the corresponding style without the suffix.
They have been optimized to run faster, depending on your available
hardware, as discussed on the <a class="reference internal" href="Speed_packages.html"><span class="doc">Accelerator packages</span></a>
page. The accelerated styles take the same arguments and should
produce the same results, except for round-off and precision issues.</p>
<p>These accelerated styles are part of the GPU, INTEL, KOKKOS,
OPENMP, and OPT packages, respectively. They are only enabled if
LAMMPS was built with those packages. See the <a class="reference internal" href="Build_package.html"><span class="doc">Build package</span></a> page for more info.</p>
<p>You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the <a class="reference internal" href="Run_options.html"><span class="doc">-suffix command-line switch</span></a> when you invoke LAMMPS, or you can use the
<a class="reference internal" href="suffix.html"><span class="doc">suffix</span></a> command in your input script.</p>
<p>See the <a class="reference internal" href="Speed_packages.html"><span class="doc">Accelerator packages</span></a> page for more
instructions on how to use the accelerated styles effectively.</p>
<hr class="docutils" />
<p id="siepmann"><strong>(Siepmann)</strong> Siepmann and Sprik, J. Chem. Phys. 102, 511 (1995).</p>
<p id="reed3"><strong>(Reed)</strong> Reed <em>et al.</em>, J. Chem. Phys. 126, 084704 (2007).</p>
<p id="deissenbeck"><strong>(Deissenbeck)</strong> Deissenbeck <em>et al.</em>, Phys. Rev. Letters 126, 136803 (2021).</p>
<p id="gingrich"><strong>(Gingrich)</strong> Gingrich, <cite>MSc thesis</cite> &lt;<a class="reference external" href="https://gingrich.chem.northwestern.edu/papers/ThesiswCorrections.pdf">https://gingrich.chem.northwestern.edu/papers/ThesiswCorrections.pdf</a>&gt;` (2010).</p>
<p id="ahrens-iwers"><strong>(Ahrens-Iwers)</strong> Ahrens-Iwers and Meissner, J. Chem. Phys. 155, 104104 (2021).</p>
<p id="hu"><strong>(Hu)</strong> Hu, J. Chem. Theory Comput. 10, 5254 (2014).</p>
<p id="dufils"><strong>(Dufils)</strong> Dufils <em>et al.</em>, Phys. Rev. Letters 123, 195501 (2019).</p>
<p id="tee"><strong>(Tee)</strong> Tee and Searles, J. Chem. Phys. 156, 184101 (2022).</p>
<p id="scalfi"><strong>(Scalfi)</strong> Scalfi <em>et al.</em>, J. Chem. Phys., 153, 174704 (2020).</p>
<p id="ahrens-iwers2"><strong>(Ahrens-Iwers2022)</strong> Ahrens-Iwers <em>et al.</em>, J. Chem. Phys. 157, 084801 (2022).</p>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="fix_ehex.html" class="btn btn-neutral float-left" title="fix ehex command" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="fix_electron_stopping.html" class="btn btn-neutral float-right" title="fix electron/stopping command" 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>