方程

对一维Schrödinger-Boussinesq方程

{itψ+γψxxξuψ=0uttuxx+αuxxxx(f(u))xxω(ψ2)xx=0\left\{ \begin{aligned} i \partial_t \psi + \gamma \psi_{xx} -\xi u\psi &= 0 \\ u_{tt}-u_{xx}+\alpha u_{xxxx}-\left(f(u)\right)_{xx} -\omega \left( \left| \psi \right|^2 \right)_{xx} &= 0 \end{aligned} \right.

取周期边界. 令ψ=p+iq\psi = p + iq, vxx=tuv_{xx}=\partial_t u. 则方程变成

{tp=γqxx+ξuqtq=γpxxξuptu=vxxtv=uαuxx+f(u)+ωψ2\left\{ \begin{aligned} \partial_t p &= -\gamma q_{xx} + \xi uq \\ \partial_t q &= \gamma p_{xx} - \xi up \\ \partial_t u &= v_{xx} \\ \partial_t v &= u-\alpha u_{xx}+f(u)+\omega \left|\psi\right|^2 \end{aligned} \right.

记质量为

Ωψ(x,t)2dx\int_{\Omega} | \psi(x,t)|^2 \text{d}x

有质量守恒 记能量为

E(p,q,u,v)=Ωu2+v2+2ωγξψ2+αu2+2F(u)+2ωuψ2dxE\left(p,q,u,v\right)=\int_{\Omega} u^2+|\nabla v|^2+\frac{2\omega \gamma}{\xi}|\nabla \psi |^2+\alpha|\nabla u|^2+2F(u)+2\omega u|\psi |^2 \text{d}x

其中F(u)F(u)表示f(u)f(u)的积分, 一般取f(u)=θu2f(u)=\theta u^2. 这时有能量守恒.

能量守恒

VP-AVF

空间采取有限差分, 对(u,v)(p,q)(u,v)\rightarrow (p,q)的顺序进行基于变量的AVF方法后, 格式为

{δt+pn=Dγq12+ξun+1q12δt+qn=Dγp12ξun+1p12δt+un=Dv12δt+vn=u12Dαu12+ωψn2+θ3((un)2+(un+1)2+unun+1)\left\{ \begin{aligned} \delta_t^+ p^n &= -D\gamma q^{\frac{1}{2}}+\xi u^{n+1} q^{\frac{1}{2}} \\ \delta_t^+ q^n &= D\gamma p^{\frac{1}{2}}-\xi u^{n+1} p^{\frac{1}{2}} \\ \delta_t^+ u^n &= Dv^{\frac{1}{2}} \\ \delta_t^+ v^n &= u^{\frac{1}{2}}-D\alpha u^{\frac{1}{2}} +\omega \left| \psi^{n} \right|^2+\frac{\theta}{3}\left((u^n)^2+(u^{n+1})^2+u^nu^{n+1}\right) \end{aligned} \right.

其中DD表示2阶中心差分离散.

GRD-AVF

在基于格点的AVF方法中, 不妨采取(i1)(i)(i+1)(i-1) \rightarrow (i) \rightarrow (i+1)的顺序, 则格式有

{δt+Pin=γh2(Qi1n+1+Qi+1n2Qi12)+ξ2Uin+1(Qin+Qin+1)δt+Qin=γh2(Pi1n+1+Pi+1n2Pi12)ξ2Uin+1(Pin+Pin+1)δt+Uin=1h2(Vi+1n+Vi1n+1VinVin+1)δt+Vin=Ui12αh2(Ui1n+1+Ui+1nUin+1Uin)+ωΨin2+θ3((Uin)2+(Uin+1)2+UinUin+1)\left\{ \begin{aligned} \delta_t^+ P_i^n &= -\frac{\gamma}{h^2} \left(Q_{i-1}^{n+1}+Q_{i+1}^n-2Q_i^{\frac{1}{2}}\right) + \frac{\xi}{2} U_i^{n+1} (Q_i^n + Q_i^{n+1}) \\ \delta_t^+ Q_i^n &= \frac{\gamma}{h^2} \left(P_{i-1}^{n+1}+P_{i+1}^n-2P_i^{\frac{1}{2}}\right) - \frac{\xi}{2} U_i^{n+1} (P_i^n + P_i^{n+1}) \\ \delta_t^+ U_i^n &= \frac{1}{h^2}(V_{i+1}^n+V_{i-1}^{n+1}-V_i^n-V_i^{n+1}) \\ \delta_t^+ V_i^n &= U_i^{\frac{1}{2}} - \frac{\alpha}{h^2}\left(U_{i-1}^{n+1}+U_{i+1}^{n}-U_i^{n+1}-U_i^n\right)+\omega\left|\Psi_{i}^{n}\right|^2 +\frac{\theta}{3}\left( (U_{i}^n)^2+(U_{i}^{n+1})^2+U_{i}^nU_{i}^{n+1} \right) \end{aligned} \right.

数值格式

DP-AVF

将前两式合并后可得数值格式

{(iτξUin+12τγh2)Ψin+1=iΨinτγh2(Ψi+1n+Ψi1n+1Ψin)+τξUin+12ΨinUin+1+τh2Vin+1=τh2(Vi+1n+Vi1n+1Vin+1)+UinVin+1τ(αh2+12+θ3Uin)Uin+1τθ3(Uin+1)2=Vin+τ2Uinταh2(Ui1n+1+Ui+1nUin)+τωΨin2+τθ3(Uin)2\left\{ \begin{aligned} \left(\text{i}- \frac{\tau \xi U_i^{n+1}}{2}-\frac{\tau \gamma}{h^2}\right) \Psi_i^{n+1}&= \text{i}\Psi_i^n -\frac{\tau \gamma}{h^2}\left(\Psi_{i+1}^n+\Psi_{i-1}^{n+1}-\Psi_i^n\right) +\frac{\tau \xi U_i^{n+1}}{2}\Psi_i^n\\ U_i^{n+1}+\frac{\tau}{h^2}V_i^{n+1} &= \frac{\tau}{h^2}(V_{i+1}^n+V_{i-1}^{n+1}-V_i^{n+1})+U_i^n \\ V_i^{n+1} - \tau\left(\frac{\alpha}{h^2}+\frac{1}{2}+\frac{\theta}{3}U_i^n \right)U_i^{n+1} - \frac{\tau \theta}{3}\left(U_i^{n+1}\right)^2 &= V_i^n+\frac{\tau}{2}U_i^n-\frac{\tau \alpha}{h^2}\left( U_{i-1}^{n+1}+U_{i+1}^n-U_i^n\right)+\tau \omega\left|\Psi_{i}^{n}\right|^2 +\frac{\tau \theta}{3}\left(U_i^n\right)^2 \end{aligned} \right.

伴随格式

{(iτξUin2τγh2)Ψin+1=iΨinτγh2(Ψi1n+Ψi+1n+1Ψin)+τξUin2ΨinUin+1+τh2Vin+1=τh2(Vi1n+Vi+1n+1Vin+1)+UinVin+1τ(αh2+12+θ3Uin)Uin+1τθ3(Uin+1)2=Vin+τ2Uinταh2(Ui+1n+1+Ui1nUin)+τωΨin+12+τθ3(Uin)2\left\{ \begin{aligned} \left(\text{i}- \frac{\tau \xi U_i^{n}}{2}-\frac{\tau \gamma}{h^2}\right) \Psi_i^{n+1}&= \text{i}\Psi_i^n -\frac{\tau \gamma}{h^2}\left(\Psi_{i-1}^n+\Psi_{i+1}^{n+1}-\Psi_i^n\right) +\frac{\tau \xi U_i^{n}}{2}\Psi_i^n\\ U_i^{n+1}+\frac{\tau}{h^2}V_i^{n+1} &= \frac{\tau}{h^2}(V_{i-1}^n+V_{i+1}^{n+1}-V_i^{n+1})+U_i^n \\ V_i^{n+1} - \tau\left(\frac{\alpha}{h^2}+\frac{1}{2}+\frac{\theta}{3}U_i^n \right)U_i^{n+1} - \frac{\tau \theta}{3}\left(U_i^{n+1}\right)^2 &= V_i^n+\frac{\tau}{2}U_i^n-\frac{\tau \alpha}{h^2}\left( U_{i+1}^{n+1}+U_{i-1}^n-U_i^n\right)+\tau \omega\left|\Psi_{i}^{n+1}\right|^2 +\frac{\tau \theta}{3}\left(U_i^n\right)^2 \end{aligned} \right.

启动层外推

Dyin=yin+yi+2n2yi+1nh2Dy_i^n=\frac{y_i^n+y_{i+2}^{n}-2y_{i+1}^{n}}{h^2}

{(iτξUin2+τγ2h2)Ψin+1=iΨinτγh2(12Ψin+Ψi+2n2Ψi+1n)+τξUin2ΨinUin+1τ2h2Vin+1=Uin+τh2(12Vin+Vi+2n2Vi+1n)Vin+1τ(α2h2+12+θ3Uin)Uin+1τθ3(Uin+1)2=Vin+τ2Uinταh2(12Uin+Ui+2n2Ui+1n)+τωΨin2+τθ3(Uin)2\left\{ \begin{aligned} \left(\text{i}- \frac{\tau \xi U_i^{n}}{2}+\frac{\tau \gamma}{2h^2}\right) \Psi_i^{n+1}&= \text{i}\Psi_i^n -\frac{\tau \gamma}{h^2}\left(\frac{1}{2}\Psi_{i}^n+\Psi_{i+2}^{n}-2\Psi_{i+1}^n\right) +\frac{\tau \xi U_i^{n}}{2}\Psi_i^n \\ U_i^{n+1}-\frac{\tau}{2h^2}V_i^{n+1}&= U_i^n+\frac{\tau}{h^2}\left(\frac{1}{2}V_i^n+V_{i+2}^n-2V_{i+1}^n\right)\\ V_i^{n+1} - \tau\left(-\frac{\alpha}{2h^2}+\frac{1}{2}+\frac{\theta}{3}U_i^n \right)U_i^{n+1} - \frac{\tau \theta}{3}\left(U_i^{n+1}\right)^2 &= V_i^n+\frac{\tau}{2}U_i^n-\frac{\tau \alpha}{h^2}\left( \frac{1}{2}U_{i}^{n}+U_{i+2}^n-2U_{i+1}^n\right)+\tau \omega\left|\Psi_{i}^{n}\right|^2 +\frac{\tau \theta}{3}\left(U_i^n\right)^2 \end{aligned} \right.

数值验证

精确解算例

  1. 平面波解

u=2ψ=ei(xt)u=2\\ \psi = e^{\text{i}(x-t)}

  1. 孤子波解 取b1=δ+S24γb_1=\delta +\frac{S^2}{4\gamma}, d1=1S2d_1=1-S^2, μ=b1γ\mu=\sqrt{\frac{b_1}{\gamma}}, ζ=xSt\zeta=x-St, SSδ\delta是自由变量.
    • γξd1=2b1(3γθαξ)\gamma \xi d_1=2b_1 (3\gamma\theta -\alpha \xi), 3αξγθ3\alpha\xi \neq \gamma\theta, 4αb1γd14\alpha b_1 \neq \gamma d_1.

    {ψ=±6b1ξγθαξγωsech(μζ)tanh(μζ)exp(i(S2γx+δt))u=6b1ξsech2(μζ)v=12Sb1μξ(xrxxrxl11+e2μζ)x[xl,xr],t0\left\{ \begin{aligned} \psi &= \pm\frac{6b_1}{\xi}\sqrt{\frac{\gamma\theta-\alpha\xi}{\gamma\omega}} \text{sech} (\mu\zeta) \tanh (\mu \zeta) \exp \left(\text{i} (\frac{S}{2\gamma} x + \delta t) \right)\\ u &= -\frac{6b_1}{\xi} \text{sech}^2 (\mu\zeta) \\ v &= \frac{12Sb_1}{\mu \xi}\left( \frac{x_r-x}{x_r-x_l}-\frac{1}{1+\text{e}^{2\mu\zeta}} \right)\qquad x\in [x_l,x_r], t \geq 0 \end{aligned} \right.

    • 3αξγθ3\alpha\xi \neq \gamma\theta, 4αb1γd14\alpha b_1 \neq \gamma d_1.

    {ψ=6αb1γ2θω(γd14αb1)sech(μζ)exp(i(S2γx+δt))u=6b1ξsech2(μζ)v=4Sb1μξ(xrxxrxl11+e2μζ)x[xl,xr],t0\left\{ \begin{aligned} \psi &= \sqrt{\frac{6\alpha b_1}{\gamma^2\theta\omega}\left( \gamma d_1-4\alpha b_1 \right)} \text{sech} (\mu\zeta) \exp \left(\text{i} (\frac{S}{2\gamma} x + \delta t) \right)\\ u &= -\frac{6b_1}{\xi} \text{sech}^2 (\mu\zeta) \\ v &= \frac{4Sb_1}{\mu \xi}\left( \frac{x_r-x}{x_r-x_l}-\frac{1}{1+\text{e}^{2\mu\zeta}} \right)\qquad x\in [x_l,x_r], t \geq 0 \end{aligned} \right.

    • γ=1\gamma = 1, ξ=1\xi=1, α=1\alpha=1, θ=43\theta=\frac{4}{3}, ω=118\omega=\frac{1}{18}, S=15S=\sqrt{\frac{1}{5}}, δ=112\delta=\frac{1}{12}, Ω=[40,40]\Omega = [-40,40], T=10T=10. 此时b1=215b_1=\frac{2}{15}, d1=45d_1=\frac{4}{5}, μ=215\mu=\sqrt{\frac{2}{15}}, 应选择第1个精确解.
    • γ=1\gamma = 1, ξ=1\xi=1, α=23\alpha=\frac{2}{3}, θ=19\theta=\frac{1}{9}, ω=12\omega=-\frac{1}{2}, S=2215S=\sqrt{\frac{22}{15}}, δ=13\delta=\frac{1}{3}, Ω=[64,64]\Omega = [-64,64], T=1T=1. 此时b1=710b_1=\frac{7}{10}, d1=715d_1=-\frac{7}{15}, μ=710\mu=\sqrt{\frac{7}{10}}, 应选择第1个精确解.

问题

  1. 需要启动层
    • 暂时单线程不并行的情况下, 左边界用精确解代替.
    • 应该是要用别的数值格式来先算出启动层, 还在看.
    • Richardson Extrapolation/外推
  2. 数值格式涉及二次函数, 两个根的问题
    • 先试了一下求根公式中正负号, 发现全正会发散, 全负时误差10110^{-1}.
    • 双根取离上一步近的那个.
  3. 目前能量误差10210^{-2}.