| name | homo-lumo |
| description | Gaussian + Multiwfn + VMD ���û��Ʒ���ǰ�߹����HOMO/LUMO�������û���Ҫ���ӻ�����HOMO��LUMO����������϶��������Ӧ���ԡ����ɹ��cube�ļ�����Ⱦ�����ֵ��ͼʱʹ�á�����������HOMO��LUMO��ǰ�߹�������ӹ�����ӻ�������ܼ���FMO�������ֵ�桢Gaussian������������Multiwfn�����ȡ��VMD�����Ⱦ��cube�ļ���HOMO-LUMO gap����϶��ǰ�ع�������ͼ�� |
HOMO / LUMO ǰ�߹����������ӻ�
��������
| ���� | Ĭ��ֵ | ˵�� |
|---|
GAUSSIAN_EXEDIR | D:\G16W | Gaussian ��װĿ¼ |
GAUSSIAN_EXE | D:\G16W\g16.exe | Gaussian ��ִ���ļ� |
MULTIWFN_DIR | D:\Multiwfn_3.8_dev_bin_Win64 | Multiwfn ��װĿ¼ |
MULTIWFN_EXE | D:\Multiwfn_3.8_dev_bin_Win64\Multiwfn.exe | Multiwfn ��ִ���ļ� |
VMD_DIR | D:\VMD | VMD ��װĿ¼ |
VMD_EXE | D:\VMDmd.exe | VMD ��ִ���ļ� |
WORK_DIR | %USERPROFILE%\Desktop\HOMO-LUMO���� | ������� |
�ķ������༭ config.json �е�·����Agent ����ʱ�Զ���ȡ��
������ڣ����� fchk �ļ�
����û����ṩ .fchk �ļ������� Gaussian �Σ�ֱ�Ӵ� Multiwfn ��ʼ��
�û��ṩ input.fchk
-> ���Ƶ� MULTIWFN_DIR��������Ϊ 1.fchk���� 1.fch��
-> ������ 4���Զ����������Ϣ��
Agent �ж�������� WORK_DIR ���Ƿ���� .fchk ���� .gjf�����Զ��ӽ� 4 ��ʼ��
�ؼ��ʼ���
scripts/check_gjf.py �Զ���鲢���������
| ����� | ��ֵ | ˵�� |
|---|
| #p | ������ | ��ϸ���ģʽ |
| ���� | b3lyp | HF/�뾭���Զ����� |
| ���� | 6-311+g(d,p) | ������+��ɢ |
| opt | ������ | ������ |
| freq | ������ | Ƶ�ʼ��㣬ȷ���ȶ��ṹ |
| pop | pop=full | ������� MO ϵ�������룩 |
| %chk | %chk=�ļ���.chk | �������ļ�ͬ�� |
�� route section:
#p b3lyp/6-311+g(d,p) opt freq pop=full
�ؼ���������� pop=full����������ȡ���ӹ����
������������
�� 0: ȷ�Ϲ����ļ���
ÿ�ο�ʼǰ����ȷ�� WORK_DIR ���ڲ��г������ļ���
if (-not (Test-Path "$WORK_DIR")) {
New-Item -ItemType Directory -Path "$WORK_DIR" -Force
Write-Host "[OK] Created work folder: $WORK_DIR"
} else {
Write-Host "[OK] Work folder: $WORK_DIR"
Get-ChildItem "$WORK_DIR" | Format-Table Name, Length
}
���������ļ���.gjf / .fchk / .out�����������ͼƬ���ڴ��ļ��С�
�� 1: ��������� Gaussian ����
python scripts/check_gjf.py input.gjf
python scripts/check_gjf.py input.gjf --fix
�� 2: ���� Gaussian
cmd /c "$GAUSSIAN_EXE < input.gjf > input.out" 2>&1
ȷ�� .out ĩβ Normal termination��
�� 3: ת�� chk -> fchk
formchk input.chk input.fchk
�� 3.5: �ű���λ���
ȷ�������ļ��Ѿ�λ����ȱʧ���� MULTIWFN_DIR\examples\scripts\ ���ƣ�
| �ű� | Ŀ��λ�� | ��Դ |
|---|
showorb.bat | MULTIWFN_DIR\ | MULTIWFN_DIR\examples\scripts\ |
showorb.txt | MULTIWFN_DIR\ | MULTIWFN_DIR\examples\scripts\ |
showorb.vmd | VMD_DIR\ | MULTIWFN_DIR\examples\scripts\ |
���ű�����showorb.bat ��Ĭ������ 1.fch�����ʵ���ļ��� 1.fchk���� bat �еĺ���
Agent �������裺
# ����������ȱʧ�ű�
if (-not (Test-Path "$MULTIWFN_DIR\showorb.bat")) {
Copy-Item "$MULTIWFN_DIR\examples\scripts\showorb.bat" "$MULTIWFN_DIR" -Force
}
if (-not (Test-Path "$MULTIWFN_DIR\showorb.txt")) {
Copy-Item "$MULTIWFN_DIR\examples\scripts\showorb.txt" "$MULTIWFN_DIR" -Force
}
if (-not (Test-Path "$VMD_DIR\showorb.vmd")) {
Copy-Item "$MULTIWFN_DIR\examples\scripts\showorb.vmd" "$VMD_DIR" -Force
}
# ���� showorb.bat �� cub ���·��Ϊ VMD ʵ��·��
(Get-Content "$MULTIWFN_DIR\showorb.bat") -replace 'D:\study\VMD193', $VMD_DIR |
Out-File "$MULTIWFN_DIR\showorb.bat" -Encoding ASCII
# �� VMD �� vmd.rc ������ source ��
if (-not (Test-Path "$VMD_DIRmd.rc")) {
Set-Content "$VMD_DIRmd.rc" "source showorb.vmd"
} elseif ((Get-Content "$VMD_DIRmd.rc" -Raw) -notmatch 'showorb\.vmd') {
Add-Content "$VMD_DIRmd.rc" "`nsource showorb.vmd"
}
�� 4: �Զ����� HOMO/LUMO �����Ϣ
�����ֶ����� Multiwfn��ֱ�Ӵ� fchk/out/log �ļ����Զ���ȡ��
python scripts/parse_mo.py WORK_DIR/input.fchk
�ű��Զ������
- ��ϵ���ͣ��տDz�/���Dz㣩
- HOMO ������ ������
- LUMO ������ ������
- HOMO-LUMO ��϶ (Hartree + eV)
Ҳ�ɽ��� .out �� .log �ļ���
python scripts/parse_mo.py WORK_DIR/input.out
����ԭ������ fchk �ж�ȡ alpha ������ �� HOMO = N_alpha, LUMO = N_alpha+1���� Alpha Orbital Energies ����ȡ��Ӧ������
�� 5: �� showorb.txt ������ showorb.bat
�༭ MULTIWFN_DIR\showorb.txt������ 3 �и�Ϊ HOMO���-LUMO��ţ�
��ǰ: 20-30
�ĺ�: 10-11 ������ʵ�ʵ� HOMO=LUMO ��ţ�
������� .fch ���� .fchk��ͬ���� showorb.bat �е��ļ�����
����
cd MULTIWFN_DIR
showorb.bat
�ű��Զ������� Multiwfn �� ���� orb000010.cub �� orb000011.cub �� �ƶ��� VMD_DIR��
�����ɵ� cub �ļ����⸴��һ�ݵ� WORK_DIR ���棺
Copy-Item "$VMD_DIR\orb*.cub" "$WORK_DIR\" -Force
�� 6: VMD ���ӻ�
- �� VMD
- Tk Console �����룺
orb 10���鿴 HOMO���� orb 11���鿴 LUMO��
- ��ɫ��ֵ�� = ����λ
- ��ɫ��ֵ�� = ����λ
- Ĭ�� isovalue = 0.05
- �����ӽ�������
- ���������ֵ�棺
orbiso 0.03
VMD �ű�����������������
orb N �� ��ʾ�� N �Ź��
orbiso 0.04 �� �ĵ�ֵ��ֵ��0.02~0.06 ���ã�
orbclean �� ɾ������ orb*.cub ��ʱ�ļ�
�� 7: ��Ⱦ����
�ֱ������ã��ؼ���: Ĭ����Ⱦ�ֱ��ʽ� 512��512��ͼ��ģ������Ⱦǰ������ߣ�
display resize 2048 2048
2048��2048 Ϊ�Ƽ�ֵ��ƽ������������Ⱦ�ٶȡ�������߾��ȿ���Ϊ 4096��4096��
��Ⱦ����:
File -> Render... -> ѡ�� Tachyon -> Start Rendering
- ��
VMD_DIR ������ vmdscene.dat
- ����
VMDrender_full.bat �õ� full.bmp
- ���ݵ�ǰ�鿴�Ĺ�������������Ϲ��������
- HOMO ��� ->
HOMO_-6.546eV.bmp���������Խ� 4 �� parse_mo.py �����
- LUMO ��� ->
LUMO_-1.428eV.bmp
- ��
HOMO_-6.546eV.bmp / LUMO_-1.428eV.bmp �ƶ��� WORK_DIR
�ļ����е� . ��Ӱ���ļ���ʶ��ϵͳȡ���һ�� . ֮��IJ���Ϊ���������ⲿ Tachyon �����ݣ����� TachyonInternal ��ȾΪ TGA������ Python ת BMP��
��ʹ�� Tcl �ű�������Ⱦ���� render ����ǰ���� display resize 2048 2048��
�ļ���ת
WORK_DIR/input.gjf
-> g16 -> input.out + input.chk
-> formchk -> input.fchk
-> ����Ϊ MULTIWFN_DIR/1.fchk
-> parse_mo.py �Զ�����������
-> �� showorb.txt �����Χ
-> showorb.bat
-> VMD_DIR/orb000010.cub -> ���ݵ� WORK_DIR/
-> VMD_DIR/orb000011.cub -> ���ݵ� WORK_DIR/
-> VMD ���� orb N �鿴
-> Render -> ������Ϊ HOMO_-6.546eV.bmp / LUMO_-1.428eV.bmp -> WORK_DIR/
����Ҫ��
- Gaussian 16W (�� Gaussian 16)
- Multiwfn 3.8
- VMD 1.9.4
- Python 3.8+ (check_gjf.py)
- Windows (PowerShell)
������
showorb.bat �Ҳ��� .fch �ļ�: ����ļ������Ƿ�ƥ�䡣bat ��Ĭ�� 1.fch����ʵ���� 1.fchk ���� bat��
showorb.bat ���·������: bat �� cub ���·��Ĭ��Ϊ D:\study\VMD193�����Ϊʵ�� VMD ·����
VMD �� orb ������Ч: ȷ�� vmd.rc �������� source showorb.vmd��
VMD ��ֵ�治��ʾ: �� orbiso 0.02 ���͵�ֵ��� orbiso 0.08 ���ߡ�
fchk ���� MO ��Ϣ: ȷ�� Gaussian ������� pop=full��
�ű�ȱʧ: �� MULTIWFN_DIR\examples\scripts\ ���� showorb.bat/txt/vmd��