이 페이지에서 다룹니다
NOTE 31-03-00 · 단위계와 atom_style 선택
1. 일반 사항
A. 목적
- 이 노트는
units명령으로 단위계를 정하는 절차를 다룬다. - 이 노트는
atom_style명령으로 원자가 갖는 속성을 정하는 절차를 다룬다. - 두 명령과 짝을 맞춰야 하는 명령을 확인한다.
B. 적용 범위
- 모든 LAMMPS 입력 스크립트의 초기화 단계에 적용한다.
units와atom_style은 모두 박스를 만들기 전에 선언한다.
C. 결과 요약
- 실제로는
real,metal,lj세 단위계를 압도적으로 많이 쓴다. - 응용 단계에서 가장 흔히 고르는 atom_style 은
full(분자 + 전하)과atomic(단순 입자)이다. - 기본값은
units lj,atom_style atomic이다. units와atom_style은 뒤따르는 거의 모든 명령의 의미를 좌우한다.
2. 준비 정보
A. 필요한 개념
- NOTE 31-02-00 의 4단계 구조 중 초기화 단계를 알아야 한다.
B. 참조 자료
| 참조 | 제목 |
|---|---|
| LAMMPS 공식 매뉴얼 | units, atom_style 명령 |
| NOTE 31-02-00 | 입력 스크립트 구조 |
3. 절차
A. 단위계 선언
주의 한 번 정한 단위는 시뮬레이션 전체에 적용되고 박스를 정의한 뒤에는 바꿀 수 없다.
- 입력 스크립트의 거의 첫 줄에
units를 둔다. 이것이 관례다.
units real # 또는 lj, metal, electron, si, cgs, micro, nano
참고
LAMMPS 내부의 산술은 늘 같다. 입력값과 출력값을 어떤 물리 단위로 해석할지는 units 명령이 정한다. 기본값은 lj 다.
B. 단위계 비교
- 아래 표에서 각 단위계의 길이·시간·에너지·질량 단위를 확인한다.
units |
길이 | 시간 | 에너지 | 질량 | 주된 사용처 |
|---|---|---|---|---|---|
lj |
σ (환원) | τ (환원) | ε (환원) | m (환원) | LJ/입자 시뮬레이션 |
real |
Å | fs | kcal/mol | g/mol | 생체·유기 분자 (OPLS, AMBER, CHARMM) |
metal |
Å | ps | eV | g/mol | 금속·결정 (EAM, MEAM, Tersoff) |
electron |
Bohr | fs | Hartree | amu | 전자 구조 또는 양자 결합 |
si |
m | s | J | kg | 표준 SI |
cgs |
cm | s | erg | g | 고전 CGS |
micro |
µm | µs | 유도값 | pg | 마이크로 입자 / 콜로이드 |
nano |
nm | ns | 유도값 | ag | 나노 스케일 MD |
- 실제로 많이 쓰는 세 단위계의 용도를 확인한다.
real: 생체분자, 폴리머, 일반 유기물. 시간 단위 fs와 에너지 kcal/mol이 대부분의 분자역학 교과서와 같다.metal: 금속, 반도체, 산화물. EAM·Tersoff·MEAM 같은 금속용 포텐셜과 짝을 이룬다.lj: 환원 단위. 교과서 예제, 모델 입자, 빠른 테스트에 알맞다.
C. 단위계 선택
경고
단위를 바꾸면 수치를 모두 다시 환산해야 한다. 같은 시스템을 real 에서 metal 로 바꾸면 온도·시간·에너지 값이 모두 다르게 해석된다. 예를 들어 timestep 1.0 은 real 에서는 1 fs, metal 에서는 1 ps다. 같은 숫자가 천 배 다른 시간을 가리킬 수 있다. 단위를 바꿨다면 입력 전체를 다시 점검한다.
- 사용할 힘장(또는 포텐셜)을 확인한다.
- 힘장 파라미터가 보고된 단위에 맞춰 단위계를 고른다. 이것이 가장 안전하다.
- OPLS·AMBER·CHARMM 계열은
real을 쓴다. - EAM·MEAM·Tersoff 등 금속 포텐셜은
metal을 쓴다. - 교과서 LJ 입자는
lj를 쓴다.
- OPLS·AMBER·CHARMM 계열은
- 결과를 보고할 단위를 확인한다.
- 단위계를 결과 보고 단위와 맞춘다. 맞추면 분석할 때 단위를 따로 통일할 필요가 없다.
참고
매뉴얼에 따르면 LAMMPS 의 출력은 모두 units 가 정한 단위로 나온다. dump 의 좌표는 길이 단위, thermo 의 에너지는 에너지 단위 그대로다.
D. atom_style 선언
- 박스를 만들기 전에
atom_style을 한 번 선언한다.atom_style은 원자 하나가 갖는 속성을 정한다.
atom_style atomic # 또는 charge, molecular, full, bond, angle, ...
참고
기본값은 atomic 이다.
E. atom_style 선택
- 아래 표에서 시스템에 맞는 atom_style 을 고른다.
atom_style |
갖는 속성 | 대표 사용 사례 |
|---|---|---|
atomic |
위치, 속도, type | LJ 입자, 단순 금속(EAM 등) |
charge |
atomic + 전하 | 이온 결정, 단순 전해질 |
bond |
atomic + 결합 정보 | 결합만 있는 단순 폴리머 |
angle |
bond + 각도 | 가벼운 분자 (e.g. SPC 물 모델은 angle 또는 full) |
molecular |
bond + angle + dihedral + improper | 분자 시스템 (전하 X) |
full |
molecular + 전하 | 대부분의 생체분자 시뮬레이션 (CHARMM, AMBER, OPLS) |
dipole |
atomic + 쌍극자 모멘트 | 점쌍극자 모델 |
sphere |
atomic + 회전·반지름 | 거대 입자(DEM, granular) |
ellipsoid |
sphere + 비등방 회전 | Gay-Berne 같은 비대칭 입자 |
- 데이터 파일을 만들었거나 받았다면, 그 파일이 가정하는 atom_style 을 먼저 확인한다.
참고
응용 단계에서 가장 흔히 고르는 것은 full(분자 + 전하)과 atomic(단순 입자)이다. 입문 단계에서는 이 둘만 기억해도 된다.
F. 짝을 이루는 명령 맞추기
- 다음 명령의 값을
units와atom_style에 맞춘다.mass: 단위계에 맞는 질량 값을 입력한다.pair_style,pair_coeff: 힘장 파라미터를 단위계에 맞게 입력한다.timestep:real은 보통 1.0 (fs),metal은 0.001 (ps),lj는 0.005 정도가 출발점이다.velocity ... create T:T는 단위계의 온도 단위다.
4. 시험 및 검사
A. atom_style 불일치 점검
경고
데이터 파일에 전하가 있는데 atom_style atomic 또는 bond 로 선언하면 전하가 무시된다. 이 경우 에너지 값이 이상하게 나온다.
- "Bonds defined but no bond_style" 오류가 나는지 확인한다. 데이터 파일에 결합 정보가 있는데
atom_style atomic으로 선언한 경우에 난다. - 데이터 파일에 전하가 있다면 선언한 atom_style 이 전하를 포함하는지 확인한다.