VASP-based workflow

workflows.vasp_based.run_workflow(config)

Run the full VASP-based materials discovery workflow.

Consists of the following task-based steps (with a dependency between each step):

  1. Structure Generation generate_structures()

  2. CGCNN Prediction run_cgcnn().

  3. Structure Selection select_structures().

  4. VASP Calculations vasp_calculations()

  5. Post Processing

Parameters:

config (ConfigManager) – The configuration manager that provides runtime parameters, paths, and thresholds for each stage of the workflow.

Side Effects:
  • Creates directories and files under config[CK.WORK_DIR]

  • Executes multiple shell commands and external applications

Raises:

Exception – If any sub-stage raises an error that is not internally handled.

workflows.vasp_based.generate_structures(config)

Generate hypothetical structures in parallel (chunked).

Submits parsl_tasks.gen_structures.gen_structures() for each chunk i [1, n_chunks] where n_chunks = config[CK.GEN_STRUCTURES_NNODES], and waits for completion.

Parameters:

config (ConfigManager) – workflow configuration

Returns:

None

Return type:

None

workflows.vasp_based.run_cgcnn(config)

Predicts formation energy with CGCNN for the candidates.

Submits parsl_tasks.cgcnn.cgcnn_prediction() for each chunk i [1, n_chunks] where n_chunks = config[CK.GEN_STRUCTURES_NNODES]. Merges work_dir/test_results_*.csv into work_dir/test_results.csv, then deletes the shard files.

Parameters:

config (ConfigManager) – workflow configuration

Returns:

None

Return type:

None

workflows.vasp_based.select_structures(config)

Filter, deduplicate, and select candidate structures.

Runs parsl_tasks.select_structures.select_structures() to produce {work_dir}/new/POSCAR_{i} and {work_dir}/new/id_prop.csv.

Parameters:

config (ConfigManager) – workflow configuration

Returns:

None

Return type:

None

workflows.vasp_based.vasp_calculations(config)

Run two-stage VASP calculations for all selected structures and log outcomes.

Launches parsl_tasks.dft_optimization.run_vasp_calc() for each ID in {config[CK.VASP_ID_STRUCT_LIST]}. Writes a CSV of per-ID results to {config[CK.VASP_WORK_DIR]}/{config[CK.OUTPUT_FILE]}.

Parameters:

config (ConfigManager) – workflow configuration

Returns:

None

Return type:

None

Raises:

Exception – only if uncaught errors propagate past per-task handling

workflows.vasp_based.post_processing(config)

Compute Ehull, color the convex hull, and collect promising candidates.

Requires a 3- or 4-element system. Runs tools.post_processing.get_vasp_hull(), parsl_tasks.ehull.calculate_ehul() and parsl_tasks.convex_hull.convex_hull_color().

Parameters:

config (ConfigManager) – workflow configuration

Returns:

None

Return type:

None