mirror of
https://github.com/NGSolve/netgen.git
synced 2024-12-24 21:10:33 +05:00
mesh bisection with onlyonce option. otherwise, tet-bisection performs three bisection steps to obtain h/2
This commit is contained in:
parent
75e6c8217f
commit
28c4b78410
@ -347,7 +347,7 @@ namespace netgen
|
|||||||
|
|
||||||
void EnableTable (string name, bool set);
|
void EnableTable (string name, bool set);
|
||||||
|
|
||||||
void Refine (NG_REFINEMENT_TYPE reftype,
|
void Refine (NG_REFINEMENT_TYPE reftype, bool onlyonce,
|
||||||
void (*taskmanager)(function<void(int,int)>) = &DummyTaskManager2,
|
void (*taskmanager)(function<void(int,int)>) = &DummyTaskManager2,
|
||||||
void (*tracer)(string, bool) = &DummyTracer2);
|
void (*tracer)(string, bool) = &DummyTracer2);
|
||||||
|
|
||||||
|
@ -1156,7 +1156,7 @@ namespace netgen
|
|||||||
mesh->VolumeElement(elnr+1).SetRefinementFlag(flag);
|
mesh->VolumeElement(elnr+1).SetRefinementFlag(flag);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Ngx_Mesh :: Refine (NG_REFINEMENT_TYPE reftype,
|
void Ngx_Mesh :: Refine (NG_REFINEMENT_TYPE reftype, bool onlyonce,
|
||||||
void (*task_manager)(function<void(int,int)>),
|
void (*task_manager)(function<void(int,int)>),
|
||||||
NgTracer tracer)
|
NgTracer tracer)
|
||||||
{
|
{
|
||||||
@ -1166,6 +1166,7 @@ namespace netgen
|
|||||||
biopt.usemarkedelements = 1;
|
biopt.usemarkedelements = 1;
|
||||||
biopt.refine_p = 0;
|
biopt.refine_p = 0;
|
||||||
biopt.refine_hp = 0;
|
biopt.refine_hp = 0;
|
||||||
|
biopt.onlyonce = onlyonce;
|
||||||
if (reftype == NG_REFINE_P)
|
if (reftype == NG_REFINE_P)
|
||||||
biopt.refine_p = 1;
|
biopt.refine_p = 1;
|
||||||
if (reftype == NG_REFINE_HP)
|
if (reftype == NG_REFINE_HP)
|
||||||
|
@ -3019,7 +3019,7 @@ namespace netgen
|
|||||||
{
|
{
|
||||||
cnttet++;
|
cnttet++;
|
||||||
mtets.Elem(cnttet).marked =
|
mtets.Elem(cnttet).marked =
|
||||||
3 * mesh.VolumeElement(i).TestRefinementFlag();
|
(opt.onlyonce ? 3 : 1) * mesh.VolumeElement(i).TestRefinementFlag();
|
||||||
if (mtets.Elem(cnttet).marked)
|
if (mtets.Elem(cnttet).marked)
|
||||||
cntm++;
|
cntm++;
|
||||||
}
|
}
|
||||||
@ -3038,7 +3038,7 @@ namespace netgen
|
|||||||
for (int i = 1; i <= mtets.Size(); i++)
|
for (int i = 1; i <= mtets.Size(); i++)
|
||||||
{
|
{
|
||||||
mtets.Elem(i).marked =
|
mtets.Elem(i).marked =
|
||||||
3 * mesh.VolumeElement(i).TestRefinementFlag();
|
(opt.onlyonce ? 1 : 3) * mesh.VolumeElement(i).TestRefinementFlag();
|
||||||
if (mtets.Elem(i).marked)
|
if (mtets.Elem(i).marked)
|
||||||
cntm++;
|
cntm++;
|
||||||
}
|
}
|
||||||
@ -3068,7 +3068,7 @@ namespace netgen
|
|||||||
{
|
{
|
||||||
cnttrig++;
|
cnttrig++;
|
||||||
mtris.Elem(cnttrig).marked =
|
mtris.Elem(cnttrig).marked =
|
||||||
mesh.SurfaceElement(i).TestRefinementFlag() ? 2 : 0;
|
mesh.SurfaceElement(i).TestRefinementFlag() ? (opt.onlyonce ? 1 : 2) : 0;
|
||||||
// mtris.Elem(cnttrig).marked = 0;
|
// mtris.Elem(cnttrig).marked = 0;
|
||||||
if (mtris.Elem(cnttrig).marked)
|
if (mtris.Elem(cnttrig).marked)
|
||||||
cntm++;
|
cntm++;
|
||||||
|
@ -12,6 +12,7 @@ public:
|
|||||||
int usemarkedelements;
|
int usemarkedelements;
|
||||||
bool refine_hp;
|
bool refine_hp;
|
||||||
bool refine_p;
|
bool refine_p;
|
||||||
|
bool onlyonce = false;
|
||||||
NgTaskManager task_manager = &DummyTaskManager;
|
NgTaskManager task_manager = &DummyTaskManager;
|
||||||
NgTracer tracer = &DummyTracer;
|
NgTracer tracer = &DummyTracer;
|
||||||
DLL_HEADER BisectionOptions ();
|
DLL_HEADER BisectionOptions ();
|
||||||
|
Loading…
Reference in New Issue
Block a user