mirror of
https://github.com/NGSolve/netgen.git
synced 2025-01-26 21:00:34 +05:00
delete local memory after redistributing mesh on master. GetElementOfPoint behaves correctly for empty meshes
This commit is contained in:
parent
b0eae54226
commit
a386ca46d9
@ -4995,6 +4995,10 @@ namespace netgen
|
|||||||
// netgen::Point<3> pmin = p - Vec<3> (pointtol, pointtol, pointtol);
|
// netgen::Point<3> pmin = p - Vec<3> (pointtol, pointtol, pointtol);
|
||||||
// netgen::Point<3> pmax = p + Vec<3> (pointtol, pointtol, pointtol);
|
// netgen::Point<3> pmax = p + Vec<3> (pointtol, pointtol, pointtol);
|
||||||
|
|
||||||
|
if ( (dimension == 2 && !GetNSE()) ||
|
||||||
|
(dimension == 3 && !GetNE() && !GetNSE()) )
|
||||||
|
return -1;
|
||||||
|
|
||||||
if (dimension == 2 || (dimension==3 && !GetNE() && GetNSE()))
|
if (dimension == 2 || (dimension==3 && !GetNE() && GetNSE()))
|
||||||
{
|
{
|
||||||
int ne;
|
int ne;
|
||||||
|
@ -745,6 +745,38 @@ namespace netgen
|
|||||||
|
|
||||||
MPI_Barrier(comm);
|
MPI_Barrier(comm);
|
||||||
|
|
||||||
|
PrintMessage( 3, "Clean up local memory");
|
||||||
|
|
||||||
|
auto & self = const_cast<Mesh&>(*this);
|
||||||
|
self.points = T_POINTS(0);
|
||||||
|
self.surfelements = T_SURFELEMENTS(0);
|
||||||
|
self.volelements = T_VOLELEMENTS(0);
|
||||||
|
self.segments = Array<Segment, 0, size_t>(0);
|
||||||
|
self.lockedpoints = Array<PointIndex>(0);
|
||||||
|
auto cleanup_ptr = [](auto & ptr) {
|
||||||
|
if (ptr != nullptr) {
|
||||||
|
delete ptr;
|
||||||
|
ptr = nullptr;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
cleanup_ptr(self.boundaryedges);
|
||||||
|
cleanup_ptr(self.boundaryedges);
|
||||||
|
cleanup_ptr(self.segmentht);
|
||||||
|
cleanup_ptr(self.surfelementht);
|
||||||
|
self.openelements = Array<Element2d>(0);
|
||||||
|
self.opensegments = Array<Segment>(0);
|
||||||
|
self.numvertices = 0;
|
||||||
|
self.mlbetweennodes = Array<PointIndices<2>,PointIndex::BASE> (0);
|
||||||
|
self.mlparentelement = Array<int>(0);
|
||||||
|
self.mlparentsurfaceelement = Array<int>(0);
|
||||||
|
self.topology.Update();
|
||||||
|
self.curvedelems = new CurvedElements (self);
|
||||||
|
self.clusters = new AnisotropicClusters (self);
|
||||||
|
self.ident = new Identifications (self);
|
||||||
|
self.BuildElementSearchTree();
|
||||||
|
|
||||||
|
// const_cast<Mesh&>(*this).DeleteMesh();
|
||||||
|
|
||||||
PrintMessage( 3, "send mesh complete");
|
PrintMessage( 3, "send mesh complete");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user