2009-01-13 04:40:13 +05:00
|
|
|
#ifndef FILE_SINGULARREF
|
|
|
|
#define FILE_SINGULARREF
|
|
|
|
|
|
|
|
/**************************************************************************/
|
|
|
|
/* File: singularref.hh */
|
|
|
|
/* Author: Joachim Schoeberl */
|
|
|
|
/* Date: 25. Sep. 99 */
|
|
|
|
/**************************************************************************/
|
|
|
|
|
2009-09-07 17:50:13 +06:00
|
|
|
namespace netgen
|
|
|
|
{
|
2009-01-13 04:40:13 +05:00
|
|
|
|
|
|
|
|
2009-09-07 17:50:13 +06:00
|
|
|
/**
|
|
|
|
Control for local refinement
|
|
|
|
*/
|
2009-01-13 04:40:13 +05:00
|
|
|
|
|
|
|
|
|
|
|
|
2009-09-07 17:50:13 +06:00
|
|
|
/**
|
|
|
|
Singular Face.
|
Fix various typos
Found via `codespell -q 3 -S ./external_dependencies/pybind11 -L alledges,allright,ane,anormal,ans,apoints,ba,boxs,cancle,childs,co-ordinate,co-ordinates,daty,enty,filld,hel,identifyable,ist,linz,lod,ned,nd,selt,statics,suround,thev,thist,thisy,timere,upto,wel`
2022-03-26 03:21:48 +05:00
|
|
|
Causes a boundary layer mesh refinement.
|
2009-09-07 17:50:13 +06:00
|
|
|
All elements in subdomain domnr will get a boundary layer
|
|
|
|
on faces sharing the solid sol
|
|
|
|
*/
|
2015-10-19 13:08:30 +05:00
|
|
|
class DLL_HEADER SingularFace
|
2009-09-07 17:50:13 +06:00
|
|
|
{
|
|
|
|
public:
|
|
|
|
int domnr;
|
|
|
|
const Solid *sol;
|
|
|
|
double factor;
|
2019-07-09 13:39:16 +05:00
|
|
|
// NgArray<Point<3> > points;
|
|
|
|
// NgArray<INDEX_2> segms;
|
2009-09-07 17:50:13 +06:00
|
|
|
public:
|
|
|
|
SingularFace (int adomnr, const Solid * asol, double sf)
|
|
|
|
: domnr(adomnr), sol(asol), factor(sf) { ; }
|
|
|
|
const Solid * GetSolid() const { return sol; }
|
|
|
|
int GetDomainNr () const { return domnr; }
|
|
|
|
};
|
2009-01-13 04:40:13 +05:00
|
|
|
|
|
|
|
|
2009-09-07 17:50:13 +06:00
|
|
|
///
|
2015-10-19 13:08:30 +05:00
|
|
|
class DLL_HEADER SingularEdge
|
2009-09-07 17:50:13 +06:00
|
|
|
{
|
|
|
|
public:
|
|
|
|
double beta;
|
|
|
|
int domnr;
|
|
|
|
const CSGeometry& geom;
|
|
|
|
const Solid *sol1, *sol2;
|
2019-07-09 13:39:16 +05:00
|
|
|
NgArray<Point<3> > points;
|
|
|
|
NgArray<INDEX_2> segms;
|
2009-09-07 17:50:13 +06:00
|
|
|
double factor;
|
2009-01-13 04:40:13 +05:00
|
|
|
|
2009-09-07 17:50:13 +06:00
|
|
|
double maxhinit;
|
|
|
|
public:
|
|
|
|
SingularEdge (double abeta, int adomnr,
|
|
|
|
const CSGeometry & ageom,
|
|
|
|
const Solid * asol1, const Solid * asol2, double sf,
|
|
|
|
const double maxh_at_initialization = -1);
|
|
|
|
void FindPointsOnEdge (class Mesh & mesh);
|
|
|
|
void SetMeshSize (class Mesh & mesh, double globalh);
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
///
|
2015-10-19 13:08:30 +05:00
|
|
|
class DLL_HEADER SingularPoint
|
2009-09-07 17:50:13 +06:00
|
|
|
{
|
|
|
|
public:
|
|
|
|
double beta;
|
|
|
|
const Solid *sol1, *sol2, *sol3;
|
2019-07-09 13:39:16 +05:00
|
|
|
NgArray<Point<3> > points;
|
2009-09-07 17:50:13 +06:00
|
|
|
double factor;
|
2009-01-13 04:40:13 +05:00
|
|
|
|
2009-09-07 17:50:13 +06:00
|
|
|
public:
|
|
|
|
SingularPoint (double abeta, const Solid * asol1, const Solid * asol2,
|
|
|
|
const Solid * asol3, double sf);
|
|
|
|
void FindPoints (class Mesh & mesh);
|
|
|
|
void SetMeshSize (class Mesh & mesh, double globalh);
|
|
|
|
};
|
|
|
|
|
|
|
|
}
|
2009-01-13 04:40:13 +05:00
|
|
|
|
|
|
|
|
|
|
|
#endif
|