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

Christophe Geuzaine cag32 at case.edu
Tue Oct 10 01:17:18 CEST 2006


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
> 


-- 
Christophe Geuzaine
Assistant Professor, Case Western Reserve University, Mathematics
http://www.case.edu/artsci/math/geuzaine