netgen/libsrc/meshing/bisect.hpp

73 lines
1.5 KiB
C++
Raw Normal View History

#ifndef NETGEN_BISECT_HPP
#define NETGEN_BISECT_HPP
#include <mydefs.hpp>
#include <general/parthreads.hpp>
#include "basegeom.hpp"
#include "meshclass.hpp"
namespace netgen
{
2009-01-13 04:40:13 +05:00
class BisectionOptions
{
public:
const char * outfilename;
const char * mlfilename;
const char * refinementfilename;
const char * femcode;
int maxlevel;
int usemarkedelements;
bool refine_hp = false;
bool refine_p = false;
bool onlyonce = false;
NgTaskManager task_manager = &DummyTaskManager;
NgTracer tracer = &DummyTracer;
2015-10-19 13:08:30 +05:00
DLL_HEADER BisectionOptions ();
2009-01-13 04:40:13 +05:00
};
class ZRefinementOptions
{
public:
int minref;
2015-10-19 13:08:30 +05:00
DLL_HEADER ZRefinementOptions();
2009-01-13 04:40:13 +05:00
};
2015-10-19 13:08:30 +05:00
DLL_HEADER extern void BisectTetsCopyMesh (Mesh &, const NetgenGeometry *,
2009-01-13 04:40:13 +05:00
BisectionOptions & opt);
2015-10-19 13:08:30 +05:00
DLL_HEADER extern void ZRefinement (Mesh &, const class NetgenGeometry *,
2009-01-13 04:40:13 +05:00
ZRefinementOptions & opt);
class DLL_HEADER Refinement
2009-01-13 04:40:13 +05:00
{
const NetgenGeometry& geo;
2009-01-13 04:40:13 +05:00
public:
Refinement (const NetgenGeometry& ageo) : geo(ageo) {}
virtual ~Refinement () {}
2009-01-13 04:40:13 +05:00
2009-08-25 20:00:20 +06:00
void Refine (Mesh & mesh) const;
2009-01-13 04:40:13 +05:00
void Refine (Mesh & mesh);
2019-07-09 13:39:16 +05:00
void Bisect (Mesh & mesh, class BisectionOptions & opt, NgArray<double> * quality_loss = NULL) const;
void MakeSecondOrder (Mesh & mesh) const;
2009-01-13 04:40:13 +05:00
void MakeSecondOrder (Mesh & mesh);
void ValidateSecondOrder (Mesh & mesh);
void ValidateRefinedMesh (Mesh & mesh,
2019-07-09 13:39:16 +05:00
NgArray<INDEX_2> & parents);
2009-01-13 04:40:13 +05:00
virtual void LocalizeEdgePoints(Mesh & /* mesh */) const {;}
};
} // namespace netgen
#endif // NETGEN_BISECT_HPP