Closed tdpham2 closed 4 years ago
Hello,
The reason for this problem is essentially two-fold:
(1) The pillared paddlewheel has variable angles around the metal atoms when built using ToBaCCo, this is because these angles involve bonds that are formed by ToBaCCo.
(2) I have recently made a lot of updates to the UFF4MOF typing scheme and the 'ty' variable was no longer initialized as None (this was just a typo), meaning that no error was raised when atoms could not be typed.
The consequence of reason (1) is that there are some Cu atoms with near-tetrahedral angles in your MOFs. The UFF4MOF typing function checks the angles around the metals to distinguish paddlewheel geometry, it found that some Cu atoms had near tetrahedral angles while also being bonded to 4 O and another Cu (a paddlewheel signature) and therefore did not type those Cu. Then, because of reason (2) those Cu just took the 'ty' value from the previous iteration of the loop, which happened to be O_2_M.
First, I have added the initialization of 'ty' to None back in, so now a ValueError will always be raised if an atom is not typed. Second, I have removed the logic that a paddlewheel atom must not have a near-tetrahedral angle. Instead the code will issue a warning that the metal is being typed to have 90/180 degree angles, even though it has a near-tetrahedral angle. One other consideration to keep in mind is that when using ToBaCCo to build MOFs it is best to make sure the metal geometry is fixed, i.e. ToBaCCo does not form M-X bonds (M = metal, X = something else). This is not always possible, but can often be achieved by including more of the organic linker in the metal node building blocks.
Hi,
I have been using cif2lammps to create lammps data files for ToBaCCo 3.0 MOFs. I noticed that for some MOFs, cif2lammps assigns an incorrect atom type for some Cu atoms in Cu paddlewheels node.
Description
Attached are the cif files of the 2 MOFs with the issue. Both MOFs cif file were created with ToBaCCo 3.0.
kkm_v1-6c_Cu_1_Ch_v2-3c_Cu_imadazoline_Ch_1B_2SH_Ch_1TrU_Ch.txt
kkm_v1-6c_Cu_1_Ch_v2-3c_triazine_Ch_1TrU_Ch_2B_4Br_Ch.txt
For MOF1, cif2lammps assigned 4 out of 16 Cu atoms with O_2_M type instead of Cu4+2 (like the other 12 Cu atoms). For MOF2, cif2lammps assigned 1 out of 16 Cu (in the paddlewheels) atoms with O_2_M type instead of Cu4+2
To Reproduce
I use the command:
python main_conversion.py --cif cifdirs
Where cifs have these two MOFs. Running LAMMPS with the input files raised error: ERROR: Invalid type for mass set (src/read_data.cpp:1808)
In UFF4MOF_construction.py (in cif2lammps repo), after line 374, I added the command print(types) and one of the types printed out is ('O_2_M', 'Cu', 63.546), which is incorrect and probably why the issue occurred.
Thanks for reading this. Hope you could help me fix this issue!