mirror of
https://github.com/NGSolve/netgen.git
synced 2025-01-12 14:10:34 +05:00
store 'is_curved' flag in mesh elements
This commit is contained in:
parent
906bb230d5
commit
3f0c07ce15
@ -49,7 +49,8 @@ NGX_INLINE DLL_HEADER Ng_Element Ngx_Mesh :: GetElement<1> (int nr) const
|
|||||||
ret.faces.num = 0;
|
ret.faces.num = 0;
|
||||||
ret.faces.ptr = NULL;
|
ret.faces.ptr = NULL;
|
||||||
|
|
||||||
ret.is_curved = mesh->GetCurvedElements().IsSegmentCurved(nr);
|
// ret.is_curved = mesh->GetCurvedElements().IsSegmentCurved(nr);
|
||||||
|
ret.is_curved = el.IsCurved();
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -100,7 +101,8 @@ NGX_INLINE DLL_HEADER Ng_Element Ngx_Mesh :: GetElement<3> (int nr) const
|
|||||||
ret.faces.num = MeshTopology::GetNFaces (el.GetType());
|
ret.faces.num = MeshTopology::GetNFaces (el.GetType());
|
||||||
ret.faces.ptr = (T_FACE2*)mesh->GetTopology().GetElementFacesPtr (nr);
|
ret.faces.ptr = (T_FACE2*)mesh->GetTopology().GetElementFacesPtr (nr);
|
||||||
|
|
||||||
ret.is_curved = mesh->GetCurvedElements().IsElementCurved(nr);
|
// ret.is_curved = mesh->GetCurvedElements().IsElementCurved(nr);
|
||||||
|
ret.is_curved = el.IsCurved();
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -5522,10 +5522,12 @@ namespace netgen
|
|||||||
{
|
{
|
||||||
GetCurvedElements().BuildCurvedElements (ref, aorder, arational);
|
GetCurvedElements().BuildCurvedElements (ref, aorder, arational);
|
||||||
|
|
||||||
|
for (SegmentIndex seg = 0; seg < GetNSeg(); seg++)
|
||||||
|
(*this)[seg].SetCurved (GetCurvedElements().IsSegmentCurved (seg));
|
||||||
for (SurfaceElementIndex sei = 0; sei < GetNSE(); sei++)
|
for (SurfaceElementIndex sei = 0; sei < GetNSE(); sei++)
|
||||||
{
|
(*this)[sei].SetCurved (GetCurvedElements().IsSurfaceElementCurved (sei));
|
||||||
(*this)[sei].SetCurved (GetCurvedElements().IsSurfaceElementCurved (sei));
|
for (ElementIndex ei = 0; ei < GetNE(); ei++)
|
||||||
}
|
(*this)[ei].SetCurved (GetCurvedElements().IsElementCurved (ei));
|
||||||
|
|
||||||
SetNextMajorTimeStamp();
|
SetNextMajorTimeStamp();
|
||||||
}
|
}
|
||||||
|
@ -57,6 +57,7 @@ namespace netgen
|
|||||||
|
|
||||||
|
|
||||||
Segment :: Segment()
|
Segment :: Segment()
|
||||||
|
: is_curved(false)
|
||||||
{
|
{
|
||||||
pnums[0] = -1;
|
pnums[0] = -1;
|
||||||
pnums[1] = -1;
|
pnums[1] = -1;
|
||||||
@ -90,7 +91,7 @@ namespace netgen
|
|||||||
}
|
}
|
||||||
|
|
||||||
Segment::Segment (const Segment & other)
|
Segment::Segment (const Segment & other)
|
||||||
:
|
:
|
||||||
edgenr(other.edgenr),
|
edgenr(other.edgenr),
|
||||||
singedge_left(other.singedge_left),
|
singedge_left(other.singedge_left),
|
||||||
singedge_right(other.singedge_right),
|
singedge_right(other.singedge_right),
|
||||||
@ -104,7 +105,8 @@ namespace netgen
|
|||||||
surfnr2(other.surfnr2),
|
surfnr2(other.surfnr2),
|
||||||
epgeominfo(),
|
epgeominfo(),
|
||||||
meshdocval(other.meshdocval),
|
meshdocval(other.meshdocval),
|
||||||
hp_elnr(other.hp_elnr)
|
hp_elnr(other.hp_elnr),
|
||||||
|
is_curved(other.is_curved)
|
||||||
{
|
{
|
||||||
for (int j = 0; j < 3; j++)
|
for (int j = 0; j < 3; j++)
|
||||||
pnums[j] = other.pnums[j];
|
pnums[j] = other.pnums[j];
|
||||||
@ -140,6 +142,7 @@ namespace netgen
|
|||||||
meshdocval = other.meshdocval;
|
meshdocval = other.meshdocval;
|
||||||
hp_elnr = other.hp_elnr;
|
hp_elnr = other.hp_elnr;
|
||||||
bcname = other.bcname;
|
bcname = other.bcname;
|
||||||
|
is_curved = other.is_curved;
|
||||||
}
|
}
|
||||||
|
|
||||||
return *this;
|
return *this;
|
||||||
@ -948,7 +951,7 @@ namespace netgen
|
|||||||
flags.deleted = 0;
|
flags.deleted = 0;
|
||||||
flags.fixed = 0;
|
flags.fixed = 0;
|
||||||
orderx = ordery = orderz = 1;
|
orderx = ordery = orderz = 1;
|
||||||
|
is_curved = false;
|
||||||
#ifdef PARALLEL
|
#ifdef PARALLEL
|
||||||
partitionNumber = -1;
|
partitionNumber = -1;
|
||||||
#endif
|
#endif
|
||||||
@ -984,6 +987,7 @@ namespace netgen
|
|||||||
default: cerr << "Element::Element: unknown element with " << np << " points" << endl;
|
default: cerr << "Element::Element: unknown element with " << np << " points" << endl;
|
||||||
}
|
}
|
||||||
orderx = ordery = orderz = 1;
|
orderx = ordery = orderz = 1;
|
||||||
|
is_curved = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Element :: SetOrder (const int aorder)
|
void Element :: SetOrder (const int aorder)
|
||||||
@ -1021,6 +1025,7 @@ namespace netgen
|
|||||||
flags.deleted = 0;
|
flags.deleted = 0;
|
||||||
flags.fixed = 0;
|
flags.fixed = 0;
|
||||||
orderx = ordery = orderz = 1;
|
orderx = ordery = orderz = 1;
|
||||||
|
is_curved = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1040,6 +1045,7 @@ namespace netgen
|
|||||||
orderz = el2.orderz;
|
orderz = el2.orderz;
|
||||||
hp_elnr = el2.hp_elnr;
|
hp_elnr = el2.hp_elnr;
|
||||||
flags = el2.flags;
|
flags = el2.flags;
|
||||||
|
is_curved = el2.is_curved;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -574,6 +574,7 @@ namespace netgen
|
|||||||
unsigned int levelz:6; */
|
unsigned int levelz:6; */
|
||||||
/// stored shape-badness of element
|
/// stored shape-badness of element
|
||||||
float badness;
|
float badness;
|
||||||
|
bool is_curved:1; // element is (high order) curved
|
||||||
|
|
||||||
#ifdef PARALLEL
|
#ifdef PARALLEL
|
||||||
/// number of partition for parallel computation
|
/// number of partition for parallel computation
|
||||||
@ -771,6 +772,8 @@ namespace netgen
|
|||||||
return flags.deleted;
|
return flags.deleted;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool IsCurved () const { return is_curved; }
|
||||||
|
void SetCurved (bool acurved) { is_curved = acurved; }
|
||||||
|
|
||||||
|
|
||||||
#ifdef PARALLEL
|
#ifdef PARALLEL
|
||||||
@ -842,6 +845,7 @@ namespace netgen
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
string* bcname;
|
string* bcname;
|
||||||
|
bool is_curved;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/*
|
/*
|
||||||
@ -888,6 +892,10 @@ namespace netgen
|
|||||||
PointIndex & operator[] (int i) { return pnums[i]; }
|
PointIndex & operator[] (int i) { return pnums[i]; }
|
||||||
const PointIndex & operator[] (int i) const { return pnums[i]; }
|
const PointIndex & operator[] (int i) const { return pnums[i]; }
|
||||||
|
|
||||||
|
|
||||||
|
bool IsCurved () const { return is_curved; }
|
||||||
|
void SetCurved (bool acurved) { is_curved = acurved; }
|
||||||
|
|
||||||
#ifdef PARALLEL
|
#ifdef PARALLEL
|
||||||
int GetPartition () const { return partitionNumber; }
|
int GetPartition () const { return partitionNumber; }
|
||||||
void SetPartition (int nr) { partitionNumber = nr; };
|
void SetPartition (int nr) { partitionNumber = nr; };
|
||||||
|
Loading…
Reference in New Issue
Block a user