mirror of
https://github.com/NGSolve/netgen.git
synced 2025-03-14 02:11:34 +05:00
use of ElementIndex
This commit is contained in:
parent
4a9188da61
commit
95e9408db0
@ -89,7 +89,7 @@ namespace netgen
|
||||
NgArray<int> nnums; // , ednums, fanums;
|
||||
for (auto i_ : myrange)
|
||||
{
|
||||
int i = i_+1;
|
||||
int i = i_-IndexBASE<ElementIndex>()+1;
|
||||
const Element & el = mesh.VolumeElement(i_);
|
||||
ELEMENT_TYPE typ = el.GetType();
|
||||
|
||||
|
@ -2439,7 +2439,7 @@ namespace netgen
|
||||
const HPRefElement & hpref_el =
|
||||
(*mesh.hpelements) [mesh[elnr].GetHpElnr()];
|
||||
|
||||
return mesh.coarsemesh->GetCurvedElements().IsElementCurved (hpref_el.coarse_elnr);
|
||||
return mesh.coarsemesh->GetCurvedElements().IsElementCurved (ElementIndex(hpref_el.coarse_elnr));
|
||||
}
|
||||
|
||||
const Element & el = mesh[elnr];
|
||||
@ -2491,7 +2491,7 @@ namespace netgen
|
||||
const HPRefElement & hpref_el =
|
||||
(*mesh.hpelements) [mesh[elnr].GetHpElnr()];
|
||||
|
||||
return mesh.coarsemesh->GetCurvedElements().IsElementHighOrder (hpref_el.coarse_elnr);
|
||||
return mesh.coarsemesh->GetCurvedElements().IsElementHighOrder (ElementIndex(hpref_el.coarse_elnr));
|
||||
}
|
||||
|
||||
const Element & el = mesh[elnr];
|
||||
@ -2555,7 +2555,8 @@ namespace netgen
|
||||
for (int j = 0; j < 3; j++)
|
||||
coarse_xi(j) += hpref_el.param[i][j] * lami[i];
|
||||
|
||||
mesh.coarsemesh->GetCurvedElements().CalcElementTransformation (coarse_xi, hpref_el.coarse_elnr, x, &dxdxic /* , curved */);
|
||||
mesh.coarsemesh->GetCurvedElements().
|
||||
CalcElementTransformation (coarse_xi, ElementIndex(hpref_el.coarse_elnr), x, &dxdxic /* , curved */);
|
||||
|
||||
if (dxdxi)
|
||||
*dxdxi = dxdxic * trans;
|
||||
@ -4584,7 +4585,7 @@ namespace netgen
|
||||
}
|
||||
|
||||
mesh.coarsemesh->GetCurvedElements().
|
||||
CalcMultiPointElementTransformation (hpref_el.coarse_elnr, n,
|
||||
CalcMultiPointElementTransformation (ElementIndex(hpref_el.coarse_elnr), n,
|
||||
&coarse_xi[0], 3,
|
||||
x, sx,
|
||||
dxdxi, sdxdxi);
|
||||
|
@ -613,10 +613,11 @@ namespace netgen
|
||||
|
||||
void InitHPElements(Mesh & mesh, NgArray<HPRefElement> & elements)
|
||||
{
|
||||
for(ElementIndex i = 0; i < mesh.GetNE(); i++)
|
||||
// for(ElementIndex i = 0; i < mesh.GetNE(); i++)
|
||||
for(ElementIndex i : mesh.VolumeElements().Range())
|
||||
{
|
||||
HPRefElement hpel(mesh[i]);
|
||||
hpel.coarse_elnr = i;
|
||||
hpel.coarse_elnr = int(i);
|
||||
|
||||
switch (mesh[i].GetType())
|
||||
{
|
||||
@ -1510,7 +1511,8 @@ namespace netgen
|
||||
|
||||
if(act_ref>=1)
|
||||
{
|
||||
for(ElementIndex i=0;i<mesh.GetNE(); i++)
|
||||
// for(ElementIndex i=0;i<mesh.GetNE(); i++)
|
||||
for (ElementIndex i : mesh.VolumeElements().Range())
|
||||
{
|
||||
// Element el = mesh[i] ;
|
||||
HPRefElement & hpel = hpelements[mesh[i].GetHpElnr()];
|
||||
|
@ -333,7 +333,7 @@ public:
|
||||
int levely;
|
||||
int levelz;
|
||||
int np;
|
||||
int coarse_elnr;
|
||||
int coarse_elnr; // issue (JS): same class is for ElementIndex, SurfaceElementIndex, SegmentIndex
|
||||
int domin, domout; // he: needed for segment!! in 3d there should be surf1, surf2!!
|
||||
// int coarse_hpelnr;
|
||||
PointIndex & operator[](int i) { return(pnums[i]);}
|
||||
|
@ -439,7 +439,8 @@ void MeshOptimize3d :: CombineImprove ()
|
||||
(*testout) << "Total badness = " << totalbad << endl;
|
||||
|
||||
int cntill = 0;
|
||||
for (ElementIndex ei = 0; ei < ne; ei++)
|
||||
// for (ElementIndex ei = 0; ei < ne; ei++)
|
||||
for (ElementIndex ei : ngcore::T_Range<ElementIndex>(ne))
|
||||
if(!(mesh.GetDimension()==3 && mp.only3D_domain_nr && mp.only3D_domain_nr != mesh.VolumeElement(ei).GetIndex()))
|
||||
if (!mesh.LegalTet (mesh[ei]))
|
||||
cntill++;
|
||||
@ -693,7 +694,8 @@ void MeshOptimize3d :: SplitImprove ()
|
||||
|
||||
[[maybe_unused]] int cntill = 0;
|
||||
ne = mesh.GetNE();
|
||||
for (ElementIndex ei = 0; ei < ne; ei++)
|
||||
// for (ElementIndex ei = 0; ei < ne; ei++)
|
||||
for (auto ei : ngcore::T_Range<ElementIndex>(ne))
|
||||
if (!mesh.LegalTet (mesh[ei]))
|
||||
cntill++;
|
||||
// cout << cntill << " illegal tets" << endl;
|
||||
@ -704,7 +706,7 @@ void MeshOptimize3d :: SplitImprove ()
|
||||
|
||||
|
||||
double MeshOptimize3d :: SwapImproveEdge (
|
||||
const BitArray * working_elements,
|
||||
const TBitArray<ElementIndex> * working_elements,
|
||||
Table<ElementIndex, PointIndex> & elementsonnode,
|
||||
INDEX_3_HASHTABLE<int> & faces,
|
||||
PointIndex pi1, PointIndex pi2, bool check_only)
|
||||
@ -765,7 +767,7 @@ double MeshOptimize3d :: SwapImproveEdge (
|
||||
|
||||
if(working_elements &&
|
||||
ei < working_elements->Size() &&
|
||||
!working_elements->Test(ei))
|
||||
!working_elements->Test(ei))
|
||||
return 0.0;
|
||||
|
||||
if (mesh[ei].IsDeleted())
|
||||
@ -1325,7 +1327,7 @@ double MeshOptimize3d :: SwapImproveEdge (
|
||||
return d_badness;
|
||||
}
|
||||
|
||||
void MeshOptimize3d :: SwapImprove (const BitArray * working_elements)
|
||||
void MeshOptimize3d :: SwapImprove (const TBitArray<ElementIndex> * working_elements)
|
||||
{
|
||||
static Timer t("MeshOptimize3d::SwapImprove"); RegionTimer reg(t);
|
||||
static Timer tloop("MeshOptimize3d::SwapImprove loop");
|
||||
@ -1463,7 +1465,7 @@ void MeshOptimize3d :: SwapImprove (const BitArray * working_elements)
|
||||
|
||||
|
||||
void MeshOptimize3d :: SwapImproveSurface (
|
||||
const BitArray * working_elements,
|
||||
const TBitArray<ElementIndex> * working_elements,
|
||||
const NgArray< idmap_type* > * idmaps)
|
||||
{
|
||||
NgArray< idmap_type* > locidmaps;
|
||||
|
@ -41,9 +41,9 @@ public:
|
||||
double SplitImprove2Element (ElementIndex ei, const Table<ElementIndex, PointIndex> & elements_of_point, bool check_only);
|
||||
|
||||
|
||||
double SwapImproveEdge (const BitArray * working_elements, Table<ElementIndex,PointIndex> & elementsonnode, INDEX_3_HASHTABLE<int> & faces, PointIndex pi1, PointIndex pi2, bool check_only=false);
|
||||
void SwapImprove (const BitArray * working_elements = NULL);
|
||||
void SwapImproveSurface (const BitArray * working_elements = NULL,
|
||||
double SwapImproveEdge (const TBitArray<ElementIndex> * working_elements, Table<ElementIndex,PointIndex> & elementsonnode, INDEX_3_HASHTABLE<int> & faces, PointIndex pi1, PointIndex pi2, bool check_only=false);
|
||||
void SwapImprove (const TBitArray<ElementIndex> * working_elements = NULL);
|
||||
void SwapImproveSurface (const TBitArray<ElementIndex> * working_elements = NULL,
|
||||
const NgArray< idmap_type* > * idmaps = NULL);
|
||||
void SwapImprove2 ();
|
||||
double SwapImprove2 (ElementIndex eli1, int face, Table<ElementIndex, PointIndex> & elementsonnode, DynamicTable<SurfaceElementIndex, PointIndex> & belementsonnode, bool check_only=false );
|
||||
|
@ -472,7 +472,7 @@ namespace netgen
|
||||
ElementIndex & operator= (const ElementIndex & ai) { i = ai.i; return *this; }
|
||||
ElementIndex & operator= (int ai) { i = ai; return *this; }
|
||||
|
||||
constexpr /* explicit */ operator int () const { return i; }
|
||||
constexpr /* explicit */ operator int () const { return i; }
|
||||
ElementIndex operator++ (int) { return ElementIndex(i++); }
|
||||
ElementIndex operator-- (int) { return ElementIndex(i--); }
|
||||
ElementIndex & operator++ () { ++i; return *this; }
|
||||
|
@ -218,7 +218,7 @@ namespace netgen
|
||||
Validate(mesh,bad_elements,pure_badness,
|
||||
((uselocalworsening) ? (0.8*(max_worsening-1.) + 1.) : (0.1*(max_worsening-1.) + 1.)),
|
||||
uselocalworsening); // -> larger working area
|
||||
BitArray working_elements(ne+1);
|
||||
TBitArray<ElementIndex> working_elements(ne+1);
|
||||
TBitArray<PointIndex> working_points(np);
|
||||
|
||||
GetWorkingArea(working_elements,working_points,mesh,bad_elements,numbadneighbours);
|
||||
|
Loading…
x
Reference in New Issue
Block a user