File: bisect.hpp

package info (click to toggle)
netgen 6.2.2601%2Bdfsg1-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 13,076 kB
  • sloc: cpp: 166,627; tcl: 6,310; python: 2,868; sh: 528; makefile: 90
file content (72 lines) | stat: -rw-r--r-- 1,516 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#ifndef NETGEN_BISECT_HPP
#define NETGEN_BISECT_HPP

#include <mydefs.hpp>
#include <general/parthreads.hpp>
#include "basegeom.hpp"
#include "meshclass.hpp"

namespace netgen
{

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;
  DLL_HEADER BisectionOptions ();
};

class ZRefinementOptions
{
public:
  int minref;
  DLL_HEADER ZRefinementOptions();
};



DLL_HEADER extern void BisectTetsCopyMesh (Mesh &, const NetgenGeometry *,
				BisectionOptions & opt);

DLL_HEADER extern void ZRefinement (Mesh &, const class NetgenGeometry *,
			 ZRefinementOptions & opt);





class DLL_HEADER Refinement
{
 const NetgenGeometry& geo;

public:
 Refinement (const NetgenGeometry& ageo) : geo(ageo) {}
 virtual ~Refinement () {}
  
  void Refine (Mesh & mesh) const;
  void Refine (Mesh & mesh);
  void Bisect (Mesh & mesh, class BisectionOptions & opt, NgArray<double> * quality_loss = NULL) const;

  void MakeSecondOrder (Mesh & mesh) const;
  void MakeSecondOrder (Mesh & mesh);

  void ValidateSecondOrder (Mesh & mesh);
  void ValidateRefinedMesh (Mesh & mesh, 
			    NgArray<INDEX_2> & parents);
  
  virtual void LocalizeEdgePoints(Mesh & /* mesh */) const {;}
};

} // namespace netgen

#endif // NETGEN_BISECT_HPP