Dear Mathias, In surface_using_points.geo, OpenCASCADE computes one amongst the infinite number of surfaces passing through (well, close to) the points. You might want to investigate the parameters given to the BRepOffsetAPI_MakeFilling() method to see if a more judicious choice could lead to a more suitable fit. If you do we could clearly interface the interesting parameters so that we could set them in scripts or through the api.
In surface_splitted.geo, there are no functions currently to create an arbitrary surface by fitting as in surface_using_points.geo, but with holes. Somehow I feel that you need to add more constraints to better define the one surface that represents "best" your data. Christophe > On 7 Aug 2019, at 18:25, Mathias Scheunert > <[email protected]> wrote: > > > Dear developers and users, > > *** The problem > our group wants to use Gmsh for setting up meshes for simulation of > geophysical data. > Therefore we need to create surfaces which are bounded by a circle or > rectangular curve and that contain some topographic information (from given > point cloud) in the “interior” part. > The given points have to be part of the resulting mesh. > > Defining a Curve Loop from piece-wise splines (or just Lines) and adding all > the points to the surface leads to undesired “topographic features” in the > area between the boundary and the point cloud in the resulting mesh. > See surface_using_points.geo > > Furthermore, by refining the mesh by splitting, one can see that the mesh > around the points added is not flat/smooth anymore. > See mesh_issue.png > > So we separately defined a surface of the interior part by defining a > surrounding spline curve, which provides a "nice" mesh for that part. > See surface_splitted.geo > > Now we need to obtain a flat surface that is bounded by the outermost > rectangular curve and the spline curve to obtain a coherent surface. > We played around with ThruSection (hoping that this is the most promising way > to go) but facing the following problems: > > 1) > Curve Loop(50) = {out_spl[]}; > Wire(1) = {1}; > Wire(2) = {30}; > ThruSections{1, 2} > → Here we get an Error, that OpenCASCADE can’t find the Curve Loop from > splines > > So we neglect the request for a rectangular outermost boundary an tried > 2) > Spline(1) = {1:4, 1}; > Curve Loop(50) = {1}; > Wire(1) = {1}; > Wire(2) = {30}; > ThruSections{1, 2} > → now Wire(1) can be created from Spline(1) but the resulting mesh is somehow > twisted (although enjoyable flat …) > > > *** The question(s) > Can our approach be used at all? > → we definitely want to avoid playing around with meshes externally like: > http://onelab.info/pipermail/gmsh/2018/012591.html > > If so – how? > Or is there a more promising way to attack our problem? > > Best regards, > Mathias > > ps: We are using Gmsh 4.3.0. > > -- > Dr. Mathias Scheunert > Institute of Geophysics and Geoinformatics, TU Bergakademie Freiberg > Gustav-Zeuner-Str. 12, D-09596 Freiberg > Tel.: +493731393630 > > <mesh_issue.png><surface_splitted.geo><surface_using_points.geo>_______________________________________________ > 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
