mirror of
https://github.com/NGSolve/netgen.git
synced 2025-01-12 14:10:34 +05:00
occ use optimize surface functionality from basegeom
This commit is contained in:
parent
bee097b153
commit
43cc5e68b1
@ -10,6 +10,40 @@ namespace netgen
|
|||||||
GeometryRegister :: ~GeometryRegister()
|
GeometryRegister :: ~GeometryRegister()
|
||||||
{ ; }
|
{ ; }
|
||||||
|
|
||||||
|
void NetgenGeometry :: OptimizeSurface(Mesh& mesh, const MeshingParameters& mparam)
|
||||||
|
{
|
||||||
|
const auto savetask = multithread.task;
|
||||||
|
multithread.task = "Optimizing surface";
|
||||||
|
|
||||||
|
static Timer timer_opt2d("Optimization 2D");
|
||||||
|
RegionTimer reg(timer_opt2d);
|
||||||
|
auto meshopt = GetMeshOptimizer();
|
||||||
|
for(auto i : Range(mparam.optsteps2d))
|
||||||
|
{
|
||||||
|
PrintMessage(2, "Optimization step ", i);
|
||||||
|
for(auto optstep : mparam.optimize2d)
|
||||||
|
{
|
||||||
|
switch(optstep)
|
||||||
|
{
|
||||||
|
case 's':
|
||||||
|
meshopt->EdgeSwapping(mesh, 0);
|
||||||
|
break;
|
||||||
|
case 'S':
|
||||||
|
meshopt->EdgeSwapping(mesh, 1);
|
||||||
|
break;
|
||||||
|
case 'm':
|
||||||
|
meshopt->ImproveMesh(mesh, mparam);
|
||||||
|
break;
|
||||||
|
case 'c':
|
||||||
|
meshopt->CombineImprove (mesh);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mesh.CalcSurfacesOfNode();
|
||||||
|
mesh.Compress();
|
||||||
|
multithread.task = savetask;
|
||||||
|
}
|
||||||
|
|
||||||
shared_ptr<NetgenGeometry> GeometryRegisterArray :: LoadFromMeshFile (istream & ist) const
|
shared_ptr<NetgenGeometry> GeometryRegisterArray :: LoadFromMeshFile (istream & ist) const
|
||||||
{
|
{
|
||||||
|
@ -30,7 +30,9 @@ namespace netgen
|
|||||||
const MeshingParameters& mparam) {}
|
const MeshingParameters& mparam) {}
|
||||||
virtual void FindEdges(Mesh& mesh, const MeshingParameters& mparam) {}
|
virtual void FindEdges(Mesh& mesh, const MeshingParameters& mparam) {}
|
||||||
virtual void MeshSurface(Mesh& mesh, const MeshingParameters& mparam) {}
|
virtual void MeshSurface(Mesh& mesh, const MeshingParameters& mparam) {}
|
||||||
virtual void OptimizeSurface(Mesh& mesh, const MeshingParameters& mparam) {}
|
virtual void OptimizeSurface(Mesh& mesh, const MeshingParameters& mparam);
|
||||||
|
virtual unique_ptr<MeshOptimize2d> GetMeshOptimizer() const
|
||||||
|
{ return make_unique<MeshOptimize2d>(); }
|
||||||
virtual void FinalizeMesh(Mesh& mesh) const {}
|
virtual void FinalizeMesh(Mesh& mesh) const {}
|
||||||
virtual void Save (string filename) const;
|
virtual void Save (string filename) const;
|
||||||
virtual void SaveToMeshFile (ostream & /* ost */) const { ; }
|
virtual void SaveToMeshFile (ostream & /* ost */) const { ; }
|
||||||
|
@ -92,12 +92,6 @@ void STEP_GetEntityName(const TopoDS_Shape & theShape, STEPCAFControl_Reader * a
|
|||||||
OCCMeshSurface(*this, mesh, mparam);
|
OCCMeshSurface(*this, mesh, mparam);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OCCGeometry :: OptimizeSurface(Mesh& mesh,
|
|
||||||
const MeshingParameters& mparam)
|
|
||||||
{
|
|
||||||
OCCOptimizeSurface(*this, mesh, mparam);
|
|
||||||
}
|
|
||||||
|
|
||||||
void OCCGeometry :: FinalizeMesh(Mesh& mesh) const
|
void OCCGeometry :: FinalizeMesh(Mesh& mesh) const
|
||||||
{
|
{
|
||||||
for (int i = 0; i < mesh.GetNDomains(); i++)
|
for (int i = 0; i < mesh.GetNDomains(); i++)
|
||||||
|
@ -265,7 +265,7 @@ namespace netgen
|
|||||||
{ return Mesh::GEOM_OCC; }
|
{ return Mesh::GEOM_OCC; }
|
||||||
|
|
||||||
void SetOCCParameters(const OCCParameters& par)
|
void SetOCCParameters(const OCCParameters& par)
|
||||||
{ cout << "set occ pars to = " << par.resthcloseedgefac << endl; occparam = par; }
|
{ occparam = par; }
|
||||||
|
|
||||||
void Analyse(Mesh& mesh,
|
void Analyse(Mesh& mesh,
|
||||||
const MeshingParameters& mparam) override;
|
const MeshingParameters& mparam) override;
|
||||||
@ -273,8 +273,9 @@ namespace netgen
|
|||||||
const MeshingParameters& mparam) override;
|
const MeshingParameters& mparam) override;
|
||||||
void MeshSurface(Mesh& mesh,
|
void MeshSurface(Mesh& mesh,
|
||||||
const MeshingParameters& mparam) override;
|
const MeshingParameters& mparam) override;
|
||||||
void OptimizeSurface(Mesh& mesh,
|
unique_ptr<MeshOptimize2d> GetMeshOptimizer() const override
|
||||||
const MeshingParameters& mparam) override;
|
{ return make_unique<MeshOptimize2dOCCSurfaces>(*this); }
|
||||||
|
|
||||||
void FinalizeMesh(Mesh& mesh) const override;
|
void FinalizeMesh(Mesh& mesh) const override;
|
||||||
|
|
||||||
DLL_HEADER void Save (string filename) const override;
|
DLL_HEADER void Save (string filename) const override;
|
||||||
|
Loading…
Reference in New Issue
Block a user