Skip to content

Project Proposal

JJ04s edited this page Jun 1, 2026 · 8 revisions

1. 서비스 주제 및 핵심 기능

1.1 서비스 주제

수치해석 기법을 활용하여 1D/2D 슈뢰딩거 방정식의 해를 구하고, 양자 역학적 상태와 시간 진화를 시각화하는 웹 기반 시뮬레이터.

본 프로젝트는 이를 웹 기반 인터랙티브 워크스페이스 형태로 구현하여, 설치 없이 다양한 퍼텐셜과 초기 조건에 대한 양자계의 거동을 직관적으로 탐색할 수 있도록 하는 것을 목표로 한다.

1.2 핵심 기능

방정식 풀이 (방법론)

  • RK4, FDM 등의 미분방정식 풀이를 위한 수치해석 기법의 구현.

  • 시간 독립 슈뢰딩거 방정식

$$ -\frac{\hbar^2}{2m} \frac{\partial^2 \psi}{\partial x^2} + V(x) \psi(x) = E \psi(x) $$

를 수치적으로 해결, 결과적으로 파동함수와 상태에 대한 에너지를 획득.

  • 시간 진화 슈뢰딩거 방정식

$$ i \hbar \frac{\partial \psi(x, t)}{\partial t} = -\frac{\hbar^2}{2m} \frac{\partial^2 \psi(x, t)}{\partial x^2} + V(x) \psi(x, t) $$

를 수치적으로 해결, 파동함수가 시간에 따라 진행하는 모습 등 관찰.

  • 사용자가 직접 퍼텐셜 $V(x)$, 질량 $m$ 등의 물리량을 조작 가능하게 하여 인터랙티브한 UI 구축.

결과 해석

  • 위에서 수치적으로 구한 파동함수, 에너지 등 Plotting.

  • $|\psi(x)|^2$가 입자가 특정 위치에 존재할 확률을 나타낸다는 Born Interpretation에 의거해 입자 위치의 확률밀도함수 계산.

2. 시스템 구성

2.1 화면 흐름

  • 초기 화면: 새 프로젝트 생성 또는 저장된 프로젝트 불러오기 선택.
  • 설정 모달: 시뮬레이션 차원(1D or 2D) 및 기초 시스템 유형 선택 후 진입.
  • 워크스페이스: 실시간 시뮬레이션 및 결과 해석 진행.

2.2 워크스페이스 구성

기본적으로 좌/우, 상/하 방향으로 구분된 4분할의 화면 표시.

  1. 좌상단: 각 격자점의 퍼텐셜 에너지 정의. 영역 드래그 후 값 입력, 또는 수식 입력 등으로 퍼텐셜 에너지 설정에 자유도 부여.
  2. 우상단: 질량, 격자점 수, 격자 간격 등의 시스템 물리량 설정.
  3. 좌하단: 분석 모드(위치, 에너지, 시간진화 등) 설정.
  4. 우하단: 분석 수행.

2.3 추가 고려 사항

  • 2D 모드 혹은 격자점의 개수가 너무 많아질 시 연산에서 지연이 발생, 실시간 시각화가 불가능한 경우 우려. '계산' 버튼을 통해 시스템에 대한 변수를 json 파일로 미리 저장해 놓고, 분석에서 활용하는 방법 등 적용 가능.
  • 실시간 상태 변화 시 LocalStorage에 저장, 일정 시간마다 DB 연동하는 등의 방식을 통해 저장 버튼이 필요없는 워크스페이스의 구현 가능.
  • 수치적 해의 안정성은 다음과 같은 well-known test case 활용.

double slit: 전자의 파동함수가 검출기에서 간섭을 일으키면 성공.

Harmonic oscillator: $E_{n+1} - E_{n}$의 인접한 에너지 사이 간격이 일정하면 성공.

...

3. 기술 스택

Frontend

  • React + JavaScript: JSDoc을 이용해 물리량의 성격과 물리 단위를 명시.

Database

  • MongoDB

Workspace

퍼텐셜 편집

  • react-konva: 드래그, 확대/축소, 격자 표시, 영역 선택 등 인터랙티브한 퍼텐셜 편집 기능 구현
  • math.js: 사용자가 수식으로 퍼텐셜 (V(x)), (V(x,y))를 입력할 경우 수식 파싱 및 격자값 계산에 사용

결과 시각화

  • plotly.js: 에너지 레벨, 파동함수, 확률밀도, 2D heatmap 등 정적 결과 시각화
  • requestAnimationFrame + Canvas: 시간 진화에 따른 파동함수 및 확률밀도 변화를 프레임 단위로 렌더링

수치해석 엔진

  • 초기 구현은 JavaScript 기반으로 진행
  • 격자 크기 증가 또는 2D 시간 진화 등으로 계산량이 커져 성능 저하가 발생할 경우, 계산 루틴을 C 기반 WebAssembly(WASM)로 최적화