/usr/include/gmsh/OptHomRun.h is in libgmsh-dev 3.0.6+dfsg1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | // Copyright (C) 2013 ULg-UCL
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the "Software"), to deal in the Software without
// restriction, including without limitation the rights to use, copy,
// modify, merge, publish, distribute, and/or sell copies of the
// Software, and to permit persons to whom the Software is furnished
// to do so, provided that the above copyright notice(s) and this
// permission notice appear in all copies of the Software and that
// both the above copyright notice(s) and this permission notice
// appear in supporting documentation.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE
// COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR
// ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY
// DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
// WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
// ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
// OF THIS SOFTWARE.
//
// Please report all bugs and problems to the public mailing list
// <gmsh@onelab.info>.
//
// Contributors: Thomas Toulorge, Jonathan Lambrechts
#ifndef _OPTHOMRUN_H_
#define _OPTHOMRUN_H_
class GModel;
struct OptHomParameters {
// INPUT ------>
double BARRIER_MIN_METRIC ; // minimum scaled jcaobian
double BARRIER_MIN ; // minimum scaled jcaobian
double BARRIER_MAX ; // maximum scaled jcaobian
double weight ; // weight of the energy for nodes
int nbLayers ; // number of layers taken around a bad element
int dim ; // which dimension to optimize
int itMax ; // max number of iterations in the optimization process
int optPassMax ; // max number of optimization passes
double TMAX ; // max CPU time allowed
bool onlyVisible ; // apply optimization to visible entities ONLY
double distanceFactor; // filter elements such that no elements further away
// than DistanceFactor times the max distance to
// straight sided version of an element are optimized
bool fixBndNodes; // how jacobians are computed and if points can move on boundaries
int strategy; // 0 = connected blobs, 1 = adaptive one-by-one
int maxAdaptBlob; // Max. nb. of blob adaptation interations
int adaptBlobLayerFact; // Growth factor in number of layers for blob adaptation
double adaptBlobDistFact; // Growth factor in distance factor for blob adaptation
bool optPrimSurfMesh; // Enable optimisation of p1 surface meshes
bool optCAD;//Enable optimization of mesh vertices positions for geometrical fitting
double optCADWeight;//Weight
double optCADDistMax;//Maximum allowed distance from the CAD
double discrTolerance;
// OUTPUT ------>
int SUCCESS; // 0 --> success , 1 --> Not converged
int numBlobs;
double minJac, maxJac; // after optimization, range of jacobians
double CPU; // Time for optimization
OptHomParameters ()
: BARRIER_MIN_METRIC(-1.), BARRIER_MIN(0.1), BARRIER_MAX(2.0), weight(1.),
nbLayers(6), dim(3), itMax(300), optPassMax(50), onlyVisible(true),
distanceFactor(12), fixBndNodes(false), strategy(0), maxAdaptBlob(3),
adaptBlobLayerFact(2.), adaptBlobDistFact(2.), optPrimSurfMesh(false),
optCAD(false), optCADWeight(1000.), optCADDistMax(1.e22), discrTolerance(1.e-4),
SUCCESS(0), numBlobs(0), minJac(0.), maxJac(0.), CPU(0.)
{
}
};
void HighOrderMeshOptimizer(GModel *gm, OptHomParameters &p);
void HighOrderMeshOptimizerNew(GModel *gm, OptHomParameters &p);
// distanceDefinition 1) Hausdorff 2) Area/Length 3) Frechet (not done)
double ComputeDistanceToGeometry (GEntity *ge , int distanceDefinition,double tolerance) ;
//double ComputeDistanceToGeometry (GModel*gm);
#endif
|