CP2K Module =========== The CP2K module provides tools for generating CP2K input files for a small set of calculations. `CP2K Website `_ `CP2K Documentation `_ Supported Calculation Types --------------------------- * Geometry Optimization (GEO_OPT) * Cell Optimization (CELL_OPT) * Molecular Dynamics (MD) * Reference Trajectory Recalculation (REFTRAJ) * Single Point Energy Calculation (ENERGY) Usage ----- Command Line Interface ~~~~~~~~~~~~~~~~~~~~~~ **Interactive Q&A Mode**: .. code-block:: bash amaceing_cp2k **Direct Command Line Mode**: .. code-block:: bash amaceing_cp2k -rt="RUN_TYPE" -c="{'parameter1': 'value1', 'parameter2': 'value2', ...}" Example for GEO_OPT: .. code-block:: bash amaceing_cp2k --run_type="GEO_OPT" --config="{'project_name': 'koh_h2o_geoopt', 'coord_file': 'system.xyz', 'pbc_list': '[14.20670 0 0 0 14.2067 0 0 0 14.2067]', 'max_iter': 10, 'xc_functional': 'BLYP', 'print_forces': 'OFF', 'cp2k_newer_than_2023x': 'y'}" Python API ~~~~~~~~~~ .. code-block:: python from amaceing_toolkit.workflow import cp2k_api config = { 'project_name': 'koh_h2o_geoopt', 'coord_file': 'system.xyz', 'pbc_list': [14.2067, 0, 0, 0, 14.2067, 0, 0, 0, 14.2067], 'max_iter': 100, 'print_forces': 'OFF', 'cp2k_newer_than_2023x': 'y', 'xc_functional': 'BLYP' } cp2k_api(run_type='GEO_OPT', config=config) Key Parameters -------------- Common Parameters ~~~~~~~~~~~~~~~~~ * ``project_name``: Name for the calculation (used for output files) * ``coord_file``: Path to the input geometry file (.xyz format) * ``pbc_list``: Periodic boundary conditions, as a list of 9 values representing the cell vectors * ``xc_functional``: Exchange-correlation functional (e.g., 'PBE', 'BLYP', 'PBE_SR', 'BLYP_SR') * ``cp2k_newer_than_2023x``: Flag to enable features for CP2K versions newer than 2023.x Run Type-Specific Parameters ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **GEO_OPT**: * ``max_iter``: Maximum optimization iterations * ``print_forces``: Whether to print forces ('ON'/'OFF') **CELL_OPT**: * ``max_iter``: Maximum optimization iterations * ``keep_symmetry``: Whether to preserve cell symmetry ('TRUE'/'FALSE') * ``symmetry``: Type of cell symmetry to maintain ('CUBIC', 'ORTHORHOMBIC', 'TRICLINIC', ...) **MD**: * ``ensemble``: Type of ensemble ('NVE', 'NVT', 'NPT_F', 'NPT_I') * ``nsteps``: Number of MD steps * ``timestep``: MD timestep in fs * ``temperature``: Target temperature in K * ``equilibration_run``: Whether to perform equilibration ('y'/'n') * ``equilibration_steps``: Number of equilibration steps **REFTRAJ**: * ``ref_traj``: Path to the reference trajectory file * ``nsteps``: Number of steps to process * ``stride``: Step interval for processing * ``print_forces``: Whether to print forces ('ON'/'OFF') **ENERGY**: * No additional required parameters Output Files ------------ The module generates: * A CP2K input file (``_cp2k.inp``) * A runscript for job submission (``runscript.sh``) * A log file documenting the configuration (``cp2k_input.log``) * For MD with equilibration, additional equilibration input, runscript files and a python script that extracts the last step from the equilibration trajectory For MD: .. code-block:: bash amaceing_cp2k --run_type="MD" --config="{'project_name': 'koh_h2o_md', 'coord_file': 'system.xyz', 'pbc_list': '[14.2067 0 0 0 14.2067 0 0 0 14.2067]', 'ensemble': 'NVT', 'nsteps': '10', 'timestep': 0.5, 'temperature': 300, 'print_forces': 'ON', 'print_velocities': 'OFF', 'xc_functional': 'BLYP', 'equilibration_run': 'y', 'equilibration_steps': '5', 'cp2k_newer_than_2023x': 'y'}" .. note:: Do **NOT** use double quotes inside the dictionary. Also do **NOT** use commas inside of lists in the dictionary. Implementation Details ---------------------- The CP2K module uses templates and configuration defaults that are stored in: * ``amaceing_toolkit/default_configs/cp2k_configs.py``: Default settings for all CP2K calculations * ``amaceing_toolkit/default_configs/kind_data_functionals.py``: Basis sets and pseudopotentials for different elements and functionals Technical Details ----------------- * Exchange-correlation functionals: Supports PBE, BLYP and others with optional short-range (SR) variants * Basis sets: MOLOPT basis sets used by default * SCF: OT method with DIIS minimizer and FULL_SINGLE_INVERSE preconditioner * For MD simulations, global thermostats are used for production, massive thermostats for equilibration