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

mkoch at gvtc.com mkoch at gvtc.com
Fri Oct 6 20:35:24 CEST 2006


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?

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 -----