본 가이드는 시뮬레이션 후처리에 integrated_analysis.py (MDAnalysis 기반) 를 사용한다.
주요 분석 항목과 각각의 화학적 의미를 정리한다.
7.1 방사 분포 함수 (Radial Distribution Function, RDF)
정의
방사 분포 함수 $g(r)$ 은 임의의 기준 입자에서 거리 $r$ 에 다른 입자가 발견될 확률을 이상 기체 (균일 분포) 와 비교하여 정규화한 양이다.
$$ g_{\alpha\beta}(r) = \frac{1}{\rho_\beta} \left\langle \sum_{i \in \alpha} \sum_{j \in \beta, j \neq i} \frac{\delta(r - r_{ij})}{4\pi r^2} \right\rangle $$
분석 페어와 화학적 의미
| 페어 | 첫 피크 위치 (Å) | 화학적 의미 |
|---|---|---|
| Cu - 벤젠 C | 약 3.0-3.5 | 첫 흡착층 거리 (π-d 분산력) |
| Cu - 에탄올 O | 약 2.7-3.2 | 산소가 표면에 닿는 거리 |
| 벤젠 - 벤젠 (C-C) | 약 3.6-3.8 | π-π stacking 거리 |
| 에탄올 O - 에탄올 H | 약 1.8 (수소 결합) | 수산기 수소 결합 |
| 에탄올 O - 에탄올 O | 약 2.8 | 수산기 O-O 분리 |
벤젠-벤젠 stacking 거리 약 3.7 Å은 sandwich 또는 T-shape 배열에 해당한다. 벤젠 dimer의 ab initio 계산값은 3.4-3.9 Å (Sherrill 외) 이므로 OPLS-AA 결과는 좋은 예측을 보여야 한다.
LAMMPS 내부 RDF 계산
LAMMPS에서 직접 RDF를 계산할 수도 있다.
compute rdf_cu_o all rdf 200 12 5 cutoff 15.0 # OPLS-AA: Cu(12)-O(5)
fix rdf_save all ave/time 100 10 1000 c_rdf_cu_o[*] file rdf_cu_o.dat mode vector
다만 본 가이드는 외부 후처리 (integrated_analysis.py) 가 더 유연하므로 그쪽을 권장한다.
7.2 밀도 프로파일 (z 방향)
정의
z 방향 (표면 수직) 의 분자별 밀도 분포는 슬랩 시스템에서 가장 중요한 분석량이다.
$$ \rho_\alpha(z) = \frac{\langle N_\alpha(z, z + \Delta z) \rangle}{L_x L_y \Delta z} \cdot m_\alpha $$
여기서 $m_\alpha$ 는 종 $\alpha$ 분자의 질량이다.
예상되는 프로파일 형태
| 영역 | 벤젠 밀도 | 에탄올 밀도 | 화학적 의미 |
|---|---|---|---|
| z < 0 (슬랩 내부) | 0 | 0 | 진공 또는 슬랩 |
| z = 슬랩 표면 ~ +5 Å | 큰 봉우리 | 작은 봉우리 | 1차 흡착층 |
| +5 Å ~ +10 Å | 작은 봉우리 | 봉우리 | 2차 층 |
| +10 Å 이상 | 일정값 (벌크) | 일정값 (벌크) | 액체상 |
| z > 박스 상한 | 0 | 0 | 진공 |
LAMMPS 내부 밀도 프로파일 계산
compute z_bins all chunk/atom bin/1d z lower 1.0 units box
fix density_save all ave/chunk 100 10 1000 z_bins density/mass file density.dat
bin/1d z lower 1.0 units box: z 방향으로 박스 하단부터 1 Å 폭의 빈으로 분할.
LAMMPS compute chunk/atom 문서 참조.
그룹별 밀도를 분리하려면 group을 먼저 정의한 뒤 chunk를 그룹에 적용한다.
compute z_bins_benzene benzene chunk/atom bin/1d z lower 1.0 units box
fix density_benzene benzene ave/chunk 100 10 1000 z_bins_benzene density/mass file density_benzene.dat
7.3 분리 효율 지수 (Separation Efficiency Index, SEI)
정의
SEI는 표면 1차 흡착층에서 두 분자 종의 분리 정도를 정량화한다.
$$ \text{SEI} = \left| x_{\text{benzene}}^{\text{surf}} - x_{\text{benzene}}^{\text{bulk}} \right| $$
여기서
- $x_{\text{benzene}}^{\text{surf}}$: 표면 1차 흡착층에서의 벤젠 분율
- $x_{\text{benzene}}^{\text{bulk}}$: 벌크 영역에서의 벤젠 분율
값의 의미:
- SEI = 0: 표면 조성 = 벌크 조성 (분리 없음, 완전 혼합)
- SEI = 1: 표면이 한 종만 흡착 (완전 분리)
계산 방법
- Cu 슬랩의 가장 상단 z 좌표 $z_{\text{Cu,max}}$ 결정.
- 표면 영역 정의: $z_{\text{Cu,max}} < z < z_{\text{Cu,max}} + 5$ Å.
- 벌크 영역 정의: $z > z_{\text{Cu,max}} + 10$ Å (또는 박스 상부 일정 거리).
- 각 영역에서 각 분자의 분자 수 (또는 질량) 평균.
- 분율 계산 및 차이 계산.
본 가이드의 사용자는 TraPPE-UA + MSM에서 SEI = 0.93-1.00 을 보고하였다. 이는 벤젠이 표면을 거의 완전히 점유한다는 것을 의미한다.
7.4 흡착 에너지 (Adsorption Energy)
정의
분자 $\alpha$ 의 흡착 에너지는 다음과 같다.
$$ \Delta E_{\text{ads}}^\alpha = E_{\text{surf+mol}} - E_{\text{surf}} - E_{\text{mol}} $$
여기서
- $E_{\text{surf+mol}}$: 표면에 흡착된 분자가 있는 시스템의 에너지
- $E_{\text{surf}}$: 같은 표면만의 에너지
- $E_{\text{mol}}$: 같은 분자가 자유롭게 (vacuum) 있는 에너지
MD에서의 추정
엄밀한 흡착 에너지 계산은 thermodynamic integration 등 별도 시뮬레이션이 필요하지만, 본 가이드의 production 궤적에서는 다음 양으로 근사할 수 있다.
$$ E_{\text{ads}}^\alpha \approx \langle E_{\text{Cu-}\alpha}^{\text{LJ+Coul}} \rangle_{\text{surf}} - \langle E_{\text{Cu-}\alpha}^{\text{LJ+Coul}} \rangle_{\text{far}} $$
LAMMPS에서 group-group 상호작용 에너지를 계산:
group benzene type 1 2
group copper type 12
# 두 그룹 간 비결합 상호작용 에너지 계산
compute cu_benzene all group/group benzene copper kspace yes
thermo_style custom step temp c_cu_benzene
LAMMPS compute group/group 문서 참조.
이 값은 표면에 가까운 벤젠 (1차 흡착층) 과 멀리 있는 벤젠 (벌크) 의 평균을 비교하여 흡착 에너지로 변환할 수 있다.
본 시스템에서의 예상 값
| 분자 | 흡착 에너지 (eV) | 흡착 에너지 (kJ/mol) | 화학적 특징 |
|---|---|---|---|
| 벤젠 | -0.27 ~ -0.32 | -26 ~ -31 | π-d 분산 (강) |
| 에탄올 | -0.15 ~ -0.25 | -14 ~ -24 | 산소 + 수소 결합 (중간) |
이는 Heinz et al. (2008) 의 LJ 파라미터가 표면 장력 및 단순 분자 흡착에 fit 되었다는 점, 그리고 사용자의 사전 결과와 일치한다.
7.5 계면 장력 (Interfacial Tension) — Irving-Kirkwood 방법
정의
계면 장력 $\gamma$ 는 시스템의 응력 텐서 (stress tensor) 의 z 방향 성분과 횡방향 성분의 차이로 계산된다 (Irving & Kirkwood 1950).
$$ \gamma = \frac{1}{2} \int_{-\infty}^{+\infty} \left[ P_{zz}(z) - \frac{P_{xx}(z) + P_{yy}(z)}{2} \right] dz $$
여기서 $P_{xx}, P_{yy}, P_{zz}$ 는 각 위치에서의 압력 텐서 성분이다. $1/2$ 계수는 슬랩에 두 개의 계면 (위/아래) 이 있기 때문에 한 계면당 장력으로 나누는 것이다.
LAMMPS에서 응력 텐서 계산
compute stress_atom all stress/atom NULL pair kspace bond angle dihedral improper
compute z_bins all chunk/atom bin/1d z lower 1.0 units box
fix stress_save all ave/chunk 100 10 1000 z_bins &
v_stress_xx v_stress_yy v_stress_zz file stress_profile.dat
variable stress_xx atom -c_stress_atom[1]/vol
variable stress_yy atom -c_stress_atom[2]/vol
variable stress_zz atom -c_stress_atom[3]/vol
stress/atom 의 부호는 응력 (tension positive) 이고, 압력은 음의 응력이므로 변환 시 부호 주의.
LAMMPS compute stress/atom 문서 참조.
단위 변환
LAMMPS real 단위에서 응력은 bar·Å (또는 atm·Å³의 부피당) 으로 나타난다.
계면 장력 SI 단위 (mJ/m² = mN/m) 로 변환:
$$ \gamma [\text{mJ/m}^2] = \gamma [\text{atm·Å}] \times 1.01325 \times 10^{-1} $$
또는 더 일반적으로:
$$ 1 \text{ bar·Å} = 0.1 \text{ mJ/m}^2 $$
본 시스템에서의 예상 값
| 계면 종류 | 계면 장력 (mJ/m²) | 비고 |
|---|---|---|
| 액체 벤젠 - 진공 (300 K) | ~28 | 실험값 |
| 액체 에탄올 - 진공 (300 K) | ~22 | 실험값 |
| Cu 표면 - 벤젠 (시뮬레이션) | 음의 값 가능 | 강한 흡착 |
| Cu 표면 - 에탄올 (시뮬레이션) | 중간 값 | |
| 벤젠/에탄올 혼합 - Cu (시뮬레이션) | 25-30 | OPLS-AA |
| 22-27 | TraPPE-UA |
7.6 통합 분석 스크립트 사용법
본 프로젝트의 integrated_analysis.py 는 위의 모든 분석을 한 번에 수행한다.
# Production 단계 분석
python integrated_analysis.py \
--topology trappe.data \
--trajectories 05_production.lammpstrj \
--stages production \
--log lammps_run.log \
--output analysis_trappe_msm
# 다단계 분석 (heating, equilibration, production 모두)
python integrated_analysis.py \
--topology trappe.data \
--trajectories 03_heat.lammpstrj 04_eq.lammpstrj 05_production.lammpstrj \
--stages heating equilibration production \
--log lammps_run.log \
--output analysis_trappe_msm
스크립트는 힘장 (OPLS-AA vs TraPPE-UA) 을 원자 수로 자동 감지하며, RDF, 밀도 프로파일, SEI, 흡착 에너지를 모두 계산하여 PNG 및 DAT 파일로 저장한다.
7.7 분석 결과의 통계적 신뢰성
각 분석량의 신뢰성을 보장하려면 다음을 점검해야 한다.
- 자기 상관 시간 확인: $\tau_A$ 가 production 시간보다 충분히 짧아야 함. (Allen & Tildesley 2017, Frenkel & Smit 2002)
- 블록 평균 (Block average) 방법: production 을 5-10 개 블록으로 나누어 블록 간 분산 계산.
- 수렴 그래프 표시: 누적 평균값이 시간에 따라 수렴하는지 시각화.
이러한 신뢰성 분석은 출판 시 평가자가 요구하는 표준 절차이다.
참고문헌
-
J. H. Irving, J. G. Kirkwood, "The Statistical Mechanical Theory of Transport Processes. IV.", J. Chem. Phys. 18, 817-829 (1950). DOI: 10.1063/1.1747782
-
N. Michaud-Agrawal, E. J. Denning, T. B. Woolf, O. Beckstein, "MDAnalysis: A toolkit for the analysis of molecular dynamics simulations", J. Comput. Chem. 32, 2319-2327 (2011). DOI: 10.1002/jcc.21787
-
M. P. Allen, D. J. Tildesley, "Computer Simulation of Liquids", 2nd ed., Oxford University Press (2017). ISBN: 9780198803195.
-
D. Frenkel, B. Smit, "Understanding Molecular Simulation", 2nd ed., Academic Press (2002). ISBN: 9780122673511.
-
LAMMPS 공식 문서,
compute rdf: https://docs.lammps.org/compute_rdf.html -
LAMMPS 공식 문서,
compute chunk/atom: https://docs.lammps.org/compute_chunk_atom.html -
LAMMPS 공식 문서,
compute stress/atom: https://docs.lammps.org/compute_stress_atom.html -
LAMMPS 공식 문서,
compute group/group: https://docs.lammps.org/compute_group_group.html