face refinement cases

This commit is contained in:
Joachim Schoeberl 2023-09-30 07:11:07 +02:00
parent e742dc59b3
commit 4ed8f04e1c
3 changed files with 62 additions and 7 deletions

View File

@ -491,23 +491,40 @@ HPREF_ELEMENT_TYPE ClassifyTet(HPRefElement & el, INDEX_2_HASHTABLE<int> & edges
type = HP_TET_2F_0E_1V;
break;
}
break;
}
case 1:
{
if (isedge4 && !ep1 && !cp2 && !cp4)
// *testout << "so far: 2F, 1E, sp = " << sp1 << sp2 << sp3 << sp4 << endl;
if (isedge4)
{
type = HP_TET_2F_1E_0VA;
break;
if (!ep1 && !cp2 && !cp4)
{
type = HP_TET_2F_1E_0VA;
break;
}
if (!sp1 && sp2 && sp3 && sp4)
{
type = HP_TET_2F_1E_3VA;
break;
}
if (sp1 && sp2 && sp3 && sp4)
{
type = HP_TET_2F_1E_4VA;
break;
}
}
if (isedge5 && !ep1 && !cp2 && !cp3)
{
type = HP_TET_2F_1E_0VB;
break;
}
break;
}
default:
;
*testout << "2F, 2E or more not implemented so far" << endl;
}
break;
}

View File

@ -3677,6 +3677,23 @@ HPRefStruct<HP_TET> reftet_1f_1ea_3v
};
// HP_TET_1F_1E_3V e4 (E23), V2, V3, V4
HPRefStruct<HP_TET> reftet_1f_1e_3v
{
HP_TET_1F_1E_3V,
{
El(HP_TET, { V1, E21, E31, E41 }),
El(HP_HEX7_1FA, { E34, E24, E42, E43, E31, E21, E41 }),
El(HP_PRISM_1FB_1EA_0V, { E32, E34, E31, E23, E24, E21 }),
El(HP_TET_1F_0E_1VA, { E41, V4, E42, E43 }),
El(HP_TET_1F_1E_1VB, { E21, V2, E23, E24 }),
El(HP_TET_1F_1E_1VA, { E31, V3, E34, E32 }),
}
};
HPRefStruct<HP_TET> reftet_1f_2eoo_3v
{
HP_TET_1F_2Eoo_3V,
@ -3825,6 +3842,24 @@ HPRefStruct<HP_TET> reftet_1f_2e_1v
// HP_TET_1F_2E_3V e4,e5 (E23,E24), V2, V3, V4
HPRefStruct<HP_TET> reftet_1f_2e_3v
{
HP_TET_1F_2E_3V,
{
El(HP_TET, { V1, E21, E31, E41 }),
El(HP_PRISM_1FA_0E_0V, { F234, E43, E34, E21, E41, E31 }),
El(HP_PRISM_1FB_1EA_0V, { E32, E34, E31, E23, F234, E21 }),
El(HP_PRISM_1FB_1EA_0V, { E24, F234, E21, E42, E43, E41 }),
El(HP_TET_1F_1E_1VA, { E21, V2, E23, F234 }),
El(HP_TET_1F_1E_1VB, { E21, V2, F234, E24 }),
El(HP_TET_1F_1E_1VA, { E31, V3, E34, E32 }),
El(HP_TET_1F_1E_1VB, { E41, V4, E42, E43 }),
}
};
/* ************************ 2 singular faces ******************** */

View File

@ -171,17 +171,20 @@ enum HPREF_ELEMENT_TYPE {
HP_TET_1F_1E_2VB, // 1 sing edge not in face (e12), sing v2,v4 NEW done
HP_TET_1F_1E_2VC, // 1 sing edge not in face (e12), sing v3,v4 NEW
HP_TET_1F_1EA_3V, // 1 sing edge out of face e12, sing v2, v3, v4 NEWNEW WIP, need Pyramid with 1 sing trig-face
HP_TET_1F_1E_3V, // 1 sing edge in face e23, sing v2, v3, v4 NEWNEW
HP_TET_1F_1E_3V, // 1 sing edge in face e23, sing v2, v3, v4 NEWNEW done
HP_TET_1F_2Eoo_3V, // 2e out of face: f234, e12, e13, v1,v2,v3 NEWNEW
HP_TET_1F_2E_0VA, // edge6 && fedge3 .. 1 in face, 1 not in face NEW done
HP_TET_1F_2E_0VB, // edge6 && fedge2 .. 1 in face, 1 not in face NEW done
HP_TET_1F_2E_1V, // e4,e5 (E23,E24), V2 NEW NEW WIP
HP_TET_1F_2E_3V, // e4,e5 (E23,E24), V2,V3,V4 NEW NEW
HP_TET_1F_2E_3V, // e4,e5 (E23,E24), V2,V3,V4 NEW NEW done
HP_TET_2F_0E_0V = 600, // 2 singular faces
HP_TET_2F_0E_1V, // 2 singular faces f234, f134, sing point V4 NEW
HP_TET_2F_1E_0VA, // 2 singular faces, sing edge e4 NEW done
HP_TET_2F_1E_0VB, // 2 singular faces, sing edge e5 NEW done
HP_TET_2F_1E_3VA, // 2 singular faces f234,f134, e23, v2,v3,v4 NEW3
HP_TET_2F_1E_4VA, // 2 singular faces f234,f134, e23, v2,v3,v4 NEW3
HP_TET_3F_0E_0V = 700, // 3 singular faces, no additional points or edges NEW done