[Gmsh] creating patch on sphere

Christophe Geuzaine cgeuzaine at uliege.be
Wed May 1 21:21:33 CEST 2019


Peter,

To make sure you have the correct trimmed surface I think the easiest is simply construct your "subvolume" by starting from the solid. Here's a modified version of example that uses that approach.

Christophe

-------------- next part --------------
A non-text attachment was scrubbed...
Name: sample_ok.py
Type: text/x-python-script
Size: 2395 bytes
Desc: not available
URL: <http://onelab.info/pipermail/gmsh/attachments/20190501/e51172f1/attachment.py>
-------------- next part --------------


> On 30 Apr 2019, at 07:59, Peter Johnston <p.johnston at griffith.edu.au> wrote:
> 
> Dear Max,
> 
> Thanks for your thoughts. However, I am not sure how this helps as the spheres are no longer concentric.
> 
> I have made another example script, this time in python, that shows the issue that I keep coming up against. If you run the script, you will see that surfaces 10 and 13 have the same set of bounding curves: 6, 7, 8 and 9, but one is a bspline surface and the other is a spherical surface. Perhaps I simply need to delete one of these?
> 
> Regards,
> 
> Peter.
> 
> ---------------------------------------------------------------------
> 
> Associate Professor Peter Johnston (FAustMS, FIMA)
> School of Environment and Science
> Griffith University | Nathan | QLD 4111 | Technology (N44) Room 3.19
> T +61 7 373 57748| F +61 7 373 57656 Email p.johnston at griffith.edu.au
> On 29 Apr 2019, 6:41 AM +1000, Max Orok <morok at mevex.com>, wrote:
>> Hello Peter,
>> 
>> I took a bit of a different approach and hopefully it is similar to what you'd like to do.
>> This short script makes a "sphere patch" by subtracting one sphere from another.
>> 
>> SetFactory("OpenCASCADE");
>> 
>> // arbitrary angle selections here
>> Sphere(1) = {0, 0, 0, 0.5, -Pi/9, Pi/9, Pi/4};
>> Sphere(2) = {-.25, 0, 0, 0.5, -Pi/9, Pi/9, Pi/4}; // shift sphere 2
>> 
>> // use sphere 2 to cut sphere 1
>> BooleanDifference{ Volume{1}; Delete; }{ Volume{2}; Delete; }
>> 
>> <image.png>
>> <image.png>
>> 
>> I hope this is helpful! If I missed the point please let me know.
>> 
>> Sincerely,
>> Max
>> 
>> On Wed, Apr 24, 2019 at 7:22 PM Peter Johnston <p.johnston at griffith.edu.au> wrote:
>> Thanks Max and Christophe,
>> 
>> I have attached a simple sample .geo file. For some reason it creates even more volumes than the more complicated script I was working on. However, it still displays similar problems.
>> 
>> If you have any further questions, please let me know.
>> 
>> Thanks again,
>> 
>> Peter.
>> 
>> ---------------------------------------------------------------------
>> 
>> Associate Professor Peter Johnston (FAustMS, FIMA)
>> School of Environment and Science
>> Griffith University | Nathan | QLD 4111 | Technology (N44) Room 3.19
>> T +61 7 373 57748| F +61 7 373 57656 Email p.johnston at griffith.edu.au
>> On 25 Apr 2019, 1:36 AM +1000, Max Orok <morok at mevex.com>, wrote:
>>> Hi Peter,
>>> 
>>> Scripts are always helpful! It is nice to be able to see the steps as you go along.
>>> 
>>> Max
>>> 
>>> On Wed, Apr 24, 2019 at 8:36 AM Peter Johnston <p.johnston at griffith.edu.au> wrote:
>>> Hello,
>>> 
>>> I appear to have a problem for which I cannot figure out a solution.
>>> 
>>> I have an annular hemispherical volume created between to hemispheres centred on the origin. I would like to divide the volume into two parts in a special way using Boolean operations. To define a sub-volume of the initial volume by defining four points on the surface of the inner sphere, create a ?quadrilateral? on the inner surface by joining the four points in order using circles through the origin. (I think that these should be parts of great circles on the inner surface?). Then I create a line loop and a surface, and finally extrude the surface away from the origin to create a volume. Perhaps a .geo script would help here?
>>> 
>>> When I perform BooleanDifferences and BooleanIntersections I end up with three volumes instead of two. The reason I get the third volume is that the surface patch that I create does not fit exactly onto the original spherical surface. Is there any way that I can force the patch to be part of the spherical surface?
>>> 
>>> A consequence of the extra volume is that I cannot create a sensible mesh.
>>> 
>>> Any ideas would be greatly appreciated.
>>> 
>>> Thanks very much,
>>> 
>>> Peter.
>>> 
>>> PS, I could send a simple script file if that would help.
>>> 
>>> ---------------------------------------------------------------------
>>> 
>>> Associate Professor Peter Johnston (FAustMS, FIMA)
>>> School of Environment and Science
>>> Griffith University | Nathan | QLD 4111 | Technology (N44) Room 3.19
>>> T +61 7 373 57748| F +61 7 373 57656 Email p.johnston at griffith.edu.au
>>> _______________________________________________
>>> gmsh mailing list
>>> gmsh at onelab.info
>>> http://onelab.info/mailman/listinfo/gmsh
>>> 
>>> 
>>> --
>>> Max Orok
>>> Contractor
>>> www.mevex.com
>>> 
>>> 
>> 
>> 
>> --
>> Max Orok
>> Contractor
>> www.mevex.com
>> 
>> 
> <sample.py>_______________________________________________
> gmsh mailing list
> gmsh at onelab.info
> http://onelab.info/mailman/listinfo/gmsh

? 
Prof. Christophe Geuzaine
University of Liege, Electrical Engineering and Computer Science 
http://www.montefiore.ulg.ac.be/~geuzaine





More information about the gmsh mailing list