Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Exposed parameters to Ng_Meshing_Parameters (nglib.h) #75

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 61 additions & 0 deletions nglib/nglib.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}


Expand Down Expand Up @@ -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;
}


Expand All @@ -1078,6 +1116,7 @@ namespace nglib
mparam.meshsizefilename = meshsize_filename;
else
mparam.meshsizefilename = "";

mparam.optsteps2d = optsteps_2d;
mparam.optsteps3d = optsteps_3d;

Expand All @@ -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 --------------------

Expand Down
37 changes: 37 additions & 0 deletions nglib/nglib.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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();

Expand Down