netgen/libsrc/csg/singularref.hpp

85 lines
2.0 KiB
C++
Raw Normal View History

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.
Causes a bounday layer mesh refinement.
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