mirror of
https://github.com/NGSolve/netgen.git
synced 2024-12-26 05:50:32 +05:00
hpref from occ geometry
This commit is contained in:
parent
679fe05d19
commit
0f598bffa3
@ -319,7 +319,9 @@ namespace netgen
|
||||
for (int i = 1; i <= nvertices; i++)
|
||||
{
|
||||
gp_Pnt pnt = BRep_Tool::Pnt (TopoDS::Vertex(geom.vmap(i)));
|
||||
double hpref = OCCGeometry::global_shape_properties[TopoDS::Vertex(geom.vmap(i)).TShape()].hpref;
|
||||
MeshPoint mp(occ2ng(pnt));
|
||||
// mp.Singularity(hpref);
|
||||
|
||||
bool exists = false;
|
||||
if (merge_solids)
|
||||
@ -331,13 +333,15 @@ namespace netgen
|
||||
}
|
||||
|
||||
if (!exists)
|
||||
mesh.AddPoint (mp);
|
||||
{
|
||||
mesh.AddPoint (mp);
|
||||
mesh.Points().Last().Singularity(hpref);
|
||||
}
|
||||
|
||||
double maxh = OCCGeometry::global_shape_properties[TopoDS::Vertex(geom.vmap(i)).TShape()].maxh;
|
||||
mesh.RestrictLocalH (occ2ng(pnt), maxh);
|
||||
}
|
||||
tsearch.Stop();
|
||||
|
||||
(*testout) << "different vertices = " << mesh.GetNP() << endl;
|
||||
|
||||
// int first_ep = mesh.GetNP()+1;
|
||||
@ -604,6 +608,8 @@ namespace netgen
|
||||
(*testout) << "NP = " << mesh.GetNP() << endl;
|
||||
//(*testout) << pnums[pnums.Size()-1] << endl;
|
||||
|
||||
double hpref = OCCGeometry::global_shape_properties[edge.TShape()].hpref;
|
||||
|
||||
// for (size_t i = 1; i <= mp.Size()+1; i++)
|
||||
for (size_t i = 1; i < pnums.Size(); i++)
|
||||
{
|
||||
@ -632,6 +638,8 @@ namespace netgen
|
||||
seg.epgeominfo[1].u = p2d2.X();
|
||||
seg.epgeominfo[1].v = p2d2.Y();
|
||||
|
||||
seg.singedge_left = hpref;
|
||||
seg.singedge_right = hpref;
|
||||
/*
|
||||
if (occface->IsUPeriodic())
|
||||
{
|
||||
|
@ -220,6 +220,7 @@ namespace netgen
|
||||
optional<string> name;
|
||||
optional<Vec<4>> col;
|
||||
double maxh = 1e99;
|
||||
double hpref = 0; // number of hp refinement levels (will be multiplied by factor later)
|
||||
void Merge(const ShapeProperties & prop2)
|
||||
{
|
||||
if (prop2.name) name = prop2.name;
|
||||
|
@ -883,6 +883,17 @@ DLL_HEADER void ExportNgOCCShapes(py::module &m)
|
||||
}
|
||||
}, "maximal mesh-size for shape")
|
||||
|
||||
.def_property("hpref",
|
||||
[](const TopoDS_Shape& self)
|
||||
{
|
||||
return OCCGeometry::global_shape_properties[self.TShape()].hpref;
|
||||
},
|
||||
[](TopoDS_Shape& self, double val)
|
||||
{
|
||||
auto & hpref = OCCGeometry::global_shape_properties[self.TShape()].hpref;
|
||||
hpref = max2(val, hpref);
|
||||
}, "number of refinement levels for geometric refinement")
|
||||
|
||||
.def_property("col", [](const TopoDS_Shape & self) {
|
||||
auto it = OCCGeometry::global_shape_properties.find(self.TShape());
|
||||
Vec<4> col(0.2, 0.2, 0.2);
|
||||
|
Loading…
Reference in New Issue
Block a user