ezpzbz / aiida-catmat

Collection of AiiDA WorkChains Developed in CATMAT project
MIT License
3 stars 1 forks source link

[Feature] Partial deintercallation in VaspCatMatWorkChain #51

Closed ezpzbz closed 3 years ago

ezpzbz commented 3 years ago

context

In the current version, we only consider fully deintrcalation of ions which is not the case for most of studies. Therefore, it should be seen in the workchain that how we can consider the partial removal of ions.

solution

We can relatively easy implement this feature via having a calcfunction and to_context submission scheme. So, the following steps should be taken in the workchain:

  1. Have a switch for partial or full deintercallation.
  2. In the case of partial switched to True, after optimization of fully lithiated structure, the structure update would be doe using bsym. Here, we also need to have another input as the requested number of Li removal. There should be a calcfunction that takes the optimized structure, replaces the Li with X and removes X. It will return a dictionary of StructureData objects.
  3. In the run_charged, and in the case of having the above dictionary (for example, self.ctx.partial_deli_structures), it will loop over values and submit them all in parallel.
  4. In the processing of results, we will select the structure which has the lowest energy and calculate the cathode properties.
ezpzbz commented 3 years ago

After all, it is not a feature which want to have directly in the workchain. Still workchain can be improved to address some issues listed below but delegating the job of generating deintercalation composition within the workchain can cause unwanted issues.

potential issues:

possible solutions:

ezpzbz commented 3 years ago

Having this feature does not make much sense after all. So, I'm closing it.