Mathematica How Can I Solve Complex PDEs Using Mathematica's NDSolve?

AI Thread Summary
The discussion centers on solving a set of coupled integrodifferential equations using NDSolve. The equations involve parameters and variables related to a physical system, with specific initial conditions required for proper integration. The first equation describes the time evolution of S, while the second involves an integral of S affecting A. Participants note that NDSolve may not be suitable for this problem due to its complexity, particularly because the equations include derivatives with respect to both time and space. Suggestions include reformulating the equations into a canonical form and using numerical methods like the Euler method to handle the integration at each time step. The need for appropriate initial conditions for both S and A is emphasized to facilitate the numerical solution.
crazybird
Messages
16
Reaction score
0
I have a pde set as following:

parameters: γ, ω, α, β, c, η
variables: z,t; x,y
want: S = S(z,t;x,y)
A = A(z,t)

∂S/∂t = -γ*S - i ω*A*exp{-i*[(-θ-α*t)*x+β*t*y]}
[∂/∂t + (1/c)*∂/∂t] A = -i η*∫∫dxdy S*exp{i*[(-θ-α*t)*x+β*t*y]}

The integral range is angle:(0,2Pi), radius: (0,R)

How to solve this equation with NDSolve? I tried the following, which obviously does not work:

Code:
t1 = 500;(*ns, duration=5*10^-7 s*)
\[Mu] = -250;(*ns, central=-2.5*10^-7 s*)
\[Sigma] = 100;(*ns, width=10^-7 s*)
L = 1;
R = 0.2;
c = c = 29.979;
\[Gamma] = 1/100000;
\[Omega] = 1.329489268210057*10^-8;
\[Eta] = 2.0034565952485216*10^9;
\[Theta] = 1022.4;
\[Alpha] = 4.09;
\[Beta] = 0;

sol = NDSolve[{\!\(
\*SubscriptBox[\(\[PartialD]\), \(t\)]\(sS[z, t, x]\)\) == -\[Gamma]*
      sS[z, t, x] - 
     I \[Omega]* E^(-I ((-\[Theta] - \[Alpha] t)*x))*aS[z, t, x], (\!\(
\*SubscriptBox[\(\[PartialD]\), \(z\)]\(aS[z, t, x]\)\) + 1/c  \!\(
\*SubscriptBox[\(\[PartialD]\), \(t\)]\(aS[z, t, 
         x]\)\)) == -I \[Eta]* 
     NIntegrate[
      E^(I ((-\[Theta] - \[Alpha] t)*x))*sS[z, t, x], {y, -R, 
       R}, {x, -Sqrt[R^2 - y^2], Sqrt[R^2 - y^2]}] , 
   sS[z, -t1, x] == 0, 
   aS[z, -t1, x] == 
    1/(Sqrt[2 Pi] \[Sigma]) E^(-((-t1 - \[Mu])^2/(2 \[Sigma]^2))), 
   aS[0, t, x] == 
    1/(Sqrt[2 Pi] \[Sigma]) E^(-((t - \[Mu])^2/(2 \[Sigma]^2)))}, {sS,
    aS,x}, {z, 0, L}, {t, -t1, 0}, {x, -R, R}, MaxSteps -> Infinity, 
  StartingStepSize -> 0.01, PrecisionGoal -> 1000, 
  MaxStepSize -> 0.01]

Anyone know how to do it easily?
 
Last edited:
Physics news on Phys.org
I don't think NDSolve can solve that. Strip it down into it's canonicalized form so that's it's easier to see what's going on. Looks like:

\frac{\partial S}{\partial t}=-yS-iwA g(t,x,y)

\frac{\partial A}{\partial t}=-ik\int_0^{2\pi}\int_0^{R} S(z,t,u,v) g(t,u,v)dudv

So since the derivative are only with respect to t, those are ordinary coupled integrodifferential equations. However you need appropriate initial conditions. For example, you need an initial region for S so that the integration can be performed for every time step starting at t=0. So the initial conditions would be:

A(z,0)= h(z)

S(z,0,x,y)=g(z,x,y),\quad 0\leq x\leq R,\quad 0\leq y\leq 2\pi

for some constant z. Then I think just start by coding a simple Euler method. Do just like you would do for two ordinary DEs, but at each time step, numerically compute the integral and add it into the calculations.

That's a start anyway. May need to tweek it.
 
Last edited:
Hi, jackmell,

After many trials I also realize that it is not quite possible to simply use NDSolve to get it done. Thanks for the suggestion to go to a canonicalized form and I find that one can put the e^ factor into the variables to make a better looking form. I find that I made a mistake--the second equation involves a derivative of z: [∂/∂z + (1/c)*∂/∂t] A=... . It is not only ODEs. So things get complicated. I am trying to find a numerical way to solve it. Thanks for you answer~
 

Similar threads

Replies
1
Views
2K
Replies
1
Views
2K
Replies
6
Views
7K
Replies
1
Views
4K
Replies
5
Views
2K
Replies
3
Views
3K
Back
Top