mirror of
https://github.com/NGSolve/netgen.git
synced 2024-12-24 04:50:34 +05:00
throw if IdentifyBoundaries mapped point is outside of mesh
This commit is contained in:
parent
585a2e086c
commit
e3f95528e0
@ -6261,22 +6261,31 @@ namespace netgen
|
||||
auto mapped_pt = mapping(pt);
|
||||
auto other_nr = GetElementOfPoint(mapped_pt, lami, true);
|
||||
int index = -1;
|
||||
auto other_el = VolumeElement(other_nr);
|
||||
for(auto i : Range(other_el.PNums().Size()))
|
||||
if((mapped_pt - (*this)[other_el.PNums()[i]]).Length() < pointTolerance)
|
||||
{
|
||||
index = i;
|
||||
break;
|
||||
}
|
||||
if(index == -1)
|
||||
if(other_nr != 0)
|
||||
{
|
||||
auto other_el = VolumeElement(other_nr);
|
||||
for(auto i : Range(other_el.PNums().Size()))
|
||||
if((mapped_pt - (*this)[other_el.PNums()[i]]).Length() < pointTolerance)
|
||||
{
|
||||
index = i;
|
||||
break;
|
||||
}
|
||||
if(index == -1)
|
||||
{
|
||||
cout << "point coordinates = " << pt << endl;
|
||||
cout << "mapped coordinates = " << mapped_pt << endl;
|
||||
throw Exception("Did not find mapped point with nr " + ToString(pi) + ", are you sure your mesh is periodic?");
|
||||
}
|
||||
auto other_pi = other_el.PNums()[index];
|
||||
identified_points.insert(pi);
|
||||
ident->Add(pi, other_pi, nr);
|
||||
}
|
||||
else
|
||||
{
|
||||
cout << "point coordinates = " << pt << endl;
|
||||
cout << "mapped coordinates = " << mapped_pt << endl;
|
||||
throw Exception("Did not find mapped point with nr " + ToString(pi) + ", are you sure your mesh is periodic?");
|
||||
throw Exception("Mapped point with nr " + ToString(pi) + " is outside of mesh, are you sure your mesh is periodic?");
|
||||
}
|
||||
auto other_pi = other_el.PNums()[index];
|
||||
identified_points.insert(pi);
|
||||
ident->Add(pi, other_pi, nr);
|
||||
}
|
||||
}
|
||||
return nr;
|
||||
|
Loading…
Reference in New Issue
Block a user