Re: How to plot field lines ?
- To: mathgroup at smc.vnet.net
- Subject: [mg72208] Re: How to plot field lines ?
- From: "Narasimham" <mathma18 at hotmail.com>
- Date: Thu, 14 Dec 2006 05:49:33 -0500 (EST)
- References: <elos9v$oiq$1@smc.vnet.net>
Cham wrote: > Hello, I'm new here. > > I have some complicated deformed dipolar magnetic field in cartesian components, and I need to show > some field lines. I'll also have to extract coordinates of lines to a list. How should I do that ? > I can use the code below (with properly defined functions fx, fy and fz), but it's unreliable > (it frequently hit the singularity at the center) and it frequently gives many unpredictable curves. > Any idea ? Please, I need help ! :-( > > FieldCurve = NDSolve[{ > > x'[t] == fx[ x[t], y[t], z[t] ], y'[t] == fy[ x[t], y[t], z[t] ], z'[t] == fz[ x[t], y[t], z[t] ], > > x[0] == ... number ..., > y[0] == ... number ..., > z[0] == ... number ... > > }, {x, y, z}, {t, 0, 100}, MaxSteps -> 10000] > > Graph = ParametricPlot3D[ > Evaluate[{x[t], y[t], z[t]}/. FieldCurve], > {t, 0, 100}, PlotPoints -> 1000] ------ " It works fine for some right hand side functions/BC chosen as above. Check how your functions behave at required critical points by beginning with simple functions. Avoid giving BC at or near singularities, i.e.,near positive/negative charges/source/sinks &c." << RealTime3D` tm = 50 ; FieldCurve = NDSolve[{ x'[t] == Sin[ z[t]] - y[t], y'[t] == x[t] - Cos[z[t]], z'[t] == -Sin[y[t]] + x[t] , x[0] == 2, y[0] == 1, z[0] == 0 }, {x, y, z}, {t, 0, tm}, MaxSteps -> 10000] ; Graph = ParametricPlot3D[ Evaluate[{x[t], y[t], z[t]} /. FieldCurve], {t, 0,tm}, PlotPoints -> 1000] ; Narasimham