gmsh-TingyuanDoc
0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
|
#include <meshMetric.h>
Public Types | |
enum | MetricComputationTechnique { LEVELSET = 1, HESSIAN = 2, FREY = 3, EIGENDIRECTIONS = 4, EIGENDIRECTIONS_LINEARINTERP_H = 5, ISOTROPIC_LINEARINTERP_H = 6 } |
typedef std::map< MVertex *, SMetric3 > | nodalMetricTensor |
typedef std::map< MVertex *, double > | nodalField |
Public Member Functions | |
meshMetric (std::vector< MElement * > elements) | |
meshMetric (GModel *gm) | |
~meshMetric () | |
void | addMetric (int technique, simpleFunction< double > *fct, const std::vector< double > ¶meters) |
SMetric3 | metricAtVertex (MVertex *v) |
void | scaleMetric (int nbElementsTarget, nodalMetricTensor &nmt) |
void | computeMetric (int metricNumber) |
void | computeMetricLevelSet (MVertex *ver, SMetric3 &hessian, SMetric3 &metric, double &size, double x=0.0, double y=0.0, double z=0.0) |
void | computeMetricHessian (MVertex *ver, SMetric3 &hessian, SMetric3 &metric, double &size, double x=0.0, double y=0.0, double z=0.0) |
void | computeMetricFrey (MVertex *ver, SMetric3 &hessian, SMetric3 &metric, double &size, double x=0.0, double y=0.0, double z=0.0) |
void | computeMetricEigenDir (MVertex *ver, SMetric3 &hessian, SMetric3 &metric, double &size, double x=0.0, double y=0.0, double z=0.0) |
void | computeMetricIsoLinInterp (MVertex *ver, SMetric3 &hessian, SMetric3 &metric, double &size, double x=0.0, double y=0.0, double z=0.0) |
void | computeValues () |
void | computeHessian () |
double | getLaplacian (MVertex *v) |
SVector3 | getGradient (MVertex *v) |
virtual bool | isotropic () const |
virtual const char * | getName () |
virtual std::string | getDescription () |
virtual double | operator() (double x, double y, double z, GEntity *ge=nullptr) |
virtual void | operator() (double x, double y, double z, SMetric3 &metr, GEntity *ge=nullptr) |
void | exportInfo (const char *fileendname) |
Public Member Functions inherited from Field | |
Field () | |
virtual | ~Field () |
bool | isDeprecated () |
virtual void | update () |
virtual int | numComponents () const |
virtual void | operator() (double x, double y, double z, SVector3 &, GEntity *ge=0) |
void | putOnNewView (int viewTag=-1) |
FieldOption * | getOption (const std::string &optionName) |
Private Member Functions | |
void | updateMetrics () |
Private Attributes | |
int | _dim |
double | _epsilon |
double | _e |
double | _e_moins |
double | _np |
bool | needMetricUpdate |
bool | hasAnalyticalMetric |
meshMetric::MetricComputationTechnique | _technique |
double | hmin |
double | hmax |
simpleFunction< double > * | _fct |
std::vector< MElement * > | _elements |
v2t_cont | _adj |
MElementOctree * | _octree |
std::map< int, MVertex * > | _vertexMap |
std::map< MVertex *, double > | vals |
std::map< MVertex *, SVector3 > | grads |
std::map< MVertex *, SMetric3 > | hessians |
nodalMetricTensor | _nodalMetrics |
nodalField | _nodalSizes |
nodalField | _detMetric |
std::map< int, nodalMetricTensor > | setOfMetrics |
std::map< int, nodalField > | setOfSizes |
std::map< int, bool > | setOfRecomputeBoolean |
std::map< int, simpleFunction< double > * > | setOfFcts |
std::map< int, std::vector< double > > | setOfParameters |
std::map< int, int > | setOfTechniques |
Additional Inherited Members | |
Public Attributes inherited from Field | |
int | id |
std::map< std::string, FieldOption * > | options |
std::map< std::string, FieldCallback * > | callbacks |
bool | updateNeeded |
Protected Attributes inherited from Field | |
bool | _deprecated |
Anisotropic mesh size field based on a metric
Definition at line 22 of file meshMetric.h.
typedef std::map<MVertex *, double> meshMetric::nodalField |
Definition at line 56 of file meshMetric.h.
typedef std::map<MVertex *, SMetric3> meshMetric::nodalMetricTensor |
Definition at line 55 of file meshMetric.h.
Enumerator | |
---|---|
LEVELSET | |
HESSIAN | |
FREY | |
EIGENDIRECTIONS | |
EIGENDIRECTIONS_LINEARINTERP_H | |
ISOTROPIC_LINEARINTERP_H |
Definition at line 24 of file meshMetric.h.
meshMetric::meshMetric | ( | std::vector< MElement * > | elements | ) |
meshMetric::meshMetric | ( | GModel * | gm | ) |
meshMetric::~meshMetric | ( | ) |
Definition at line 210 of file meshMetric.cpp.
void meshMetric::addMetric | ( | int | technique, |
simpleFunction< double > * | fct, | ||
const std::vector< double > & | parameters | ||
) |
Definition at line 64 of file meshMetric.cpp.
Referenced by GModel::adaptMesh().
void meshMetric::computeHessian | ( | ) |
Definition at line 275 of file meshMetric.cpp.
Referenced by computeMetric().
void meshMetric::computeMetric | ( | int | metricNumber | ) |
Definition at line 748 of file meshMetric.cpp.
Referenced by addMetric().
void meshMetric::computeMetricEigenDir | ( | MVertex * | ver, |
SMetric3 & | hessian, | ||
SMetric3 & | metric, | ||
double & | size, | ||
double | x = 0.0 , |
||
double | y = 0.0 , |
||
double | z = 0.0 |
||
) |
Definition at line 517 of file meshMetric.cpp.
Referenced by computeMetric(), and operator()().
void meshMetric::computeMetricFrey | ( | MVertex * | ver, |
SMetric3 & | hessian, | ||
SMetric3 & | metric, | ||
double & | size, | ||
double | x = 0.0 , |
||
double | y = 0.0 , |
||
double | z = 0.0 |
||
) |
Definition at line 452 of file meshMetric.cpp.
Referenced by computeMetric(), and operator()().
void meshMetric::computeMetricHessian | ( | MVertex * | ver, |
SMetric3 & | hessian, | ||
SMetric3 & | metric, | ||
double & | size, | ||
double | x = 0.0 , |
||
double | y = 0.0 , |
||
double | z = 0.0 |
||
) |
Definition at line 406 of file meshMetric.cpp.
Referenced by computeMetric(), and operator()().
void meshMetric::computeMetricIsoLinInterp | ( | MVertex * | ver, |
SMetric3 & | hessian, | ||
SMetric3 & | metric, | ||
double & | size, | ||
double | x = 0.0 , |
||
double | y = 0.0 , |
||
double | z = 0.0 |
||
) |
Definition at line 651 of file meshMetric.cpp.
Referenced by computeMetric(), and operator()().
void meshMetric::computeMetricLevelSet | ( | MVertex * | ver, |
SMetric3 & | hessian, | ||
SMetric3 & | metric, | ||
double & | size, | ||
double | x = 0.0 , |
||
double | y = 0.0 , |
||
double | z = 0.0 |
||
) |
Definition at line 354 of file meshMetric.cpp.
Referenced by computeMetric(), and operator()().
void meshMetric::computeValues | ( | ) |
Definition at line 216 of file meshMetric.cpp.
Referenced by computeMetric().
void meshMetric::exportInfo | ( | const char * | fileendname | ) |
|
inlinevirtual |
Reimplemented from Field.
Definition at line 136 of file meshMetric.h.
double meshMetric::getLaplacian | ( | MVertex * | v | ) |
|
inlinevirtual |
Implements Field.
Definition at line 135 of file meshMetric.h.
|
inlinevirtual |
Reimplemented from Field.
Definition at line 134 of file meshMetric.h.
|
virtual |
Implements Field.
Definition at line 792 of file meshMetric.cpp.
|
virtual |
Reimplemented from Field.
Definition at line 828 of file meshMetric.cpp.
void meshMetric::scaleMetric | ( | int | nbElementsTarget, |
nodalMetricTensor & | nmt | ||
) |
Definition at line 706 of file meshMetric.cpp.
Referenced by computeMetric().
|
private |
Definition at line 79 of file meshMetric.cpp.
Referenced by exportInfo(), metricAtVertex(), and operator()().
|
private |
Definition at line 46 of file meshMetric.h.
Referenced by computeHessian(), computeMetric(), computeValues(), meshMetric(), and updateMetrics().
|
private |
Definition at line 60 of file meshMetric.h.
|
private |
Definition at line 37 of file meshMetric.h.
Referenced by computeHessian(), computeMetricEigenDir(), computeMetricFrey(), computeMetricHessian(), computeMetricIsoLinInterp(), computeMetricLevelSet(), meshMetric(), operator()(), scaleMetric(), and updateMetrics().
|
private |
Definition at line 38 of file meshMetric.h.
Referenced by computeMetric(), computeMetricEigenDir(), computeMetricFrey(), computeMetricIsoLinInterp(), and computeMetricLevelSet().
|
private |
Definition at line 38 of file meshMetric.h.
Referenced by computeMetric(), computeMetricEigenDir(), and computeMetricIsoLinInterp().
|
private |
Definition at line 45 of file meshMetric.h.
Referenced by exportInfo(), meshMetric(), scaleMetric(), and ~meshMetric().
|
private |
Definition at line 38 of file meshMetric.h.
Referenced by computeMetric(), and computeMetricFrey().
|
private |
Definition at line 43 of file meshMetric.h.
Referenced by computeMetric(), computeMetricEigenDir(), computeMetricFrey(), computeMetricHessian(), computeMetricIsoLinInterp(), computeMetricLevelSet(), and operator()().
|
private |
Definition at line 59 of file meshMetric.h.
Referenced by exportInfo(), metricAtVertex(), operator()(), and updateMetrics().
|
private |
Definition at line 60 of file meshMetric.h.
Referenced by operator()(), and updateMetrics().
|
private |
Definition at line 38 of file meshMetric.h.
Referenced by computeMetric(), computeMetricEigenDir(), and computeMetricFrey().
|
private |
Definition at line 47 of file meshMetric.h.
Referenced by meshMetric(), operator()(), and ~meshMetric().
|
private |
Definition at line 41 of file meshMetric.h.
Referenced by computeHessian(), computeMetric(), computeMetricEigenDir(), and operator()().
|
private |
Definition at line 48 of file meshMetric.h.
Referenced by getGradient(), getLaplacian(), and meshMetric().
Definition at line 51 of file meshMetric.h.
Referenced by computeHessian(), computeMetricEigenDir(), computeMetricFrey(), computeMetricHessian(), computeMetricIsoLinInterp(), computeMetricLevelSet(), exportInfo(), and getGradient().
|
private |
Definition at line 40 of file meshMetric.h.
Referenced by addMetric(), meshMetric(), and operator()().
Definition at line 52 of file meshMetric.h.
Referenced by computeHessian(), computeMetricEigenDir(), computeMetricFrey(), computeMetricHessian(), computeMetricIsoLinInterp(), computeMetricLevelSet(), exportInfo(), and getLaplacian().
|
private |
Definition at line 42 of file meshMetric.h.
Referenced by computeMetric(), computeMetricEigenDir(), computeMetricFrey(), computeMetricIsoLinInterp(), computeMetricLevelSet(), and scaleMetric().
|
private |
Definition at line 42 of file meshMetric.h.
Referenced by computeMetric(), computeMetricEigenDir(), computeMetricFrey(), computeMetricIsoLinInterp(), computeMetricLevelSet(), and scaleMetric().
|
private |
Definition at line 39 of file meshMetric.h.
Referenced by addMetric(), exportInfo(), metricAtVertex(), operator()(), and updateMetrics().
|
private |
Definition at line 65 of file meshMetric.h.
Referenced by addMetric(), computeMetric(), and operator()().
|
private |
Definition at line 62 of file meshMetric.h.
Referenced by addMetric(), computeMetric(), operator()(), and updateMetrics().
|
private |
Definition at line 66 of file meshMetric.h.
Referenced by addMetric(), and computeMetric().
|
private |
Definition at line 64 of file meshMetric.h.
|
private |
Definition at line 63 of file meshMetric.h.
Referenced by computeMetric(), and updateMetrics().
|
private |
Definition at line 67 of file meshMetric.h.
Referenced by addMetric(), computeMetric(), and operator()().
|
private |
Definition at line 50 of file meshMetric.h.
Referenced by computeHessian(), computeMetricEigenDir(), computeMetricFrey(), computeMetricIsoLinInterp(), computeMetricLevelSet(), computeValues(), and exportInfo().