3.16 Embedding in external fields

To simulate the effect of external field (for instance, to connect to a QM/MM embedding formalism), FHI-aims allows to add the effect of a homogeneous electrical field and/or point charges surrounding the molecule in question.

Note that these embedding charges are in addition to any charge specified in control.in, and not already included there. charge should equal only to the sum of charges of all nuclei in geometry.in minus the overall number of electrons in the system, but does not count any embedding charges specified by keyword multipole.

This functionality is not yet available for periodic systems.

Warning: When using a multipole, e.g., an external charge with no basis functions etc., you are creating a Coulomb singularity. If this singularity is inside the radius of a basis function of another atom, it will lead to numerical noise in integrals, up to near-infinities.

To test and/or overcome this problem, all you need to do is to place an integration grid on any multipole that is within the radius of a basis function of any atom. This radius is given by the cutoff radius plus width in the cut_pot keyword of each species.

Such a grid can be placed by creating an empty site with no basis functions (include_min_basis .false.) and placing this empty site on the same site as the multipole in question in geometry.in. Simply taking the species defaults for a H atom (light settings) and adjusting them to have no basis functions should create the necessary definition of the empty site in question (see Fig.3.2 for an example).



[...]
  species        empty_site
#     global species definitions
    nucleus             1
    mass                1.00794
#
    l_hartree           4
#
    cut_pot             3.5  1.5  1.0
    basis_dep_cutoff    1e-4
#
    include_min_basis .false.

    radial_base         24 5.0
    radial_multiplier   1
    angular_grids       specified
      division   0.2421   50
      division   0.3822  110
      division   0.4799  194
      division   0.5341  302
      outer_grid  302
################################################################################
#
#  Definition of "minimal" basis
#
################################################################################
#     valence basis states
    valence      1  s   1.
#     ion occupancy
    ion_occ      1  s   0.5
################################################################################




[...]

  
Figure 3.2: Species data for what could be used as an empty site on top of monopole.

Tags for geometry.in:

 

Tag: homogeneous_field(geometry.in)

Usage: homogeneous_field E_x E_y E_z
Purpose: Allows to perform a calculation for a system in a homogeneous electrical field 𝐄.
E_x is a real number, the x component of 𝐄 in V/Å.
E_y is a real number, the y component of 𝐄 in V/Å.
E_z is a real number, the z component of 𝐄 in V/Å.

Please note: The electrical field is usually defined to point in the direction of a force exerted on a positive probe charge. Historically grown, FHIaims uses the opposite sign convention. Although this behaviour might be considered a bug, we decided to leave it this way in order not to break any scripts people are already using.

 

Tag: multipole(geometry.in)

Usage: multipole x y z order charge
Purpose: Places the center of an electrostatic multipole field at a specified location, to simulate an embedding potential.
x : x coordinate of the multipole.
y : y coordinate of the multipole.
z : z coordinate of the multipole.
order : Integer number, specifies the order of the multipole (0 or 1 monopole or dipole).
charge : Real number, specifies the charge associated with the multipole.

If the order of the multipole is greater than zero (presently, only monopoles or dipoles are supported), a dipole moment must be specified in addition to the data provided with the multipole tag itself. To that end, a line must immediately follow the original multipole line, adhering to the following format:
data m_x m_y m_z
Here, m_x, m_y, m_z are the x, y, and z components of the dipole moment, in eÅ.

Warning: Note that monopoles amount to Coulomb singularities. When inside the basis function radius of any atom, such monopoles should be covered with an integration grid in geometry.in, as explained in the beginning of this section.

Tags for general section of control.in:

 

Tag: full_embedding(control.in)

Usage: full_embedding flag
Purpose: Allows to switch between embedding of the full electronic structure (affecting the Kohn-Sham equations) or the embedding of an electronic density that is calculated without knowledge of the embedding potential.
flag is a logical string, .true. or .false. Default: .true.

For most purposes, embedding into an external potential will involve a change to the electronic structure of the structure which is embedded. However, in some instances one may wish to embed a given charge density non-selfconsistently, i.e., by calculating the electron density without an external field and then computing the energy of that unperturbed electron density in the external field.

This feature is useful if multipoles are located too close to the quantum-mechanical region of the calculation. These act as Coulomb-like potentials, just like any other potential in the systems. If there are basis functions that cover the location of that potential, some electronic charge may artificially become trapped there, creating a bad approximation to the core / valence electrons of an atom with a nucleus of charge charge. In most cases, this is clearly undesirable behaviour, and apart from that will create unwanted numerical noise since the electronic structure near the Coulomb-like singularity of the multipole will be represented solely by basis functions that are inadequate for this purpose in the first place.

 

Tag: qmmm(control.in)

Usage: qmmm
Purpose: Allows to compute Hellmann-Feynman like forces from the quantum-mechanical part of a structure exerted on the multipoles on an external embedding field.
Restriction: Works only for external monopole potentials.

For quantum-mechanics / molecular-mechanics (QM/MM) “hybrid” molecular dynamics simulations, one must evolve both the quantum and classical subsystems with time. In that case, it is necessary to know the derivatives of the quantum-mechanical total energy with respect to the positions of the classical multipoles (see keyword multipole), i.e., the forces on the multipoles that originate from the quantum-mechanical region.

The computation of these forces is switched on by adding the qmmm keyword to control.in. The actual QM/MM simulation must still be performed using an outside framework, for example ChemShell [278] that uses the energies and forces provided by FHI-aims as a “plugin”.

3.16.1 Embedding for simulation of tip-enhanced Raman spectra

FHI-aims can also perform embedding into numerically tabulated external potentials stored in Gaussian Cube files. The practical context for this functionality would typically be the simulation of tip-enhanced Raman spectroscopy (TERS) for surface systems and the embedding potential would represent the near field induced by the laser-irradiated STM tip following the methodology described in Refs [200, 44]. Hence, the embedding potential is expected to assume the following form

ϕ0(𝐫)+Ez[ϕ(𝐫)Ez]0, (3.48)

where Ez represents the z-oriented homogeneous_field (far-field) embedding. Both terms can be input through Gaussian Cube files and positioned arbitrarily with respect to the molecular geometry (as documented below). Note that either of the two terms can be used (or both at the same time) according to the tailored goals and needs of the user. For z-oriented slabs, periodic boundary conditions are allowed.

Tags for general section of control.in:

 

Tag: nearfield_groundstate(control.in)

Usage: nearfield_groundstate cube_name
Purpose: Specifies the spatial dependence ϕ0(𝐫).
Restriction: It has to be aligned in the same way as nearfield_derivative if the two are used in combination. The Cube file data has to be given as a single column to be read by FHI-aims. The dimensions of the Cube file has to fully fit in the Wigner–Seitz cell of the system when using periodic boundary conditions to prevent spurious artifacts. Calculation of analytical forces is not supported.

 

Tag: nearfield_derivative(control.in)

Usage: nearfield_derivative cube_name
Purpose: Specifies the spatial dependence of ϕ(𝐫)Ez.
Restriction: It has to be aligned in the same way as nearfield_groundstate if the two are used in combination. The Cube file data has to be given as a single column to be read by FHI-aims. The dimensions of the Cube file has to fully fit in the Wigner–Seitz cell of the system when using periodic boundary conditions to prevent spurious artifacts. Calculation of analytical forces is not supported.

 

Tag: pos_sys_origin(control.in)

Usage: pos_sys_origin x y z
Purpose: Specifies the reference position in the molecular geometry in Å for alignment of the Cube data and the geometry. Hint: This could be the center of mass of the surface-bound molecule.

 

Tag: pos_tip_origin(control.in)

Usage: pos_tip_origin x y z
Purpose: Specifies a reference position in the Cube file(s) in Å relative to the Cube geometry. This is also used for alignment of the Cube data and the molecular geometry. Hint: This could be the position of the STM tip apex.

 

Tag: tip_molecule_distance(control.in)

Usage: tip_molecule_distance Δz
Purpose: Target vertical (z) displacement between the reference positions in Å.

 

Tag: rel_shift_from_tip(control.in)

Usage: rel_shift_from_tip Δx Δy
Purpose: Target lateral displacement (x, y) between the reference positions in Å.