unitedAtomsConfiguration¶
- unitedAtomsConfiguration(configuration, atom_list=None, min_hydrogen=1, max_hydrogen=4)¶
Return a configuration with united atoms.
- Parameters:
configuration (
MoleculeConfiguration
|BulkConfiguration
) – Configuration to be converted.atom_list (list of
PeriodicTableElement
| All) – List of elements of atoms to be united. Default: Carbonmin_hydrogen (int) – Minimum number of hydrogen atoms to be united.
max_hydrogen (int) – Maximum number of hydrogen atoms to be united.
- Returns:
The new configuration with united atoms.
- Return type:
Usage Examples¶
In this example an oligomer of polyvinyl alcohol is converted to a united atoms representation. That configuration is then optimized using the DREIDING potential before being converted back to an all-atom configuration. In this conversion only the carbon atoms are united in order to preserve the alcohol hydrogen bonding.
A workflow for the calculation can be downloaded here
with a corresponding python script UnitedAtom_Example.py
.
Notes¶
This function converts a configuration from an all-atom representation to a united atoms representation. In united atoms configurations hydrogen atoms are folded into the heavy atom they are attached to, with both the heavy atom and its hydrogen atoms being treated as a single point. This representation of the molecule works mostly with empirical potentials, where atoms are treated as points. It does not with with semi-empirical or density functional theory, where the energy is calculated from the electrons of each atom. The DREIDING potential contains support for carbon united atoms.
Reducing the configuration in this way can make simulations such as molecular dynamics much faster. Here, reducing the number of atoms reduces the number of interactions that must be taken into account by the potential. Removing the light hydrogen atoms also allows longer time steps to be used in integrating the equations of motion. This comes at the expense of maintaining details of the specific hydrogen interactions. In cases where hydrogen atoms do not contribute specifically to the energy, such as in a carbon chain, this approximation works well. In other cases where hydrogen atoms play a significant role, such as in hydrogen bonding, this approximation may significantly reduce the quality of results.
The method takes either a MoleculeConfiguration
or BulkConfiguration
as input
to convert to a united atoms representation. Optionally ,a list of elements that are to be united
with their hydrogen atoms can be given, along with a range of atoms to unite. This allows control
over which types of atoms in the configuration are united, allowing important hydrogen
contributions to be preserved.
Once a configuration is converted to united atoms, it can be converted back to an all-atom
representation using the explicitHydrogenConfiguration()
function.