gmsh-TingyuanDoc
0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
|
Go to the documentation of this file.
8 #ifndef AUTOMATIC_MESH_SIZE_FIELD_H
9 #define AUTOMATIC_MESH_SIZE_FIELD_H
11 #include "GmshConfig.h"
23 #if defined(HAVE_P4EST)
25 #include <p4est_to_p8est.h>
26 #include <p8est_extended.h>
32 #include "hxt_tools.h"
105 #if defined(HAVE_HXT) && defined(HAVE_P4EST)
106 HXTStatus forestOptionsCreate(
ForestOptions **forestOptions);
107 HXTStatus forestOptionsDelete(
ForestOptions **forestOptions);
109 HXTStatus forestCreate(
int argc,
char **argv,
Forest **forest,
111 HXTStatus forestDelete(
Forest **forest);
113 HXTStatus forestSave(
Forest *forest,
const char *forestFile,
114 const char *dataFile);
115 HXTStatus forestExport(
Forest *forest,
const char *forestFile);
116 HXTStatus forestExport2D(
Forest *forest,
const char *forestFile);
117 HXTStatus forestLoad(
Forest **forest,
const char *forestFile,
120 HXTStatus forestSearchOne(
Forest *forest,
double x,
double y,
double z,
121 double *size,
int linear);
125 #if defined(HAVE_HXT) && defined(HAVE_P4EST)
128 HXTStatus updateHXT();
142 std::string fFile =
"",
143 int minElementsPerTwoPi =
CTX::instance()->mesh.lcFromCurvature,
146 double hmax = -1.0,
double hbulk = -1.0,
int smoothing =
true,
148 #if defined(HAVE_HXT) && defined(HAVE_P4EST)
149 : forest(
nullptr), forestOptions(
nullptr)
167 "Number of points per circle (adapt to curvature of surfaces)",
187 _smoothing,
"Enable size smoothing (should always be true)",
191 _gaps,
"Enable computation of local feature size (thin channels)",
200 const char *
getName() {
return "AutomaticMeshSizeField"; }
204 return "Compute a mesh size field that is quite automatic "
205 "Takes into account surface curvatures and closeness of objects";
209 virtual double operator()(
double X,
double Y,
double Z,
struct size_point size_point_t
std::vector< double > * featureSizeAtVertices
virtual bool isotropic() const
virtual double operator()(double X, double Y, double Z, GEntity *ge=nullptr)
struct size_data size_data_t
RTree< uint64_t, double, 3 > * triRTree
struct ForestOptions ForestOptions
ForestOptions * forestOptions
double(* sizeFunction)(double, double, double, double)
struct interpolation_data interpolation_data_t
std::map< std::string, FieldOption * > options
~automaticMeshSizeField()
std::string getDescription()
automaticMeshSizeField(std::string fFile="", int minElementsPerTwoPi=CTX::instance() ->mesh.lcFromCurvature, int nLayersPerGap=CTX::instance() ->mesh.nLayersPerGap, double gradation=CTX::instance() ->mesh.gradation, double hmin=-1.0, double hmax=-1.0, double hbulk=-1.0, int smoothing=true, int gaps=true)