diff --git a/nglib/nglib.cpp b/nglib/nglib.cpp index bcff69d0c..a68b4e484 100644 --- a/nglib/nglib.cpp +++ b/nglib/nglib.cpp @@ -1013,6 +1013,25 @@ namespace nglib check_overlap = 1; check_overlapping_boundary = 1; + + parallel_meshing = 1; + nthreads = 4; + + opterrpow = 2; + delaunayenable = 1; + blockfillenable = 1; + blockfilldist = 0.1; + maxoutersteps = 10; + only3D_domain_nr = 0; + try_hexes = 0; + + surfcurvfact = 2; + chartdistfact = 1.2; + edgeanglefact = 1; + surfmeshcurvfact = 1; + linelengthfact = 0.5; + + stlgeom_tol_fact = 1E-6; } @@ -1054,6 +1073,25 @@ namespace nglib check_overlap = 1; check_overlapping_boundary = 1; + + parallel_meshing = 1; + nthreads = 4; + + opterrpow = 2; + delaunayenable = 1; + blockfillenable = 1; + blockfilldist = 0.1; + maxoutersteps = 10; + only3D_domain_nr = 0; + try_hexes = 0; + + surfcurvfact = 2; + chartdistfact = 1.2; + edgeanglefact = 1; + surfmeshcurvfact = 1; + linelengthfact = 0.5; + + stlgeom_tol_fact = 1E-6; } @@ -1078,6 +1116,7 @@ namespace nglib mparam.meshsizefilename = meshsize_filename; else mparam.meshsizefilename = ""; + mparam.optsteps2d = optsteps_2d; mparam.optsteps3d = optsteps_3d; @@ -1086,6 +1125,28 @@ namespace nglib mparam.checkoverlap = check_overlap; mparam.checkoverlappingboundary = check_overlapping_boundary; + + mparam.parallel_meshing = parallel_meshing; + mparam.nthreads = nthreads; + + mparam.opterrpow = opterrpow; + mparam.delaunay = delaunayenable; + mparam.blockfill = blockfillenable; + mparam.filldist = blockfilldist; + mparam.maxoutersteps = maxoutersteps; + mparam.only3D_domain_nr = only3D_domain_nr; + mparam.try_hexes = try_hexes; + + stlparam.resthsurfcurvfac = surfcurvfact; + stlparam.resthchartdistfac = chartdistfact; + stlparam.resthedgeanglefac = edgeanglefact; + stlparam.resthsurfmeshcurvfac = surfmeshcurvfact; + stlparam.resthlinelengthfac = linelengthfact; + + stldoctor.geom_tol_fact = stlgeom_tol_fact; + + if(closeedgeenable) + mparam.closeedgefac = closeedgefact; } // ------------------ End - Meshing Parameters related functions -------------------- diff --git a/nglib/nglib.h b/nglib/nglib.h index 286db0cb7..e3a578000 100644 --- a/nglib/nglib.h +++ b/nglib/nglib.h @@ -130,6 +130,28 @@ class Ng_Meshing_Parameters int check_overlap; //!< Check for overlapping surfaces during Surface meshing int check_overlapping_boundary; //!< Check for overlapping surface elements before volume meshing + // Nikhil - 29/09/2020 + // Added a couple more parameters into the meshing parameters list + // from Netgen into Nglib + int parallel_meshing; //!< Enable / Disable parallel meshing + int nthreads; //!< Set number of threads to use + + double opterrpow; //!< Set power of error (to approximate max err optimization) + int delaunayenable; //!< Enable / Disable delaunay + int blockfillenable; //!< Enable / Disable block fill + double blockfilldist; //!< Enable / Disable block fill distance + int maxoutersteps; //!< Set max number of outer steps + int only3D_domain_nr; //!< Select domain to perform volume meshing ignoring others. (0 => ignore none) + int try_hexes; //!< Enable / Disable hex-meshing + + double surfcurvfact; //!< Set STL - surface curvature + double chartdistfact; //!< Set STL - chart distance + double edgeanglefact; //!< Set STL - edge angle + double surfmeshcurvfact; //!< Set STL - surface mesh curv + double linelengthfact; //!< Set STL - line length + + double stlgeom_tol_fact; //!< Set the point tolerance in STL files + /*! Default constructor for the Mesh Parameters class @@ -155,6 +177,21 @@ class Ng_Meshing_Parameters - #invert_trigs:0 - #check_overlap: 1 - #check_overlapping_boundary: 1 + - #parallel_meshing: 1 + - #nthreads: 4 + - #opterrpow: 2 + - #delaunayenable: 1 + - #blockfillenable = 1 + - #blockfilldist = 0.1 + - maxoutersteps = 10 + - only3D_domain_nr = 0 + - try_hexes = 0 + - #surfcurvfact: 2 + - #chartdistfact: 1.2 + - #edgeanglefact: 1 + - #surfmeshcurvfact: 1 + - #linelengthfact: 0.5 + - #stlgeom_tol_fact: 1E-6 */ DLL_HEADER Ng_Meshing_Parameters();