2023-09-04 16:43:47 +05:00
|
|
|
#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;
|
2023-03-23 01:23:22 +05:00
|
|
|
bool refine_hp = false;
|
|
|
|
bool refine_p = false;
|
2021-02-19 19:06:13 +05:00
|
|
|
bool onlyonce = false;
|
2020-08-17 18:55:15 +05:00
|
|
|
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);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-03-04 02:42:20 +05:00
|
|
|
class DLL_HEADER Refinement
|
2009-01-13 04:40:13 +05:00
|
|
|
{
|
2019-10-02 23:29:18 +05:00
|
|
|
const NetgenGeometry& geo;
|
2009-01-13 04:40:13 +05:00
|
|
|
|
|
|
|
public:
|
2019-10-02 23:29:18 +05:00
|
|
|
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;
|
2010-09-15 03:21:04 +06:00
|
|
|
|
|
|
|
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 {;}
|
|
|
|
};
|
|
|
|
|
2023-09-04 16:43:47 +05:00
|
|
|
} // namespace netgen
|
|
|
|
|
|
|
|
#endif // NETGEN_BISECT_HPP
|