.. _modules: ================= Available Modules ================= Faps is designed to interface with a number of different computational chemistry packages to carry out different stages of an isotherm calculation. This broad overview arranges what is available by the type of calculation. ----------------- Structure reading ----------------- Several different chemical file formats can be read in as the initial structure. The crystallographic information format (CIF) is able to carry all the custom information for faps features that may be missing in other formats, so this is the recommended format. ------------------------ Force field optimisation ------------------------ In structures where there may be large strains or if the structure has been constructed from scratch, then force field optimisation can be used to reduce the initial strains and relax the structure. This is off by default as it is only useful with poor initial structures. * The structure must include atom typing and bonding information. This is only supported for ``.cif`` files! * Bonding information can be generated by Materials Studio or added in the Materials Studio format with a code like fapswitch, or by hand. Minimally, the atom sites and bond types are needed. .. code-block:: text loop_ _geom_bond_atom_site_label_1 _geom_bond_atom_site_label_2 _ccdc_geom_bond_type C108 H51 S C31 O7 A * Atom types must be added to the atom information. In the ``_atom_site_description`` field. Atoms should be assigned their types based on UFF atom typing. .. code-block:: text loop_ _atom_site_label _atom_site_type_symbol _atom_site_description _atom_site_fract_x _atom_site_fract_y _atom_site_fract_z C1 C C_R 0.332090 0.631570 0.078270 O52 O O_2 0.631570 0.332090 0.958070 * If no atom typing is found, faps will attempt to derive the atom types from the bonding information. **The bonding information must be correct** if no atom typing information is found, and you should always check the output. * Enable force field optimisations with ``no_force_field_opt = False`` * ``ff_opt_code`` selects the optimisers from: * ``gulp`` optimises atoms and cell shape using the in built in UFF optimiser in the `GULP software package `_. Metal atoms and nearest neighbours are fixed in fractional coordinates. * ``gromacs`` faster alternative, optimises cell parameters through NPT simulation rather than directly. ---------------- DFT calculations ---------------- Density functional theory (DFT) can be applied to the system to do a combination of structure optimisation at a high level of theory, and generation of an electrostatic potential. * Running a dft calculation will always produce an ESP * Interfaces exist for vasp and siesta, as set by ``dft_code``: * ``vasp`` is well tested and high quality calculation. * ``siesta`` uses atom centre basis sets for faster calculation of large systems, but at the cost of lower accuracy. * ``optim_h``, ``optim_all`` and ``optim_cell`` control which parts of the structure to optimise. ------------------ Charge calculation ------------------ The ESP from a DFT calculation can be used to fit charges with the REPEAT method, or more empirical partial charges can be calculated. * ``charge_method`` sets the code to be used * ``repeat`` uses the ESP from a DFT calculation to fit ab initio charges. Don't forget to specify the dft code in ``esp_src`` so it can find the ESP files. * ``gulp`` and ``egulp`` both use the charge equilibration (QEq) method to calculate charges. ----------------------- Monte Carlo calculation ----------------------- Grand canonical Monte Carlo calculations can be performed on the structure with the ``fastmc`` code. These are used to measure the gas uptake and generate isotherm and binding site data. * Each calculation is limited to a single set of guests (make copies of the ``.niss`` file to run different guests!) * Set isotherms with ``mc_temperature`` and ``mc_pressure`` or individual ``mc_state_points``. * Gas fugacity should be calculated for high pressure simulations by setting ``equation_of_state`` to ``peng-robinson``. --------------------- Binding site location --------------------- If probability plotting is turned on in the GCMC, binding sites can be identified and ranked according to occupation and energy. * Guest molecules are aligned with the maxima in a smoothed probability plot. * Energies are calcualted with DL_POLY. * Use a high number of production steps in the GCMC for better quality binding sites * Don't do it for every point on an isotherm! -------------------- Geometric properties -------------------- Several geometric properties can be calculated internally or with other codes. * Setting any values for ``surface_area_probe`` will use the internal surface area calculation method. * This is a fairly slow method for getting the surface area, but has some advantages: * Hydrophobic surface areas are calculated with this method. * Setting ``surface_area_probe`` will make an xyz file that identifies the atom and charge associated with each point on the surface. * Zeo++ will be used (if available) to calculate surface areas, pore volumes and void fractions. * Probe radii are taken from the guest definitions and a helium probe is always used. * Zeo++ void volumes are used in the calculation of excess adsorption.