I am using USPEX2022.1 & GULP to predict the crystal structure of organic molecules. After imitating the example “EX37-3D-molecules_H2O_gulp”, I have succeeded in several other simple molecules. But when acting on complex organic molecules, one problem confused me. How to define different kinds of carbon atoms? For example, the molecule contains four kinds of carbons:
# C_33 carbon, sp3, 3 implicit hydrogens
# C_22 carbon, sp2, 2 implicit hydrogens
# C_R1 carbon, resonant, 1 implicit hydrogen
# C_11 carbon, sp1, 1 implicit hydrogen
I do it as follows:
Firstly, define these carbons in MOL file:
C1 -5.5156 -0.5424 -3.0435 0 0 0 0
C2 -5.2358 0.3520 -3.2512 1 0 0 0
C3 -4.7760 -0.3260 -0.7741 2 1 0 0
C4 -3.4768 -0.0386 -1.1602 3 2 1 0
…… ……
H1 -3.2552 -0.0680 -2.0562 7 5 4 1
H1 -6.0013 -0.5628 0.8285 8 6 5 0
…… ……
…… ……
Secondly, modify the “Species” section in the ginput file:
Species
C1 core C_33
C2 core C_R1
C3 core C_22
C4 core C_11
H1 core H_
…… ……
But when running, the following error message appears:
2023-02-01 12:31:59,515 - numexpr.utils - INFO - NumExpr defaulting to 4 threads.
2023-02-01 12:32:41,364 - USPEX.Target - ERROR -
Traceback (most recent call last):
File "USPEX/Target.py", line 65, in USPEX.Target.Target.__init__
File "USPEX/Atomistic/SimpleMoleculeUtility.py", line 49, in USPEX.Atomistic.SimpleMoleculeUtility.SimpleMoleculeUtility.__init__
File "USPEX/Atomistic/Element.py", line 198, in USPEX.Atomistic.Element.Element.__init__
ValueError
2023-02-01 12:32:41,528 - USPEX.Target - INFO - Following utilities was not initialized: ['PowderSpectrumAnalyzer', 'SingleCrystalSpectrumAnalyzer'].
2023-02-01 12:32:41,529 - USPEX.main - ERROR - 'types.SimpleNamespace' object has no attribute 'simpleMoleculeUtility'
Traceback (most recent call last):
File "/home/txj/anaconda3/lib/python3.8/site-packages/USPEX/main.py", line 107, in _run
asyncio.get_event_loop().run_until_complete(GenerationController.createController().run())
File "/home/txj/anaconda3/lib/python3.8/site-packages/USPEX/GenerationController.py", line 81, in createController
optimizer = GenerationController.knownOptimizers[optimizer['type']](**optimizer)
File "USPEX/GlobalOptimizer.py", line 77, in USPEX.GlobalOptimizer.GlobalOptimizer.__init__
File "USPEX/Target.py", line 74, in USPEX.Target.Target.__init__
File "USPEX/Atomistic/Constraints.py", line 17, in USPEX.Atomistic.Constraints.Constraints.__init__
AttributeError: 'types.SimpleNamespace' object has no attribute 'simpleMoleculeUtility'
One alternative solution is changing the Dreiding force field into others (for example pGFNFF, which does not require specific atomic species to be specified). But Dreiding force field can give more accurate results in some cases.
If anyone can help me resolve this issue, that would be much appreciated!
Wanlichuan