https://dev.opencascade.org/doc/overview/html/occt_user_guides__boolean_operations.html
-- jeremy theler www.seamplex.com On Mon, Feb 24, 2020, 19:01 tao song <[email protected]> wrote: > Dear Christophe, > It's really solved my problem, and i'm looking forward to the new > algorithm! > Is there any introduction about bool function, like BooleanFragments, > the introduction is vague in gmsh manual. > Thank you very much. > > Best regards, > Songt. > > Christophe Geuzaine <[email protected]> 于2020年2月24日周一 上午3:42写道: > > > > > > > Dear Songt, > > > > Very thin (or very long) cylinders have very anisotropic parametric > representations in OpenCASCADE. When the ratio is sufficiently large you > run into floating point tolerance issues in the mesh generation process. > > > > With OpenCASCADE cylinders, the workaround is to segment the cylinders > in several parts. Attached is a modified version of your file that shows > one way of doing it: > > > > > > > > Christophe > > > > PS: once the new hxt algorithm supports Fields (hopefully later this > year), 3D meshing time for very refined meshes will be dramatically > decreased. > > > > > > > On 23 Feb 2020, at 17:52, tao song <[email protected]> wrote: > > > > > > Dear all, > > > While i meshing a model with small cylinder in a huge domain, if the > > > filed is not given, it gives me an error "No elements in volume x", > > > where x denote the small cylinder volume, and if the field is used, > > > the gmsh blocked and finally crashed. > > > How can i get the right mesh of this kind of model (small cylinder in > > > a huge domain)? I want the whole domain and the small cylinder both > > > are meshed. > > > > > > Kind regards, > > > Songt. > > > > > > The code i used: > > > --------------------------- > > > SetFactory("OpenCASCADE"); > > > > > > Point(1) = {0,0,0}; Point(2) = {0,0,-40}; > > > Line(1) = {1,2}; > > > > > > Box(1)={-50,-50,-50,100,100,100}; > > > Cylinder(2) = {0, 0, 0, 0, 0, -40, 0.01, 2*Pi}; > > > //Cylinder(2) = {0, 0, 0, 0, 0, -40, 1, 2*Pi}; > > > BooleanDifference(3) = { Volume{1}; Delete; }{ Volume{2}; }; > > > //Coherence; > > > Physical Volume ( "c",11 ) = {1}; > > > Physical Volume ( "d",12 ) = {2}; > > > > > > len = 0.001; > > > Field[1] = Distance; > > > Field[1].NNodesByEdge = 100; > > > Field[1].EdgesList = {1}; > > > > > > Field[2] = Threshold; > > > Field[2].IField = 1; > > > Field[2].LcMin = len*5; > > > Field[2].LcMax = 20; > > > Field[2].DistMin = 200*len; > > > Field[2].DistMax = 30; > > > Field[3] = Min; > > > Field[3].FieldsList = {2}; > > > Background Field = 3; > > > --------------------------- > > > > > > _______________________________________________ > > > gmsh mailing list > > > [email protected] > > > http://onelab.info/mailman/listinfo/gmsh > > > > — > > Prof. Christophe Geuzaine > > University of Liege, Electrical Engineering and Computer Science > > http://www.montefiore.ulg.ac.be/~geuzaine > > > > > > > > _______________________________________________ > gmsh mailing list > [email protected] > http://onelab.info/mailman/listinfo/gmsh >
_______________________________________________ gmsh mailing list [email protected] http://onelab.info/mailman/listinfo/gmsh
