시간 종속 Schrödinger 방정식을 수치 적으로 푸는 간단한 방법이 있습니까?


34

한 차원에서 간단한 전위에서 웨이브 패킷을 산란시키는 간단한 시뮬레이션을 실행하고 싶습니다.

단일 입자에 대한 1 차원 TDSE를 수치 적으로 해결하는 간단한 방법이 있습니까? 나는 일반적으로 순진한 접근 방식을 사용하여 부분 미분 방정식을 통합하려고하면 재난으로 빠르게 끝날 수 있음을 알고 있습니다. 따라서 알고리즘을 찾고 있습니다.

  • 수치 적으로 안정적이며
  • 구현이 간단하거나 쉽게 액세스 할 수있는 코드 라이브러리 구현
  • 합리적으로 빨리, 희망적으로
  • 비교적 이해하기 쉽습니다.

또한 스펙트럼 방법, 특히 시간과 무관 한 슈뢰딩거 방정식을 평소와 같이 해결하는 방법에 비해 비교적 명확한 방법을 원합니다. 그러나 B- 스플라인을 사용하는 의사 스펙트럼 방법에 관심이있을 것입니다. 방법이 시간에 따른 잠재력을 가질 수 있다면 그것은 확실히 보너스입니다.

물론 그러한 방법은 항상 여러 가지 단점이 있으므로 그 방법에 대해 듣고 싶습니다. 언제 작동하지 않습니까? 일반적인 함정은 무엇입니까? 어떤 방법으로 추진할 수 있습니까?



@EmilioPisanty 나는 SSFM의 내 글에 오류에 대한 토론을 추가했습니다 : 나는 당신이 스펙트럼 방법에 관심이 없지만 (경우에 따라 죄송합니다) 당신이 스펙트럼 방법에 관심이 없다는 것을

스레드를 청소; 물리학에서 주제에 대한 토론을 제거합니다.
Geoff Oxberry

1
더 최근의 작업이 많이 있지만 여기에서 시작하는 것이 좋습니다 . 시간 종속 Schrödinger 방정식에 대한 다른 전파 체계 비교 .
David Ketcheson

3
@GeoffOxberry 댓글의 스크린 샷을 만들 수 있습니까?
Emilio Pisanty

답변:


24

슈뢰딩거 방정식은 사실상 반응-확산 방정식 (모든 상수는 1이다). 편미분 방정식에 관해서는 두 가지 방법으로 해결할 수 있습니다.

(1)iψt=2ψ+Vψ
  1. 암시 적 방법 (adv : 큰 시간 단계 및 무조건 안정적, disadv : 잘못된 데이터를 제공 할 수있는 매트릭스 솔버 필요)
  2. 명시 적 방법 (adv : 구현하기 쉽고 disadv : 안정성을 위해 약간의 시간 단계가 필요함)

포물선 방정식 (선형 들어 와의 2 차 X ), 암시 적 방법은 종종 더 나은 선택이다. 그 이유는 명시 적 방법의 안정성을 위한 조건d t d x 2를 필요로하기 때문에 매우 작기 때문입니다. 시간 단계에 대한 제한이없는 암시 적 방법을 사용 하여이 문제를 피할 수 있습니다 (실제로는 물리학을 잃을 수 있기 때문에 일반적으로 미친 듯이 크게 만들지는 않지만). 다음에 설명 하는 것은 일반적인 2 차 정확 (공간 및 시간) 암시 적 체계 인 Crank-Nicolson 방법 입니다.txdtdx2

초보자

PDE를 계산적으로 해결하려면 PDE를 이산해야합니다 (변수를 그리드에 맞추십시오). 가장 직설적 인 것은 직사각형의 직교 그리드입니다. 여기서 은 시간 인덱스를 나타내고 (항상 수퍼 스크립트 임) j 는 위치 인덱스를 나타냅니다 (항상 첨자). 위치 의존 변수에 Taylor 확장 을 사용함으로써 , 식 (1)은 i ψ n + 1 jψ j가됩니다nj 우리가 가정 한V=V(X). 다음에 일어날 일은 공간 및 시간 지수와 같은 그룹화입니다 (수학을 다시 확인하고 싶을 수도 있습니다). 1

iψjn+1ψjdt=12(ψj+1n+12ψjn+1+ψj1n+1dx2+ψj+1n2ψjn+ψj1ndx2)+12(Vjψjn+1+Vjψjn)
V=V(x) 이 방정식의 형태는 (A0A00A+A0A00A+A0A)(ψ n + 1 0 ψ n + 1 1ψ n + 1 J 1 )=(
(2)12dtdx2ψj+1n+1+(idtdx212Vj)ψjn+1+12dtdx2ψj1n+1=iψjn12dtdx2(ψj+1n2ψjn+ψj1n)+12Vjψjn
이것은 삼각 행렬로 불리우며 알려진 해결책이있습니다. 명시 적 방법은iψ n + 1 j 항을제외하고 식 (2)의 전체 왼쪽 (또는 맨 위 줄)을 긁습니다.
(A0A00A+A0A00A+A0A)(ψ0n+1ψ1n+1ψJ1n+1)=(ψ0nψ1nψJ1n)
iψjn+1

이슈

암시 적 방법으로 찾은 가장 큰 문제는 경계 조건에 크게 의존한다는 것입니다. 경계 조건을 잘못 정의 / 구현 한 경우 셀에 잘못된 진동이 발생하여 결과가 나빠질 수 있습니다 ( 유사한 주제에 대한 SciComp 게시물 참조 ). 이것은 실제로 당신의 계획 이 제시 해야하는 2 차보다는 공간에서 1 차 정확도를 갖습니다 .

암시 적 방법은 병렬화가 어려울 것으로 예상되지만 1D 열 방정식에만 사용했으며 병렬 지원이 필요하지 않으므로 주장을 확인하거나 거부 할 수 없습니다.

또한 웨이브 함수의 복잡한 특성이 계산에 어떤 영향을 미치는지 잘 모르겠습니다. 내가 한 작업은 오일러 유체 역학 방정식을 사용 하므로 음이 아닌 크기로 전적으로 실제입니다.

시간에 따른 잠재력

Vcos(ωt)tVjt+dt

대안

dtdx2dtdt/NNΔT=N2dtNNdt제 시간에). (크랭크 니콜슨 방식을 사용하여 한 프로세서에서 다른 프로세서로 데이터를 병합하는 데 사용되는 한 셀에서 다른 셀로 잘 정의 된 "플럭스"가 있기 때문에이 방법을 사용하지 못했습니다.)

편집 주목할 점은이 방법이 시간 순서대로 정확하다는 것입니다. 그러나 Runge-Kutta 2 방법을 함께 사용하면 시간 순서에 따라 2 차 순서가 정확합니다.

2ψx2ψj1n+1ψjn+1ψjn+ψj+1ndx2
2ψx2ψj+1n+1ψjn+1ψjn+ψj1ndx2
n+1

1
좋은 대답은 불만은 당신이 나를 이겼다는 것입니다!
Kyle

RI

hνhν

1
tu=Dx2u+R(u)R(u)=Vu(계속해서 검색하십시오). 아마도 PETSc, deal.ii 또는 pyCLAW와 같은 표준 라이브러리를 사용하는 것이 더 좋을 것입니다.
Kyle Kanos

1
@KyleKanos : 게시물이 좋습니다. 실제로 DavidKetcheson이 게시 한 기사에서 Crank-Nicolson은 첫 번째 참조로 옹호되었습니다. 반응-확산과의 비교는 양호하다; 아시다시피, 반응-확산과의 비교는 많은 출판 된 출처에서 나타납니다. DavidKetcheson은 앞서 언급 한 "분산 파 방정식"과 같은 것을 찾고 있다고 생각합니다.
Geoff Oxberry

22

ψ=R+iI

dRdt=HIdIdt=HRH=12m2+V

RIR0,Δt,2Δt,...I0.5Δt,1.5Δt,...)

R(t+12Δt)=R(t12Δt)+ΔtHI(t)

I(t+12Δt)=I(t12Δt)ΔtHR(t)

2ψ(r,t)=ψ(r+Δr,t)2ψ(r,t)+ψ(rΔr,t)Δr2

Δt

확률 밀도를 다음과 같이 정의

P(x,t)=R2(x,t)+I(x,t+12Δt)I(x,t12Δt)

P(x,t)=R(x,t+12Δt)R(x,t12Δt)+I2(x,t)

알고리즘을 단일화하여 확률을 보존합니다.

충분한 코드 최적화를 통해 80486 컴퓨터에서 매우 멋진 애니메이션을 실시간으로 계산할 수있었습니다. 학생들은 잠재력을 끌어 내고 총 에너지를 선택하며 가우스 패킷의 시간 진화를 볼 수 있습니다.


그것은 실제와 상상의 구성 요소를 해결하기위한 매우 깔끔한 트릭입니다! 또한을 사용하여 큰 중심 방정식을 얻을 수 있습니다 $$ ... $$. 나는 당신을 위해 이것을하는 자유를 취했습니다, 나는 당신이 상관하지 않기를 바랍니다!
Kyle Kanos 2014

우리는 알고리즘을 발견하게되어 기뻤습니다. 프로그래밍이 쉽고 빠르게 실행되었습니다. 가장 어려운 부분은 초기 조건을 올바르게하고 있었으며 R은 t = 0이고 I는 0.5dt입니다 ... 편집을 신경 쓰지 않습니다.

1
@ user40172 우리는 거의 동시에 도파관에 대해 같은 일을하고 있었고, 내 대답에 설명 된 BPM을 정했습니다. 그 당시에는 DSP 보드를 사용하여 메인 CPU와 별도로 FFT를 실행할 수 있었기 때문입니다. 우리는 우리가 너무 영리하다고 생각했지만, 본질적 으로 소프트웨어 문제에 대한 하드웨어 솔루션을 생각해 내야한다고 말해야합니다 . Visual Studio C ++의 최신 버전은 CPU를 통해 코드를 자동으로 벡터화하며 FFT와 함께 아름답게 작동합니다.

1
0.5dt

1
@Rusian 산란 작업을 수행 한 이후 표준 자유 입자 가우시안 웨이브 패킷을 사용했지만 전위가 0이 아닌 모든 영역에서 "충분히"시작했습니다. 예를 들어, 참조 : demonstrations.wolfram.com/EvolutionOfAGaussianWavePacket

10

xt

당신이하고있는 일은 다양한 단면 (시간에 따라 변하는 전위와 유사)의 도파관을 통한 광 전파를위한 위장 된 빔 전파 방법 의 위장 버전 이므로 이것도 찾아 보는 것이 도움이 될 것입니다.

SSFM / BPM을 보는 방법은 다음과 같습니다. 그 근거는 거짓말 이론의 Trotter 제품 공식입니다.

(1)limm(exp(Dtm)exp(Vtm))m=exp((D+V)t)

xyxyzψ(x,y,z)tNΨ1024×1024N=10242=1048576

(2)dtΨ=KΨ=(D+V(t))Ψ

K=D+VN×Nu(N)Ψexp(Kt)iK=D+VNU(N)D+Vi2/(2m)i1V0+i1(V0V(x,y,z,t0))V0

우리는하자 :

(3)D=i2m2i1V0V=i1(V0V(x,y,z,t))

왜 이렇게 나누 었는지 아래에서 명확해질 것입니다.

DΨexp(ΔtD)Ψ

  1. ΨΨ~x,y,zkx,ky,kz
  2. Ψ~exp(ΔtD)Ψ~exp(iΔt(V0kx2+ky2+kz2)/)
  3. exp(ΔtD)Ψ

    VV

  4. Ψexp(ΔtV)Ψexp(iΔt(V0V(x,y,z,t))/)

ΔtV(x,y,z,t)

Δtexp(D+VΔt)exp(DΔt)exp(VΔt)VD

이산 된 세계에서도 단일 연산자 인 FFT와 순수한 위상 요소 만 부여합니다.

ΔtΔxΔx/Δtc

이런 종류의 것들에 대한 두 번째 "경험"포인트-나는 이것이 당신이 당신의 아이디어를 따라가는 방법이라고 거의 기꺼이 내기 것입니다. 우리는 종종 간단하고 빠르며 더러운 시뮬레이션을하고 싶은 아이디어를 가지고 있지만 결코 그렇게되지 않습니다! 위에서 설명했듯이 SSFM부터 실행하기가 매우 쉬우므로 그 결과가 물리적인지 여부를 빠르게 확인할 수 있습니다. 나중에 Mathematica SSFM 코드를 사용하여 Kyle Kanos의 대답에 따라 Crank Nicolson 코드를 작성할 수있는보다 정교한 코드의 결과를 확인할 수 있다고 말합니다 .


오류 바운드

Baker-Campbell-Hausdorff Theorem의 Dynkin 공식 구현 :

exp(DΔt)exp(V)Δt)=exp((D+V)Δt+12[D,V]Δt2+)
Δt>0

exp(DΔt)exp(V)Δt)exp(12[D,V]Δt2)=exp((D+V)Δt+O(Δt3))

exp(V)Δt)exp(12[D,V]Δt2)Δt

Δt22[D,V]=iΔt22m(x2V(x,t)+2xV(x,t)x)

[D,V]exp(12[D,V]Δt2)eiφΔt2(id(12[D,V]iφ(t))Δt2)(id(12[D,V]iφ(t))Δt2)ψψ(x,t)Δtφ(12[D,V]iφ(t))Δt2exp(φdt)

SSFM / BPM의 오류에 대한 관련 논문은 다음과 같습니다.

라스 틸렌. "빔 전파 방법 : 적용 가능성 분석", Optical and Quantum Electronics 15 (1983) pp433-439 .

Lars Thylén은 비거의 이론적 용어로 오류에 대해 생각합니다 (Lie 그룹은 구부러져 있으므로 해석을 찾고 싶습니다). 그의 아이디어는 본질적으로 위와 동일합니다.


1
exp[Δt(D+V)]exp[ΔtV/2]exp[ΔtD]exp[ΔtV/2]Δt힘. 예를 들어 Bandrauk and Shen, Chem. 물리. 레트 사람. 176, 428 (1991). 운동학 용어는 좌표에 의존 할 수 없습니다. 즉, 곡선 좌표에서는 제대로 작동하지 않습니다.

1
그렇지 않으면, 운동 에너지 연산자의 FFT 평가와 결합 된이 분할 연산자는 Molecular Physics의 그리드 기반 표현에서 TDSE를 해결하기위한 표준 절차 중 하나입니다.

@ 당황 많은 감사합니다. 다른 분야가 무엇을 사용하는지 아는 것이 좋습니다. 참고로 1991 년 날짜는 흥미 롭습니다. 1970 년대 후반에 분할 단계 아이디어가 도파관 시뮬레이션에서 나온 것이므로 항상 틀 렸습니다.

1
당신은 전혀 틀리지 않습니다. 그것은 실제로 영감이었습니다. 내가 알고있는 QM으로 이러한 아이디어를 번역하는 첫 번째 작업은 Feit, Fleck 및 Steiger, J. Comput입니다. 물리. 47, 412 (1982)에서, 내가 정확하게 기억한다면, 그들은 기본적으로 여기에서 운영자가 구성에 의해 단일 적이라는 장점으로 고전적인 파도와는 달리 동일한 트릭을 사용합니다. 이러한 유형의 시뮬레이션에 대한 FFT- 그리드 기반 접근 방식은 Ronnie Kosloff가 처음 제안했습니다. 그는 자신의 웹 페이지에서이 주제에 대한 아주 좋은 리뷰를 가지고 있습니다.

내 분야에서 또 다른 좋은 참고 문헌은 Quantum Mechanics에 관한 David Tannor의 책 : 시간 의존적 관점입니다. 건배.

5

FDTD (finite-difference time-domain) 방법을 사용하는 것이 좋습니다. 나는 심지어 대부분의 질문에 대답해야 할 튜토리얼을 썼다.

JR Nagel, "슈뢰딩거 방정식에 적용되는 유한 차분 시간 영역 알고리즘의 검토 및 적용"ACES Journal, Vol. 2009 년 2 월 24 일 1 일

1D 시스템에서 잘 작동하는 Matlab 코드가 있습니다. FDTD에서 전자기 작업을 수행 한 경험이 있다면 양자 역학에도 효과적입니다. 관심이 있다면 코드를 게시 할 수 있습니다.

기본적으로 미분 값을 유한 한 차이로 나눠서 파동 함수에서 직접 작동합니다. 크랭크-니콜슨 방식과 비슷하지만 정확히는 아닙니다. 전자기파 이론의 FDTD에 익숙하다면 Schrodinger 방정식을 풀 때 FDTD가 매우 직관적입니다.


4

가장 간단한 유한 차분 법은 빠르고 이해하기 쉽지만 시간이 단일하지 않으므로 확률이 보존되지 않습니다. Crank-Nicholson-Crout은 전진 및 후진 유한 차분 법을 평균화하여 이해하기 쉽고 구현하기 쉽고 시간에 단일 한 하이브리드 암시 적 / 명시 적 방법을 생성합니다. 이 사이트는 방법을 잘 설명하고 의사 코드를 제공하며 관련 속성을 제공합니다.

http://www.physics.utah.edu/~detar/phycs6730/handouts/crank_nicholson/crank_nicholson/ 참고 :이 링크 중 하나의 방정식 LHS에서-부호가 누락되어 페이지 전체에 전파됩니다.

비 단일성은 어디에서 오는가?

간단히 말해서, TDSE를 해결하면 처리 방법을 알아낼 수 있습니다.

|ψ(x,t)=eiHt|ψ(x,0)

지수에 미분 연산자가 포함되어 있습니다.

순방향 유한 차분을 적용하면 미분 연산자가 3 각형 행렬로 변환되고 (실수를 그리드로 변환) 지수가 Taylor 시리즈의 처음 두 항으로 지수가됩니다.

eiHt1iHt

이러한 이산화 및 선형화는 비 일관성을 유발합니다. (삼각형 행렬이 직접 계산에 의해 단일하지 않음을 보여줄 수 있습니다.) 전방 유한 차이와 후방 유한 차이를 결합하면 근사값이 생성됩니다.

eiHt112iHt1+12iHt

친절하게는 단일화됩니다 (직접 계산으로 다시 표시 할 수 있음).


빠른 응답에 감사합니다. 이 두 가지 방법에 대한 자세한 정보를 제공해 주시겠습니까? 그들은 어떻게 작동하고 왜? 비 단일성은 어디에서 오는가?
Emilio Pisanty

더 자세한 정보를 제공 할 수는 있지만 목표 대상이 누락되는 것을 피하려면 미적분학, 미분 방정식, 선형 대수학, 양자 역학 각각의 배경 분야에서 얼마나 많은 교육과 경험을 가졌는지 아는 것이 좋습니다. 및 수치 적 방법 (특히 유한 차분 법).

표준 물리학과 수학에서 필요한만큼을 가정하십시오 (더 복잡한 부분에 대한 참조가 도움이 될 수 있음). 그래도 내 수치 방법은 약간 녹슨 것입니다.
Emilio Pisanty

(1+i2Ht)1(1+i2Ht)ψ

아닙니다. Kyle Kanos가 제공 한 것과 동일한 알고리즘입니다. 방금 다른 방법으로 볼 수 있도록이 방법을 썼습니다. 나는 개념화하기가 더 쉬웠 으면 좋았지 만 그의 구현은 더 쉬웠다. 그렇습니다. 당신은 궁극적으로 3 각 방정식을 풀고 있습니다. 아주 잘 설명 앞에서 찾을 수 AJP에있는 오래 된 (1967) 종이가 있었다 : ergodic.ugr.es/cphys/lecciones/SCHROEDINGER/ajp.pdf 그들은 가우스 웨이브 패킷의 생산 8mm 필름 루프에 CN을 사용 다양한 잠재력을 분산시킵니다. 많은 대학 물리 데모 라이브러리에서 이러한 영화 루프를 찾을 수 있습니다.

3

여기에 몇 가지 답변과 의견이 TDSE와 파동 방정식을 혼동합니다. 아마도 의미 론적 문제 일 것이다. TDSE는 고전적 비 상대적 하밀 토니안 의 양자화 된 버전입니다.

H=p22m+V(x)=E.
pix,  Eit,  xx,
[22mxx+V(x)]ψ=itψ,
2
xxψ=ttψ+

ψn+1=(I+iτ2H~)1(Iiτ2H~)ψn
I
Hjk=(H~)jk=22m[δj+1,k+δj1,k2δjkh2]+Vjδjk.
ψψψs=eikx/L
|ψ|2dx
cp=E
c
icx=it
즉, 분산이없는 이류 방정식 (Lax-Wendroff 방법과 올바르게 통합 된 경우)이며,이 경우 웨이브 패킷이 시간에 따라 퍼지지 않습니다. 양자 아날로그는 질량이없는 입자 Dirac 방정식입니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.