Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

Nonhomogeneous Wave Equation with NDSolve

  • To: mathgroup at smc.vnet.net
  • Subject: [mg121677] Nonhomogeneous Wave Equation with NDSolve
  • From: Jiwan Kim <hwoarang.kim at gmail.com>
  • Date: Sun, 25 Sep 2011 05:42:24 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com

Hello, mathgroup.

I want to ask you how to solve the nonhomogeneous wave equation.
I know that usual wave equation is very simple to handle.
However, problem in this code is a source function, G[z,t] and the boundary
condition.
Experiment conditions are as following.
There is 1-dim slab {z,0,L}.
If the heat pulse exert on left edge z=0, we got the evolution of electron
(Te[z,t]) and lattice temperature (Tl[z,t]) in the slab.
I have got these temperature profile using NDSolve.
And the G[z,t] of the wave equation is proportional to the Tl[z,t].
I think that here is the problem.
The source function of the wave equation is given by dG[z,t]/dz.
However, dG[0,t]/dz is not possible because z=0 is left boundary of the
slab.
I think that this kind of problem is well known one.
How can I solve this. Is there anything that I am wrong..?
Here is the code.
Plz, help me.
Thank you in advance..

(* Properties of Nickel, Converted to nm and ps *)
Remove["Global`*"];
\[Rho] = 8910;(* mass density : kg/m^3 *)
v = 4.08;(* sound velocity : nm/ps *)
\[Beta] = 1.34 10^-5;(* linear expansion : /K *)
B = 1.8 10^11; (* bulk modulus : Pa *)
\[Gamma] =
 1.065 10^3; (* 6000 electron heat cap. at 300 K : 3.19 10^5 J/m^3K *)
\

Cl = 3.95 10^6; (* lattice heat cap. : 3.95 10^6 J/m^3K = 26.1 \
J/mol.K *)
g = 4.4 10^5; (* coupling constant : 4.4 10^17 W/m^3.K *)
K = 91 10^6; (* thermal conductivity : 91 W/m.K -> 91 10^18 *)
\[Xi]1 = 13.5; (* pump absorption depth: nm *)
\[Xi]2 = 14.5; (* probe absorption depth: nm *)
I0 = 3 10^10; (* 6.1 10^13 J/m^2.pulse(ps) -> 6.6 10^22 *)
pulwth = 0.15 ; (* 150 fs *)
\[Sigma] = pulwth/(2 (2 Log[2])^0.5);
S[t_] := I0 Exp[-t^2/(2 \[Sigma]^2)];
pow[z_, t_] := 1/\[Xi]1 S[t] Exp[-z/\[Xi]1]; (* W/m^3 *)
L = 400; (* sample thickness : nm *)
solution =
 NDSolve[{\[Gamma] Te[z, t] D[Te[z, t], t] ==
     K D[Te[z, t], z, z] - g (Te[z, t] - Tl[z, t]) + pow[z, t],
    Cl D[Tl[z, t], t] == g (Te[z, t] - Tl[z, t]),
    Te[z, -5] == Tl[z, -5] == 300,
    Te[L, t] == 300, (D[Te[z, t], z] /. z -> 0) == 0}, {Te, Tl}, {z,
    0, L}, {t, -5, 50}, MaxSteps -> Infinity,
   MaxStepSize -> {0.3, 0.03}, Method -> "ImplicitRungeKutta"][[1]]
Plot3D[Tl[z, t] /. solution, {z, 0, 100}, {t, -1, 50},
 PlotRange -> All]
G[z_, t_] = 3 \[Beta] B/\[Rho] ( Tl[z, t] - 300) /. solution;
Plot3D[G[z, t], {z, 0, L}, {t, -5, 50}, PlotRange -> All]

solution2 =
 NDSolve[ D[u[z, t], t, t] == v^2 D[u[z, t], z, z] - D[G[z, t], z],
   v^2 (D[u[z, t], z] /. z -> 0) - G[0, t] == 0, u[L, t] == 0,
   u[z, -5] == 0, {u}, {z, 0, L}, {t, -5, 50}, MaxSteps -> Infinity,
   Method -> "ImplicitRungeKutta"][[1]]
Plot3D[u[z, t] /. solution2, {z, 0, L}, {t, -5, 50}]


-- 
-----------------------------------------------------------------------------
Institute of Physics and Chemistry of Materials Strasbourg (IPCMS)
Department of Ultrafast Optics and Nanophotonics (DON)
23 rue du Loess, B.P. 43,
67034 STRASBOURG Cedex 2, France



  • Prev by Date: Re: 1-liner wanted
  • Next by Date: Re: A fast way to compare two vectors
  • Previous by thread: Re: Elementwise Matrix Subtraction
  • Next by thread: plotting equations