Path: blob/devel/ElmerGUI/netgen/libsrc/csg/singularref.hpp
3206 views
#ifndef FILE_SINGULARREF1#define FILE_SINGULARREF23/**************************************************************************/4/* File: singularref.hh */5/* Author: Joachim Schoeberl */6/* Date: 25. Sep. 99 */7/**************************************************************************/89/**10Control for local refinement11*/12131415/**16Singular Face.17Causes a bounday layer mesh refinement.18All elements in subdomain domnr will get a boundary layer19on faces sharing the solid sol20*/21class SingularFace22{23public:24int domnr;25const Solid *sol;26double factor;27// ARRAY<Point<3> > points;28// ARRAY<INDEX_2> segms;29public:30SingularFace (int adomnr, const Solid * asol, double sf)31: domnr(adomnr), sol(asol), factor(sf) { ; }32const Solid * GetSolid() const { return sol; }33int GetDomainNr () const { return domnr; }34};353637///38class SingularEdge39{40public:41double beta;42int domnr;43const CSGeometry& geom;44const Solid *sol1, *sol2;45ARRAY<Point<3> > points;46ARRAY<INDEX_2> segms;47double factor;4849double maxhinit;50public:51SingularEdge (double abeta, int adomnr,52const CSGeometry & ageom,53const Solid * asol1, const Solid * asol2, double sf,54const double maxh_at_initialization = -1);55void FindPointsOnEdge (class Mesh & mesh);56void SetMeshSize (class Mesh & mesh, double globalh);57};585960///61class SingularPoint62{63public:64double beta;65const Solid *sol1, *sol2, *sol3;66ARRAY<Point<3> > points;67double factor;6869public:70SingularPoint (double abeta, const Solid * asol1, const Solid * asol2,71const Solid * asol3, double sf);72void FindPoints (class Mesh & mesh);73void SetMeshSize (class Mesh & mesh, double globalh);74};757677#endif787980