top of page
33.jpg
55.jpg

KAIST부설 한국과학영재학교 온라인 과학매거진 코스모스

  • 블랙 페이스 북 아이콘
  • 블랙 인스 타 그램 아이콘

계산화학 거 하는 법: 계산화학 소개와 간단한 실습

  • 6시간 전
  • 5분 분량

  계산화학은 전반적인 화학 전체에서 아주 강력한 도구로써 작용합니다. 계산화학이 가진 힘을 글을 읽고 계신 여러분이 마음껏 활용하셨으면 좋겠습니다.


서론

  계산화학, 영어로는 Computational Chemistry는 이론과 실험을 통해 얻은 데이터와 컴퓨터로 분자의 여러 특성을 계산하는 학문입니다. 대표적으로 유기화학 메커니즘을 검증, 시뮬레이션 하거나 분자의 구조를 3차원으로 계산, 최적화하고, 분자의 성질과 스펙트럼을 예측하는 것이 있습니다. 이것 뿐만 아니라 많은 분야에서 계산화학을 사용합니다. 계산화학은 다른 화학 분과들에 비해서 망상화학이나 클릭화학처럼 신생에 속하지만, 그 영향력은 어마어마한 학문입니다. 유기, 무기를 넘나들며 전반적인 화학에서 계산화학은 필수이며, 최근 계산화학을 할 줄 안다는 것 하나만으로 좋은 메리트가 될 수 있습니다.



계산화학의 간단한 역사

  계산화학의 기틀이 쌓이기 시작했던 첫번째 이론적 계산은 1927년, 독일의 물리학자 Walter Heitler 와 폴란드의 물리학자 Fritz London이 valence bond theory를 이용해서 이루어졌습니다. 이후 컴퓨터의 발전이 이루어진 1940년대, 드디어 복잡한 원자 구조에 대한 wave equation을 시도할 수 있게 되면서 1950년대 초반 semi-empirical atomic orbital계산이 처음으로 이루어지게 됩니다. 그리고 1956년, 매사추세츠 공과대학 (MIT)에서 처음으로 ab initio Hartree-Fock method로 계산을 했습니다. Gaussian Orbitals를 이용한 다원자물질의 계산은 1950년대 후반에 이루어졌고, 첫 configuration interaction계산은 켐브릿지에서 1950년대 후반에 이루어졌습니다.

  이렇게 계속 발전하던 계산화학은 1970년대 초반, ATMOL이나 Gaussian 같은 프로그램이 개발되며 접근성이 좋아졌고, 1970년, “Computers and Their Role in the Physical Sciences” 라는 책에서 처음 Computational Chemistry, 계산화학이 언급되며 새로운 화학의 분과로 거듭나게 됩니다.

  이후 1998년, 2013년에 계산화학으로 노벨 화학상이 수상되기도 하고, 많은 연구, 논문에서 계산화학이 사용되는 등 그 활용도와 중요도가 점점 높아지고 있습니다.


이 프로그램은 무료로 계산해줍니다!

  계산화학도 결국엔 연구되는 학문인지라, 프로그램에 돈이 많이 깨집니다. 많게는 수천만이나 억단위로 깨질 수도 있습니다. 하지만 우리에겐 무료 프로그램들이 있습니다. 무료 프로그램들로도 초보적인 수준은 충분히 계산 가능하고, 실제 연구에서도 활용 가능합니다. 지금부터 그 두 개의 프로그램을 소개하겠습니다.


ORCA
ORCA
ORCA

  ORCA는 C++ 기반 계산화학 프로그램으로써, 학술적인 용도 내에서 무료입니다. ORCA는 기본적으로 콘솔에서 돌아가고, 쓰레드 기능을 지원하며, 기능이 무지막지하게 많습니다. 기본적인 구조부터 알아볼까요?

  ORCA는 입력을 .inp 형식의 파일로, 출력을 .out 형식의 파일로 받습니다. 우선 .inp부터 살펴보자면, 간단히 말해 ORCA를 돌리기 위한 코드입니다.

.inp 파일은 다음과 같이 구별됩니다.

! <keyword lines> #comment

%

<input block>

end

*<specification of the coordinate>

end

*<specification of the coordinate>

*

  첫번째로 keyword입니다. 보통 초반 줄에 쓰는 것이고, ! 뒤에 있기만 하면 여러 줄로 쓸 수 있습니다. 이곳에는 띄어쓰기로 구분된 키워드를 적습니다. 키워드는 밑에 적힐 input block에 따라 달라지며, 더 자세한 내용은 ORCA manual의 2.1.7. Simple Keyword Lines를 확인하세요.

  두번째로 input block입니다. %와 end 사이에 적으며, 일반적으로 두번째로 씁니다. ORCA를 돌릴 때 쓸 설정 값들을 미리 정할 수 있으며, 종류가 많아도 너무 많아서 다 적진 못하고 몇 개만 이야기하도록 하겠습니다.

method

계산 방법을 설정할 수 있음

basis

Basis sets를 설정

pal

사용할 CPU 개수 설정

  몇 가지 end를 적지 않아도 되는 input block도 있습니다.

base, cclib, id, ljcoefficients, maxcore, moinp, pointcharges

  Input block의 종류를 적었으면 내부에 그 설정 값을 적을 수 있습니다. 설정 값은 다음과 같이 씁니다.

%inputblock

    VariableName Value

    VariableName = Value

END

  VriableName 은 어떤 값을 설정할지, Value는 그 설정 값입니다. ORCA 매뉴얼에 나와 있는 input block의 예시도 알아보겠습니다.

%scf #scf 블록 시작

  Guess PModel  # Guess라는 설정 값을 PModel로 설정

  SOSCF #SOSCF 서브 블록 (input block 속에 값 설정을 위한 또 다른  block) 시작

    start 0.002  # 값 설정

  end #SOSCF 블록 닫기

end #scf 블록 닫기

%mdci #mdci 블록 시작

  MP2FragInter {1 1} {2 2}  # MP2FragInter를 {1 1}와 {2 2}로 설정

end #mdci 블록 닫기

%basis #basis 블록 시작

  NewGTO  #NewGTO 서브블록 시작

    H "def2-SVP" #각 값 설정

    S 1

    1 0.05 1.0

  end  #NewGTO 블록 닫기

end #블록 닫기

  추가로 NewGTO 블록 내의 입력 값과 MP2FragInter의 입력 값은 특이한 케이스로, 본래 입력 방법과 달리 특이한 입력을 받는 설정 값들입니다. 이런 값들은 ORCA 매뉴얼에 잘 나와있으니 참고 바랍니다.

  마지막으로 specification of the coordinated 입니다. 이 부분은 ORCA를 돌리는데 가장 중요하다고 할 수 있는 파트로, 우리가 ORCA를 통해 계산하려는 분자에 관해 적는 곳입니다.

* CType Charge Multiplicity

...

coordinate specifications

...

*

  위는 ORCA 매뉴얼에서 specification of the coordinated에 대해 설명하는 파트에서 가져온 것으로, 각각 CType은 입력 방식, Charge는 분자가 가진 순수한 양전하 또는 음전하의 양, 그리고 Multiplicity는 전자가 가진 스핀의 총합이 가질 수 있는 상태의 수인 Spin multiplicity를 의미합니다.

  CType은 세가지가 있습니다. 이 부분은 뒤에 소개할 Avogadro가 잘해주니 조금만 하고 넘기도록 하겠습니다.

CType

필요한 정보

xyz

각 원자의 x좌표, y좌표, z좌표

int

각 원자의 분자간의 연결, 결합길이, 결합각, 이면각

gzmt

Gaussian Program에서 쓰는 방식

  그리고 Multiplicity는 이론적으로는 이렇게 계산합니다.



  .inp 파일을 다 만들었으면 콘솔을 켜서 ORCA를 돌릴 준비를 합니다. ORCA는 앞에서 말했듯이 콘솔에서 쓰기 때문에 기본적으로 cmd를 쓸 줄 알면 좋습니다.

  우선 cmd상에서 ORCA가 있는 곳으로 이동합니다. 그리고 input file을 ORCA를 설치한 파일에 넣습니다. 이후 ORCA를 돌리기 위해서 orca라는 명령어를 씁니다. 이 명령어는 다음과 같은 구조를 띕니다.

orca input_file.inp > output_file.out

  input_file.inp와 output_file.out은 모두 절대 경로 또는 상대 경로여야 하지만, 이번 경우에는 input file과 ORCA가 같은 파일에 있으므로 그냥 파일명으로 돌릴 수 있습니다.

  이후 output file이 나오는데 확장명은 .out이며, 명령어에서 지정한 경로에 생성됩니다. 이 output file에는 계산 후 결과가 들어있는 만큼 굉장히 중요한 파일입니다. 제대로 결과가 나왔다면 이 파일에 ORCA TERMINATED NORMALLY라는 문구가 적힙니다. 이후 필요한 값들을 찾아서 정리하고, 결과 값을 쓰면 됩니다. 


Avogadro
Avogadro 2
Avogadro 2

  뭔가 ORCA로 다 계산한 것 같지만 Avogadro도 필수입니다. ORCA input file을 만들 때 세번째로 있던 것, Specification of the coordinated 때문입니다. 위에서 본 것처럼 사람이 직접 작성하기 힘듭니다. 특히 분자 좌표 입력은 더 그렇고, 분자가 복잡해질 수록 더 힘들어집니다. 그것을 도와주는 것이 Avogadro입니다. 이 프로그램은 GUI를 통해서 분자를 3D로 손 쉽게 그릴 수 있으며, ORCA input으로 뽑는 것도 도와줍니다.

  분자를 그리는 방법은 정말 간단합니다. 마우스 좌클릭으로 원자 생성, 다른 원자에서 클릭 후 끌어서 해당 원자와 결합시키기, 마우스 우클릭으로 결합, 원자 지우기만 가지고 뭐든 그릴 수 있습니다. 옆에는 원자의 종류를 선택할 수 있는 GUI가 있고 빈 공간을 마우스 클릭 후 드래그를 통해 화면 돌리기, 휠 클릭 후 드래그를 통해서 각도 돌리기, 드래그로 화면 확대를 할 수 있습니다. 그림 그리듯이 분자를 그릴 수 있는 거죠.


Avogadro 2 화면
Avogadro 2 화면

  분자를 다 그렸다면 이제 input으로 만들 차례입니다. Avogadro 2기준으로 [입력] > [ORCA] > [ORCA 입력 생성기]로 간 다음에 설정을 하고 [입력 저장]을 눌러 저장하면 끝입니다. 참 쉽죠?


사용 예제: 구조 최적화 하기

  배웠으면 한번 써봐야죠. 지금부터 예시로 분자 구조 최적화를 해봅시다. 우선 Avogadro에서 찌그러진 XeF4을 그립니다.


심각하게 찌그러진 XeF4
심각하게 찌그러진 XeF4

  .inp파일로 바꾸고, 최적화를 할 준비를 해줍니다.


.inp 설정 화면
.inp 설정 화면

  이후 만든 .inp로 ORCA를 돌리고, 확인해보면


ORCA를 돌리는 Console
ORCA를 돌리는 Console

  짜잔~


 Geometry Optimization이 완료된 XeF4
 Geometry Optimization이 완료된 XeF4

마무리

  사실 여기서 이야기한 계산화학은 수박 겉핥기에 불과합니다. 제대로 계산화학을 공부하려면 양자역학을 포함한 여러 물리학, 화학에게 공격당할 준비를 해야 하며, 이것들을 이겨낼 수 있어야 합니다. 절대로 쉽게 보면 안되지만, 저는 그런 점도 계산화학의 또 다른 매력이라고 생각합니다. 여러분들도 이번 글을 통해서 계산화학의 매력을 느끼고, 한번쯤 계산화학의 길도 고려해보았으면 합니다.



김지성 학생기자 | Chemistry | 지식더하기


참고자료

[1]  ORCA 6.1 Manual

[2] Wikipedia Contributors. (2019, December 27). Computational chemistry. Wikipedia; Wikimedia Foundation. https://en.wikipedia.org/wiki/Computational_chemistry


첨부 이미지 출처

[1] Wikipedia contributors. (2025, October 10). Computational chemistry. Wikipedia. https://en.wikipedia.org/wiki/Computational_chemistry

[2] ORCA 6.1 Manual

[3] https://www.two.avogadro.cc

[4] https://github.com/ORCAQuantumChemistry


© KAIST부설 한국과학영재학교 온라인 과학매거진 KOSMOS
© KAIST부설 한국과학영재학교 온라인 과학매거진 KOSMOS

댓글


워터마크_colored.png

KOSMOS는 KSA Online Science Magazine of Students의 약자로,

KAIST부설 한국과학영재학교 학생들이 만들어나가는 온라인 과학매거진 입니다.

단체소개  운영진에게  이용약관  기자단 페이지

​본 단체와 웹사이트는 KAIST부설 한국과학영재학교의 지원으로 운영되고 있습니다.

저작물의 무단 전재 및 배포시 저작권법 136조에 의거 최고 5년 이하의 징역 또는 5천만원 이하의 벌금에 처하거나 이를 병과할 수 있습니다. 

© 2018 한국과학영재학교 온라인 과학매거진 KOSMOS. ALL RIGHTS RESERVED. Created by 김동휘, 윤태준.

KAIST부설 한국과학영재학교 바로가기

_edited_edited.png
bottom of page