[Gmsh] ... electric field lines ...

Tammo Heeren Tammo.Heeren at ieee.org
Tue Oct 10 04:44:41 CEST 2006


Maybe I am not getting it, but

if you have the electric field vector you can calculate the magnitude of the 
electric field with the extract plugin. This will generate a new view for you. 
If you then use [options][range][iso-values] for this view, you will get electric 
field lines.

Tammo

On 9 Oct 2006 at 20:43, Matt Koch wrote:

> ... let me know how I can help ...
> 
> ... I am no good at C++ ...
> 
> ... I am fairly good at ANSI C, but tend to have a very non-standard 
> coding style (stemming from Fortran and Scilab) ...
> 
> Regards,
> 
> Matt Koch
> 
> Christophe Geuzaine wrote:
> 
> > mkoch at gvtc.com wrote:
> >
> >> OK,
> >>
> >> so, what I suggested below seems to work OK.
> >>
> >> The problem is, Plugin(StreamLines) seems to allow to start the 
> >> field  lines on a rectangular grid only. That makes the plot look 
> >> relatively  ugly, unless the grid is very fine, but then it takes a 
> >> long time to  calculate.
> >>
> >> Instead, I think what would be needed is an arbitrary definition of  
> >> starting points, such as on irregular electrode or ground surfaces. 
> >> I  realize that might be hard to implement, especially when trying to 
> >> go  through the simplified Plugin user interface.
> >>
> >> On the other hand, for GetDP, surfaces must usually be defined, and  
> >> thus it may be possible in GMsh to somehow "recall" these surfaces 
> >> and  thus their geometry points?
> >
> >
> >
> > That sounds like a good idea: we could maybe specify a geometrical 
> > entity--and the plugin would extract either the geometrical points or 
> > the points from the mesh to start the plugin. Or we could use another 
> > view as the input...
> >
> >
> >
> >>
> >> Regards,
> >>
> >> Matt Koch
> >>
> >> ----- Message from mkoch at gvtc.com ---------
> >>      Date: Fri,  6 Oct 2006 10:10:37 -0500
> >>      From: mkoch at gvtc.com
> >> Reply-To: mkoch at gvtc.com
> >>   Subject: Re: [Gmsh] ... electric field lines ...
> >>        To: mkoch at gvtc.com
> >>        Cc: Christophe Geuzaine <cag32 at case.edu>, mattkoch at scitex.us,  
> >> gmsh at geuz.org
> >>
> >>
> >>> Hi All,
> >>>
> >>> I just looked into StreamLines.cpp, and a I am not even going to
> >>> pretend I understand what goes on in there. However, in GetDP
> >>> PostProcessing, could one not define a new vector field as F/|F|,
> >>> rather than F itself? And then indeed the StreamLines Plugin should
> >>> apply, as long as one does not interpret time in there as literal time,
> >>> but rather as some sort of independent space parameter?
> >>>
> >>> My concern is, that upon perusing StreamLines.cpp, I did not see any
> >>> obvious reference to an ODE solver, such as the one from GSL. Instead,
> >>> I see on lines 289 through 294 and below a reference to something that
> >>> looks like some sort of homemade Runge-Kutta algorithm? What am I
> >>> missing?
> >>>
> >>> Thanks,
> >>>
> >>> Matt Koch
> >>>
> >>> ----- Message from mkoch at gvtc.com ---------
> >>>     Date: Fri,  6 Oct 2006 09:20:41 -0500
> >>>     From: mkoch at gvtc.com
> >>> Reply-To: mkoch at gvtc.com
> >>>  Subject: Re: [Gmsh] ... electric field lines ...
> >>>       To: Christophe Geuzaine <cag32 at case.edu>
> >>>       Cc: mattkoch at scitex.us, gmsh at geuz.org
> >>>
> >>>
> >>>> Hi All,
> >>>>
> >>>> I think the Plugin(StreamLines) is different from what we would need
> >>>> for a Plugin(FieldLines), because of the field normalization:
> >>>>
> >>>> StreamLines:
> >>>> dx/dt = vx(x,y,z)
> >>>> dy/dt = vy(x,y,z)
> >>>> dz/dt = vz(x,y,z)
> >>>>
> >>>> FieldLines:
> >>>> dx/ds = Fx(x,y,z)/|F(x,y,z)|
> >>>> dy/ds = Fy(x,y,z)/|F(x,y,z)|
> >>>> dz/ds = Fz(x,y,z)/|F(x,y,z)|
> >>>>
> >>>> Nevertheless, it should be possible to copy the StreamLines plugin 
> >>>> to a
> >>>> FieldLines plugin and add this normalization to it. I'll take a 
> >>>> look at
> >>>> the .CPP file later on today. However, I hope that most of the 
> >>>> stuff in
> >>>> there is in pure C, as I am virtually illiterate in C++.
> >>>>
> >>>> Regards,
> >>>>
> >>>> Matt Koch
> >>>>
> >>>>
> >>>> ----- Message from cag32 at case.edu ---------
> >>>>    Date: Thu, 05 Oct 2006 18:57:50 -0400
> >>>>    From: Christophe Geuzaine <cag32 at case.edu>
> >>>> Reply-To: Christophe Geuzaine <cag32 at case.edu>
> >>>> Subject: Re: [Gmsh] ... electric field lines ...
> >>>>      To: mattkoch at scitex.us
> >>>>      Cc: gmsh at geuz.org
> >>>>
> >>>>
> >>>>> Matt Koch wrote:
> >>>>>
> >>>>>> Hi All,
> >>>>>>
> >>>>>> this seems to be a simple matter of solving the following    
> >>>>>> equations for F = (Fx,Fy,Fz) as the vector (yeah right, 
> >>>>>> NOTHING    is EVER  simple):
> >>>>>>
> >>>>>> dx/ds = Fx/|F|
> >>>>>> dy/ds = Fy/|F|
> >>>>>> dz/ds = Fz/|F|
> >>>>>>
> >>>>>> with |F| = sqrt(Fx^2 + Fy^2 + Fz^2)
> >>>>>>
> >>>>>> Even a dumb Runge-Kutta approach could probably do. I might could 
> >>>>>> give
> >>>>>
> >>>>> Isn't this pretty much what we do in Plugin(StreamLines)? There we
> >>>>> solve dX(t)/dt = V, with X(0) chosen as a bunch of points in space 
> >>>>> and
> >>>>> V(x,y,z) interpolated from the vector view.
> >>>>>
> >>>>>> it a try, but I'd need to know how to write plugins (how to     
> >>>>>> programmatically access fields calculated by GetDP, how to     
> >>>>>> programmatically draw in GMsh, and such), and perhaps get 
> >>>>>> some     feedback from y'all on how long it might take to write 
> >>>>>> a   "typical"   plugin? Would some sort of Runge-Kutta driver 
> >>>>>> or   other ODE solver   be accessible to a plugin, or would that 
> >>>>>> have   to be developed  from  scratch, or pulled in from GSL, for 
> >>>>>> example?
> >>>>>
> >>>>> Have a look at Plugin/StreamLines.cpp in the Gmsh source code: you'll
> >>>>> see that it's actually pretty simple to write a plugin.
> >>>>>
> >>>>>
> >>>>>
> >>>>>> Thanks,
> >>>>>>
> >>>>>> Matt Koch
> >>>>>>
> >>>>>>
> >>>>>> Christophe Geuzaine wrote:
> >>>>>>
> >>>>>>> Matt Koch wrote:
> >>>>>>>
> >>>>>>>> Hello there!
> >>>>>>>>
> >>>>>>>> what a wonderful program GMsh is! It takes a little while to   
> >>>>>>>> get   used to its GUI, but once you get the hang of it, it 
> >>>>>>>> is    extremely useful and intuitive! However, one thing I have 
> >>>>>>>> not    been able to figure out yet is how to make electric 
> >>>>>>>> field lines    from an  electric field vector solution. I 
> >>>>>>>> looked into the    StreamLines  PlugIn, but that seems to only 
> >>>>>>>> work off of a    velocity field. Any  thoughts?
> >>>>>>>
> >>>>>>>
> >>>>>>> Maybe this could be a good idea for a new plugin?
> >>>>>>>
> >>>>>>>
> >>>>>>>> Thanks,
> >>>>>>>>
> >>>>>>>> Matt Koch
> >>>>>>>> mattkoch at scitex.us
> >>>>>>>> www.scitex.us
> >>>>>>>> _______________________________________________
> >>>>>>>> gmsh mailing list
> >>>>>>>> gmsh at geuz.org
> >>>>>>>> http://www.geuz.org/mailman/listinfo/gmsh
> >>>>>>>>
> >>>>>>>
> >>>>>
> >>>>> -- 
> >>>>> Christophe Geuzaine
> >>>>> Assistant Professor, Case Western Reserve University, Mathematics
> >>>>> http://www.case.edu/artsci/math/geuzaine
> >>>>
> >>>>
> >>>> ----- End message from cag32 at case.edu -----
> >>>
> >>>
> >>> ----- End message from mkoch at gvtc.com -----
> >>
> >>
> >>
> >> ----- End message from mkoch at gvtc.com -----
> >>
> >>
> >>
> >>
> >> _______________________________________________
> >> gmsh mailing list
> >> gmsh at geuz.org
> >> http://www.geuz.org/mailman/listinfo/gmsh
> >>
> >
> >
> _______________________________________________
> gmsh mailing list
> gmsh at geuz.org
> http://www.geuz.org/mailman/listinfo/gmsh
> 
> __________ NOD32 1.1796 (20061010) Information __________
> 
> This message was checked by NOD32 antivirus system.
> http://www.eset.com
> 
> 


-- 
Tammo Heeren, Ph.D
mailto: Tammo.Heeren at ieee.org