[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Getfem-commits] (no subject)
From: |
Konstantinos Poulios |
Subject: |
[Getfem-commits] (no subject) |
Date: |
Mon, 11 Jun 2018 10:07:41 -0400 (EDT) |
branch: master
commit e9c45ffa7fbf92b5529e9a47ef25f3fc990c4796
Author: Konstantinos Poulios <address@hidden>
Date: Mon Jun 11 15:48:36 2018 +0200
Renaming of geotrans and fem types
---
doc/sphinx/source/project/femdesc.rst | 2 +-
interface/src/gf_mesh.cc | 2 +-
internal_tools/simplexification_refelt.cc | 2 +-
src/bgeot_convex_ref.cc | 40 ++++++++--------
src/bgeot_convex_ref_simplexified.cc | 10 ++--
src/bgeot_convex_structure.cc | 42 ++++++++--------
src/bgeot_geometric_trans.cc | 72 +++++++++++++++-------------
src/bgeot_mesh_structure.cc | 2 +-
src/bgeot_poly_composite.cc | 4 +-
src/getfem/bgeot_convex_ref.h | 17 +++----
src/getfem/bgeot_convex_structure.h | 15 ++++--
src/getfem/bgeot_geometric_trans.h | 28 ++++++-----
src/getfem/getfem_fem.h | 24 +++++-----
src/getfem_export.cc | 16 +++----
src/getfem_fem.cc | 79 ++++++++++++++++---------------
src/getfem_import.cc | 9 ++--
src/getfem_integration.cc | 8 ++--
src/getfem_integration_composite.cc | 2 +-
src/getfem_mesh.cc | 2 +-
src/getfem_mesh_im_level_set.cc | 2 +-
src/getfem_mesh_level_set.cc | 2 +-
src/getfem_regular_meshes.cc | 4 +-
22 files changed, 201 insertions(+), 183 deletions(-)
diff --git a/doc/sphinx/source/project/femdesc.rst
b/doc/sphinx/source/project/femdesc.rst
index 16bbcc2..5d1ad1d 100644
--- a/doc/sphinx/source/project/femdesc.rst
+++ b/doc/sphinx/source/project/femdesc.rst
@@ -46,7 +46,7 @@ elements:
description of the direct product of ``p1`` and ``p2``.
-.. c:function:: bgeot::prism_structure(dim_type d)
+.. c:function:: bgeot::prism_P1_structure(dim_type d)
description of a prism of dimension ``d``
diff --git a/interface/src/gf_mesh.cc b/interface/src/gf_mesh.cc
index a281935..727fd4f 100644
--- a/interface/src/gf_mesh.cc
+++ b/interface/src/gf_mesh.cc
@@ -133,7 +133,7 @@ pyramidal_mesh(getfem::mesh *pmesh, getfemint::mexargs_in
&in) {
std::vector<int> ipt(dim);
std::vector<getfem::base_node> pts(1 << (dim+1));
- bgeot::pgeometric_trans pgt = bgeot::pyramid_geotrans(1);
+ bgeot::pgeometric_trans pgt = bgeot::pyramid_QK_geotrans(1);
/* add the convexes */
for (size_type i=0; i < grid_nconvex; i++) {
diff --git a/internal_tools/simplexification_refelt.cc
b/internal_tools/simplexification_refelt.cc
index aed79c4..1873fb0 100644
--- a/internal_tools/simplexification_refelt.cc
+++ b/internal_tools/simplexification_refelt.cc
@@ -192,7 +192,7 @@ int main(int argc, char *argv[]) {
f << " }\n\n";
}
for (size_type n = 3; n < 7; ++n) {
- f << " if (cvs == prism_structure(" << n << ")) {\n";
+ f << " if (cvs == prism_P1_structure(" << n << ")) {\n";
f << " *tab = simplexified_prism_" << n << ";\n";
f << " return simplexified_prism_" << n << "_nb;\n";
f << " }\n\n";
diff --git a/src/bgeot_convex_ref.cc b/src/bgeot_convex_ref.cc
index 1b61e6c..cc3dc59 100644
--- a/src/bgeot_convex_ref.cc
+++ b/src/bgeot_convex_ref.cc
@@ -402,7 +402,7 @@ namespace bgeot {
/* Pyramidal element of reference. */
/* ******************************************************************** */
- class pyramid_of_ref_ : public convex_of_reference {
+ class pyramid_QK_of_ref_ : public convex_of_reference {
public :
scalar_type is_in_face(short_type f, const base_node& pt) const {
// return zero if pt is in the face of the convex
@@ -420,13 +420,13 @@ namespace bgeot {
return r;
}
- pyramid_of_ref_(dim_type k) : convex_of_reference(pyramid_structure(k), k
== 1) {
+ pyramid_QK_of_ref_(dim_type k) :
convex_of_reference(pyramid_QK_structure(k), k == 1) {
GMM_ASSERT1(k == 1 || k == 2,
"Sorry exist only in degree 1 or 2, not " << k);
convex<base_node>::points().resize(cvs->nb_points());
normals_.resize(cvs->nb_faces());
- if (k != 1) basic_convex_ref_ = pyramid_of_reference(1);
+ if (k != 1) basic_convex_ref_ = pyramid_QK_of_reference(1);
normals_[0] = { 0., 0., -1.};
normals_[1] = { 0.,-1., 1.};
@@ -465,14 +465,14 @@ namespace bgeot {
};
- DAL_SIMPLE_KEY(pyramid_reference_key_, dim_type);
+ DAL_SIMPLE_KEY(pyramid_QK_reference_key_, dim_type);
- pconvex_ref pyramid_of_reference(dim_type k) {
+ pconvex_ref pyramid_QK_of_reference(dim_type k) {
dal::pstatic_stored_object_key
- pk = std::make_shared<pyramid_reference_key_>(k);
+ pk = std::make_shared<pyramid_QK_reference_key_>(k);
dal::pstatic_stored_object o = dal::search_stored_object(pk);
if (o) return std::dynamic_pointer_cast<const convex_of_reference>(o);
- pconvex_ref p = std::make_shared<pyramid_of_ref_>(k);
+ pconvex_ref p = std::make_shared<pyramid_QK_of_ref_>(k);
dal::add_stored_object(pk, p, p->structure(), p->pspt(),
dal::PERMANENT_STATIC_OBJECT);
pconvex_ref p1 = basic_convex_ref(p);
@@ -485,17 +485,17 @@ namespace bgeot {
/* Incomplete quadratic pyramidal element of reference. */
/* ******************************************************************** */
- class pyramid2_incomplete_of_ref_ : public convex_of_reference {
+ class pyramid_Q2_incomplete_of_ref_ : public convex_of_reference {
public :
scalar_type is_in(const base_node& pt) const
{ return basic_convex_ref_->is_in(pt); }
scalar_type is_in_face(short_type f, const base_node& pt) const
{ return basic_convex_ref_->is_in_face(f, pt); }
- pyramid2_incomplete_of_ref_() :
convex_of_reference(pyramid2_incomplete_structure(), false) {
+ pyramid_Q2_incomplete_of_ref_() :
convex_of_reference(pyramid_Q2_incomplete_structure(), false) {
convex<base_node>::points().resize(cvs->nb_points());
normals_.resize(cvs->nb_faces());
- basic_convex_ref_ = pyramid_of_reference(1);
+ basic_convex_ref_ = pyramid_QK_of_reference(1);
normals_ = basic_convex_ref_->normals();
@@ -519,16 +519,16 @@ namespace bgeot {
};
- DAL_SIMPLE_KEY(pyramid2_incomplete_reference_key_, dim_type);
+ DAL_SIMPLE_KEY(pyramid_Q2_incomplete_reference_key_, dim_type);
- pconvex_ref pyramid2_incomplete_of_reference() {
+ pconvex_ref pyramid_Q2_incomplete_of_reference() {
dal::pstatic_stored_object_key
- pk = std::make_shared<pyramid2_incomplete_reference_key_>(0);
+ pk = std::make_shared<pyramid_Q2_incomplete_reference_key_>(0);
dal::pstatic_stored_object o = dal::search_stored_object(pk);
if (o)
return std::dynamic_pointer_cast<const convex_of_reference>(o);
else {
- pconvex_ref p = std::make_shared<pyramid2_incomplete_of_ref_>();
+ pconvex_ref p = std::make_shared<pyramid_Q2_incomplete_of_ref_>();
dal::add_stored_object(pk, p, p->structure(), p->pspt(),
dal::PERMANENT_STATIC_OBJECT);
pconvex_ref p1 = basic_convex_ref(p);
@@ -542,14 +542,14 @@ namespace bgeot {
/* Incomplete quadratic triangular prism element of reference. */
/* ******************************************************************** */
- class prism2_incomplete_of_ref_ : public convex_of_reference {
+ class prism_incomplete_P2_of_ref_ : public convex_of_reference {
public :
scalar_type is_in(const base_node& pt) const
{ return basic_convex_ref_->is_in(pt); }
scalar_type is_in_face(short_type f, const base_node& pt) const
{ return basic_convex_ref_->is_in_face(f, pt); }
- prism2_incomplete_of_ref_() :
convex_of_reference(prism2_incomplete_structure(), false) {
+ prism_incomplete_P2_of_ref_() :
convex_of_reference(prism_incomplete_P2_structure(), false) {
convex<base_node>::points().resize(cvs->nb_points());
normals_.resize(cvs->nb_faces());
basic_convex_ref_ = prism_of_reference(3);
@@ -578,16 +578,16 @@ namespace bgeot {
};
- DAL_SIMPLE_KEY(prism2_incomplete_reference_key_, dim_type);
+ DAL_SIMPLE_KEY(prism_incomplete_P2_reference_key_, dim_type);
- pconvex_ref prism2_incomplete_of_reference() {
+ pconvex_ref prism_incomplete_P2_of_reference() {
dal::pstatic_stored_object_key
- pk = std::make_shared<prism2_incomplete_reference_key_>(0);
+ pk = std::make_shared<prism_incomplete_P2_reference_key_>(0);
dal::pstatic_stored_object o = dal::search_stored_object(pk);
if (o)
return std::dynamic_pointer_cast<const convex_of_reference>(o);
else {
- pconvex_ref p = std::make_shared<prism2_incomplete_of_ref_>();
+ pconvex_ref p = std::make_shared<prism_incomplete_P2_of_ref_>();
dal::add_stored_object(pk, p, p->structure(), p->pspt(),
dal::PERMANENT_STATIC_OBJECT);
pconvex_ref p1 = basic_convex_ref(p);
diff --git a/src/bgeot_convex_ref_simplexified.cc
b/src/bgeot_convex_ref_simplexified.cc
index 325b893..5a8b175 100644
--- a/src/bgeot_convex_ref_simplexified.cc
+++ b/src/bgeot_convex_ref_simplexified.cc
@@ -285,27 +285,27 @@ namespace bgeot {
return simplexified_parallelepiped_6_nb;
}
- if (cvs == prism_structure(3)) {
+ if (cvs == prism_P1_structure(3)) {
*tab = simplexified_prism_3;
return simplexified_prism_3_nb;
}
- if (cvs == prism_structure(4)) {
+ if (cvs == prism_P1_structure(4)) {
*tab = simplexified_prism_4;
return simplexified_prism_4_nb;
}
- if (cvs == prism_structure(5)) {
+ if (cvs == prism_P1_structure(5)) {
*tab = simplexified_prism_5;
return simplexified_prism_5_nb;
}
- if (cvs == prism_structure(6)) {
+ if (cvs == prism_P1_structure(6)) {
*tab = simplexified_prism_6;
return simplexified_prism_6_nb;
}
- if (cvs == pyramid_structure(1)) {
+ if (cvs == pyramid_QK_structure(1)) {
*tab = simplexified_pyramid;
return simplexified_pyramid_nb;
}
diff --git a/src/bgeot_convex_structure.cc b/src/bgeot_convex_structure.cc
index a419e44..98b7417 100644
--- a/src/bgeot_convex_structure.cc
+++ b/src/bgeot_convex_structure.cc
@@ -465,22 +465,22 @@ namespace bgeot {
/* Pyramidal 3D structure for k=1 or 2. */
/* ******************************************************************** */
- struct pyramid_structure_ : public convex_structure {
- friend pconvex_structure pyramid_structure(dim_type k);
+ struct pyramid_QK_structure_ : public convex_structure {
+ friend pconvex_structure pyramid_QK_structure(dim_type k);
};
- DAL_SIMPLE_KEY(pyramid_structure_key_, dim_type);
+ DAL_SIMPLE_KEY(pyramid_QK_structure_key_, dim_type);
- pconvex_structure pyramid_structure(dim_type k) {
+ pconvex_structure pyramid_QK_structure(dim_type k) {
GMM_ASSERT1(k == 1 || k == 2, "Sorry, pyramidal elements implemented "
"only for degree one or two.");
dal::pstatic_stored_object_key
- pcsk = std::make_shared<pyramid_structure_key_>(k);
+ pcsk = std::make_shared<pyramid_QK_structure_key_>(k);
dal::pstatic_stored_object o = dal::search_stored_object(pcsk);
if (o)
return std::dynamic_pointer_cast<const convex_structure>(o);
- auto p = std::make_shared<pyramid_structure_>();
+ auto p = std::make_shared<pyramid_QK_structure_>();
pconvex_structure pcvs(p);
p->Nc = 3;
@@ -522,7 +522,7 @@ namespace bgeot {
} else {
p->nbpt = 14;
p->nbf = 5;
- p->basic_pcvs = pyramid_structure(1);
+ p->basic_pcvs = pyramid_QK_structure(1);
// 13
// / |
// 11--12
@@ -562,20 +562,20 @@ namespace bgeot {
/* Incomplete quadratic pyramidal 3D structure. */
/* ******************************************************************** */
- struct pyramid2_incomplete_structure_ : public convex_structure {
- friend pconvex_structure pyramid2_incomplete_structure();
+ struct pyramid_Q2_incomplete_structure_ : public convex_structure {
+ friend pconvex_structure pyramid_Q2_incomplete_structure();
};
- DAL_SIMPLE_KEY(pyramid2_incomplete_structure_key_, dim_type);
+ DAL_SIMPLE_KEY(pyramid_Q2_incomplete_structure_key_, dim_type);
- pconvex_structure pyramid2_incomplete_structure() {
+ pconvex_structure pyramid_Q2_incomplete_structure() {
dal::pstatic_stored_object_key
- pcsk = std::make_shared<pyramid2_incomplete_structure_key_>(0);
+ pcsk = std::make_shared<pyramid_Q2_incomplete_structure_key_>(0);
dal::pstatic_stored_object o = dal::search_stored_object(pcsk);
if (o)
return std::dynamic_pointer_cast<const convex_structure>(o);
- auto p = std::make_shared<pyramid2_incomplete_structure_>();
+ auto p = std::make_shared<pyramid_Q2_incomplete_structure_>();
pconvex_structure pcvs(p);
p->Nc = 3;
@@ -583,7 +583,7 @@ namespace bgeot {
p->nbpt = 13;
p->nbf = 5;
- p->basic_pcvs = pyramid_structure(1);
+ p->basic_pcvs = pyramid_QK_structure(1);
// 12
// / |
// 10--11
@@ -622,20 +622,20 @@ namespace bgeot {
/* Incomplete quadratic triangular prism 3D structure. */
/* ******************************************************************** */
- struct prism2_incomplete_structure_ : public convex_structure {
- friend pconvex_structure prism2_incomplete_structure();
+ struct prism_incomplete_P2_structure_ : public convex_structure {
+ friend pconvex_structure prism_incomplete_P2_structure();
};
- DAL_SIMPLE_KEY(prism2_incomplete_structure_key_, dim_type);
+ DAL_SIMPLE_KEY(prism_incomplete_P2_structure_key_, dim_type);
- pconvex_structure prism2_incomplete_structure() {
+ pconvex_structure prism_incomplete_P2_structure() {
dal::pstatic_stored_object_key
- pcsk = std::make_shared<prism2_incomplete_structure_key_>(0);
+ pcsk = std::make_shared<prism_incomplete_P2_structure_key_>(0);
dal::pstatic_stored_object o = dal::search_stored_object(pcsk);
if (o)
return std::dynamic_pointer_cast<const convex_structure>(o);
- auto p = std::make_shared<prism2_incomplete_structure_>();
+ auto p = std::make_shared<prism_incomplete_P2_structure_>();
pconvex_structure pcvs(p);
p->Nc = 3;
@@ -643,7 +643,7 @@ namespace bgeot {
p->nbpt = 15;
p->nbf = 5;
- p->basic_pcvs = prism_structure(3);
+ p->basic_pcvs = prism_P1_structure(3);
// 14
// /|`
// 12 | 13
diff --git a/src/bgeot_geometric_trans.cc b/src/bgeot_geometric_trans.cc
index e260003..9efe400 100644
--- a/src/bgeot_geometric_trans.cc
+++ b/src/bgeot_geometric_trans.cc
@@ -763,8 +763,9 @@ namespace bgeot {
return geometric_trans_descriptor(name.str());
}
- static pgeometric_trans prism_gt(gt_param_list ¶ms,
- std::vector<dal::pstatic_stored_object> &) {
+ static pgeometric_trans
+ prism_pk_gt(gt_param_list ¶ms,
+ std::vector<dal::pstatic_stored_object> &) {
GMM_ASSERT1(params.size() == 2, "Bad number of parameters : "
<< params.size() << " should be 2.");
GMM_ASSERT1(params[0].type() == 0 && params[1].type() == 0,
@@ -780,8 +781,9 @@ namespace bgeot {
return geometric_trans_descriptor(name.str());
}
- static pgeometric_trans linear_qk(gt_param_list ¶ms,
- std::vector<dal::pstatic_stored_object> &) {
+ static pgeometric_trans
+ linear_qk(gt_param_list ¶ms,
+ std::vector<dal::pstatic_stored_object> &) {
GMM_ASSERT1(params.size() == 1, "Bad number of parameters : "
<< params.size() << " should be 1.");
GMM_ASSERT1(params[0].type() == 0, "Bad type of parameters");
@@ -874,9 +876,9 @@ namespace bgeot {
/* Pyramidal geometric transformation of order k=1 or 2. */
/* ******************************************************************** */
- struct pyramid_trans_: public fraction_geometric_trans {
- pyramid_trans_(short_type k) {
- cvr = pyramid_of_reference(k);
+ struct pyramid_QK_trans_: public fraction_geometric_trans {
+ pyramid_QK_trans_(short_type k) {
+ cvr = pyramid_QK_of_reference(k);
size_type R = cvr->structure()->nb_points();
is_lin = false;
complexity_ = k;
@@ -921,18 +923,18 @@ namespace bgeot {
};
static pgeometric_trans
- pyramid_gt(gt_param_list& params,
- std::vector<dal::pstatic_stored_object> &deps) {
+ pyramid_QK_gt(gt_param_list& params,
+ std::vector<dal::pstatic_stored_object> &deps) {
GMM_ASSERT1(params.size() == 1, "Bad number of parameters : "
<< params.size() << " should be 1.");
GMM_ASSERT1(params[0].type() == 0, "Bad type of parameters");
int k = int(::floor(params[0].num() + 0.01));
- deps.push_back(pyramid_of_reference(dim_type(k)));
- return std::make_shared<pyramid_trans_>(dim_type(k));
+ deps.push_back(pyramid_QK_of_reference(dim_type(k)));
+ return std::make_shared<pyramid_QK_trans_>(dim_type(k));
}
- pgeometric_trans pyramid_geotrans(short_type k) {
+ pgeometric_trans pyramid_QK_geotrans(short_type k) {
static short_type k_ = -1;
static pgeometric_trans pgt = 0;
if (k != k_) {
@@ -947,9 +949,9 @@ namespace bgeot {
/* Incomplete quadratic pyramidal geometric transformation. */
/* ******************************************************************** */
- struct pyramid2_incomplete_trans_: public fraction_geometric_trans {
- pyramid2_incomplete_trans_() {
- cvr = pyramid2_incomplete_of_reference();
+ struct pyramid_Q2_incomplete_trans_: public fraction_geometric_trans {
+ pyramid_Q2_incomplete_trans_() {
+ cvr = pyramid_Q2_incomplete_of_reference();
size_type R = cvr->structure()->nb_points();
is_lin = false;
complexity_ = 2;
@@ -994,19 +996,19 @@ namespace bgeot {
};
static pgeometric_trans
- pyramid2_incomplete_gt(gt_param_list& params,
- std::vector<dal::pstatic_stored_object> &deps) {
+ pyramid_Q2_incomplete_gt(gt_param_list& params,
+ std::vector<dal::pstatic_stored_object> &deps) {
GMM_ASSERT1(params.size() == 0, "Bad number of parameters : "
<< params.size() << " should be 0.");
- deps.push_back(pyramid2_incomplete_of_reference());
- return std::make_shared<pyramid2_incomplete_trans_>();
+ deps.push_back(pyramid_Q2_incomplete_of_reference());
+ return std::make_shared<pyramid_Q2_incomplete_trans_>();
}
- pgeometric_trans pyramid2_incomplete_geotrans() {
+ pgeometric_trans pyramid_Q2_incomplete_geotrans() {
static pgeometric_trans pgt = 0;
if (!pgt)
- pgt = geometric_trans_descriptor("GT_PYRAMID2_INCOMPLETE");
+ pgt = geometric_trans_descriptor("GT_PYRAMID_Q2_INCOMPLETE");
return pgt;
}
@@ -1014,9 +1016,9 @@ namespace bgeot {
/* Incomplete quadratic prism geometric transformation. */
/* ******************************************************************** */
- struct prism2_incomplete_trans_: public poly_geometric_trans {
- prism2_incomplete_trans_() {
- cvr = prism2_incomplete_of_reference();
+ struct prism_incomplete_P2_trans_: public poly_geometric_trans {
+ prism_incomplete_P2_trans_() {
+ cvr = prism_incomplete_P2_of_reference();
size_type R = cvr->structure()->nb_points();
is_lin = false;
complexity_ = 2;
@@ -1048,19 +1050,19 @@ namespace bgeot {
};
static pgeometric_trans
- prism2_incomplete_gt(gt_param_list& params,
- std::vector<dal::pstatic_stored_object> &deps) {
+ prism_incomplete_P2_gt(gt_param_list& params,
+ std::vector<dal::pstatic_stored_object> &deps) {
GMM_ASSERT1(params.size() == 0, "Bad number of parameters : "
<< params.size() << " should be 0.");
- deps.push_back(prism2_incomplete_of_reference());
- return std::make_shared<prism2_incomplete_trans_>();
+ deps.push_back(prism_incomplete_P2_of_reference());
+ return std::make_shared<prism_incomplete_P2_trans_>();
}
- pgeometric_trans prism2_incomplete_geotrans() {
+ pgeometric_trans prism_incomplete_P2_geotrans() {
static pgeometric_trans pgt = 0;
if (!pgt)
- pgt = geometric_trans_descriptor("GT_PRISM2_INCOMPLETE");
+ pgt = geometric_trans_descriptor("GT_PRISM_INCOMPLETE_P2");
return pgt;
}
@@ -1137,14 +1139,16 @@ namespace bgeot {
dal::naming_system<geometric_trans>("GT") {
add_suffix("PK", PK_gt);
add_suffix("QK", QK_gt);
- add_suffix("PRISM", prism_gt);
+ add_suffix("PRISM_PK", prism_pk_gt);
+ add_suffix("PRISM", prism_pk_gt);
add_suffix("PRODUCT", product_gt);
add_suffix("LINEAR_PRODUCT", linear_product_gt);
add_suffix("LINEAR_QK", linear_qk);
add_suffix("Q2_INCOMPLETE", Q2_incomplete_gt);
- add_suffix("PYRAMID", pyramid_gt);
- add_suffix("PYRAMID2_INCOMPLETE", pyramid2_incomplete_gt);
- add_suffix("PRISM2_INCOMPLETE", prism2_incomplete_gt);
+ add_suffix("PYRAMID_QK", pyramid_QK_gt);
+ add_suffix("PYRAMID", pyramid_QK_gt);
+ add_suffix("PYRAMID_Q2_INCOMPLETE", pyramid_Q2_incomplete_gt);
+ add_suffix("PRISM_INCOMPLETE_P2", prism_incomplete_P2_gt);
}
};
diff --git a/src/bgeot_mesh_structure.cc b/src/bgeot_mesh_structure.cc
index 721c3b4..500495a 100644
--- a/src/bgeot_mesh_structure.cc
+++ b/src/bgeot_mesh_structure.cc
@@ -358,7 +358,7 @@ namespace bgeot {
el.add(edge_list_elt(points_of_convex[k],
points_of_convex[k | (1 << j)], ncv));
}
- else if (nbp == 2 * n && cvs == prism_structure(n)) {
+ else if (nbp == 2 * n && cvs == prism_P1_structure(n)) {
for (dim_type k = 0; k < n - 1; ++k)
for (dim_type l = dim_type(k+1); l < n; ++l) {
el.add(edge_list_elt(points_of_convex[k],
diff --git a/src/bgeot_poly_composite.cc b/src/bgeot_poly_composite.cc
index 888788e..cf96621 100644
--- a/src/bgeot_poly_composite.cc
+++ b/src/bgeot_poly_composite.cc
@@ -384,8 +384,8 @@ namespace bgeot {
} else if (nbp == (size_type(1) << n) &&
basic_structure(cvs) == parallelepiped_structure(n)) {
structured_mesh_for_parallelepiped_(cvs,opt_gt,opt_gt_pts,k,pm);
- } else if (nbp == size_type(2 * n) &&
- basic_structure(cvs) == prism_structure(n)) {
+ } else if (nbp == size_type(2 * n) &&
+ basic_structure(cvs) == prism_P1_structure(n)) {
GMM_ASSERT1(false, "Sorry, structured_mesh not implemented for
prisms.");
} else {
GMM_ASSERT1(false, "This element is not taken into account. Contact
us");
diff --git a/src/getfem/bgeot_convex_ref.h b/src/getfem/bgeot_convex_ref.h
index b69cebe..b3ec6ef 100644
--- a/src/getfem/bgeot_convex_ref.h
+++ b/src/getfem/bgeot_convex_ref.h
@@ -143,18 +143,19 @@ namespace bgeot {
pconvex_ref simplex_of_reference(dim_type nc, short_type k = 1);
/** parallelepiped of reference of dimension nc (and degree 1) */
pconvex_ref parallelepiped_of_reference(dim_type nc, dim_type k = 1);
- /** prism of reference of dimension nc (and degree 1) */
- pconvex_ref prism_of_reference(dim_type nc);
/** incomplete Q2 quadrilateral/hexahedral of reference of dimension
- d = 2 or 3
- */
+ d = 2 or 3 */
pconvex_ref Q2_incomplete_of_reference(dim_type d);
+ /** prism of reference of dimension nc (and degree 1) */
+ pconvex_ref prism_of_reference(dim_type nc);
+ /** incomplete quadratic prism element of reference (15-node) */
+ pconvex_ref prism_incomplete_P2_of_reference();
/** pyramidal element of reference of degree k (k = 1 or 2 only) */
- pconvex_ref pyramid_of_reference(dim_type k);
+ pconvex_ref pyramid_QK_of_reference(dim_type k);
+ IS_DEPRECATED pconvex_ref inline
+ pyramid_of_reference(dim_type k) { return pyramid_QK_of_reference(k); }
/** incomplete quadratic pyramidal element of reference (13-node) */
- pconvex_ref pyramid2_incomplete_of_reference();
- /** incomplete quadratic prism element of reference (15-node) */
- pconvex_ref prism2_incomplete_of_reference();
+ pconvex_ref pyramid_Q2_incomplete_of_reference();
/** tensorial product of two convex ref.
in order to ensure unicity, it is required the a->dim() >= b->dim() */
pconvex_ref convex_ref_product(pconvex_ref a, pconvex_ref b);
diff --git a/src/getfem/bgeot_convex_structure.h
b/src/getfem/bgeot_convex_structure.h
index c2b0543..7632d18 100644
--- a/src/getfem/bgeot_convex_structure.h
+++ b/src/getfem/bgeot_convex_structure.h
@@ -189,16 +189,21 @@ namespace bgeot {
/** Give a pointer on the structures of a prism of dimension d.
* i.e. the direct product of a simplex of dimension d-1 and a segment.
*/
- inline pconvex_structure prism_structure(dim_type nc) {
+ inline pconvex_structure prism_P1_structure(dim_type nc) {
return convex_product_structure(simplex_structure(dim_type(nc-1)),
simplex_structure(1));
}
+ /// Give a pointer on the 3D quadratic incomplete prism structure.
+ pconvex_structure prism_incomplete_P2_structure();
/// Give a pointer on the 3D pyramid structure for a degree k = 1 or 2.
- pconvex_structure pyramid_structure(short_type k);
+ pconvex_structure pyramid_QK_structure(short_type k);
/// Give a pointer on the 3D quadratic incomplete pyramid structure.
- pconvex_structure pyramid2_incomplete_structure();
- /// Give a pointer on the 3D quadratic incomplete prism structure.
- pconvex_structure prism2_incomplete_structure();
+ pconvex_structure pyramid_Q2_incomplete_structure();
+
+ IS_DEPRECATED inline pconvex_structure
+ prism_structure(dim_type nc) { return prism_P1_structure(nc); }
+ IS_DEPRECATED inline pconvex_structure
+ pyramid_structure(short_type k) { return pyramid_QK_structure(k); }
/** Simplex structure with the Lagrange grid of degree k.
diff --git a/src/getfem/bgeot_geometric_trans.h
b/src/getfem/bgeot_geometric_trans.h
index a8c2998..a002a2e 100644
--- a/src/getfem/bgeot_geometric_trans.h
+++ b/src/getfem/bgeot_geometric_trans.h
@@ -221,9 +221,11 @@ namespace bgeot {
pgeometric_trans APIDECL linear_product_geotrans(pgeometric_trans pg1,
pgeometric_trans pg2);
pgeometric_trans APIDECL Q2_incomplete_geotrans(dim_type nc);
- pgeometric_trans APIDECL pyramid_geotrans(short_type k);
- pgeometric_trans APIDECL pyramid2_incomplete_geotrans();
- pgeometric_trans APIDECL prism2_incomplete_geotrans();
+ pgeometric_trans APIDECL prism_incomplete_P2_geotrans();
+ pgeometric_trans APIDECL pyramid_QK_geotrans(short_type k);
+ IS_DEPRECATED inline pgeometric_trans APIDECL
+ pyramid_geotrans(short_type k) { return pyramid_QK_geotrans(k); }
+ pgeometric_trans APIDECL pyramid_Q2_incomplete_geotrans();
/**
Get the geometric transformation from its string name.
@@ -236,16 +238,16 @@ namespace bgeot {
List of possible names:
GT_PK(N,K) : Transformation on simplexes, dim N, degree K
- GT_QK(N,K) : Transformation on parallelepipeds, dim N, degree K
- GT_PRISM(N,K) : Transformation on prisms, dim N, degree K
- GT_PYRAMID(K) : Transformation on pyramids, dim 3, degree K=0,1,2
- GT_Q2_INCOMPLETE(N) : Q2 incomplete transformation in dim N=2 or 3.
- GT_PYRAMID2_INCOMPLETE : incomplete quadratic pyramid transformation in
- dim 3
- GT_PRISM2_INCOMPLETE : incomplete quadratic prism transformation in
- dim 3
- GT_PRODUCT(a,b) : tensorial product of two transformations
- GT_LINEAR_PRODUCT(a,b) : Linear tensorial product of two transformations
+ GT_QK(N,K) : Transformation on parallelepipeds, dim N, degree K
+ GT_PRISM(N,K) : Transformation on prisms, dim N, degree K
+ GT_PYRAMID_QK(K) : Transformation on pyramids, dim 3, degree K=0,1,2
+ GT_Q2_INCOMPLETE(N) : Q2 incomplete transformation in dim N=2 or 3.
+ GT_PYRAMID_Q2_INCOMPLETE : incomplete quadratic pyramid transformation
+ in dim 3
+ GT_PRISM_INCOMPLETE_P2 : incomplete quadratic prism transformation in
+ dim 3
+ GT_PRODUCT(a,b) : tensorial product of two transformations
+ GT_LINEAR_PRODUCT(a,b) : Linear tensorial product of two transformations
GT_LINEAR_QK(N) : shortcut for GT_LINEAR_PRODUCT(GT_LINEAR_QK(N-1),
GT_PK(1,1))
*/
diff --git a/src/getfem/getfem_fem.h b/src/getfem/getfem_fem.h
index 6af191f..9fa0042 100644
--- a/src/getfem/getfem_fem.h
+++ b/src/getfem/getfem_fem.h
@@ -50,13 +50,18 @@
element QK on a parallelepiped.
- "FEM_Q2_INCOMPLETE(N)" : incomplete Q2 elements with 8 and 20 dof
- (serendipity Quad 8 and Hexa 20 elements)
+ (serendipity Quad 8 and Hexa 20 elements)
- - "FEM_PK_PRISM(N,K)" : classical Lagrange element PK on a prism.
+ - "FEM_PRISM_PK(N,K)" : classical Lagrange element PK on a prism.
- - "FEM_PK_PRISM_DISCONTINUOUS(N,K,alpha)" : classical discontinuous
+ - "FEM_PRISM_PK_DISCONTINUOUS(N,K,alpha)" : classical discontinuous
Lagrange element PK on a prism.
+ - "FEM_PRISM_INCOMPLETE_P2" : Incomplete Lagrange element on a
+ quadratic 3D prism (serendipity, 15-node wedge element). Can be connected
+ toa standard P2 Lagrange on its triangular faces and a Q2_INCOMPLETE
+ Lagrange element on its quadrangular faces.
+
- "FEM_PK_WITH_CUBIC_BUBBLE(N,K)" : classical Lagrange element PK
on a simplex with an additional volumic bubble function.
@@ -92,7 +97,7 @@
- "FEM_QK_HIERARCHICAL(N,K)" : QK element with a hierarchical basis.
- - "FEM_PK_PRISM_HIERARCHICAL(N,K)" : PK element on a prism with a
+ - "FEM_PRISM_PK_HIERARCHICAL(N,K)" : PK element on a prism with a
hierarchical basis.
- "FEM_STRUCTURED_COMPOSITE(FEM, K)" : Composite fem on a grid with
@@ -105,24 +110,19 @@
element with S subdivisions and a hierarchical basis on both degree
and subdivision.
- - "FEM_PYRAMID_LAGRANGE(K)" : Lagrange element on a 3D pyramid of degree
+ - "FEM_PYRAMID_QK(K)" : Lagrange element on a 3D pyramid of degree
K=0, 1 or 2. Can be connected to a standard P1/P2 Lagrange element on its
triangular faces and a standard Q1/Q2 Lagrange element on its quadrangular
face.
- - "FEM_PYRAMID_DISCONTINUOUS_LAGRANGE(K)" : Discontinuous Lagrange element
+ - "FEM_PYRAMID_QK_DISCONTINUOUS(K)" : Discontinuous Lagrange element
on a 3D pyramid of degree K = 0, 1 or 2.
- - "FEM_PYRAMID2_INCOMPLETE_LAGRANGE" : Incomplete Lagrange element on a
+ - "FEM_PYRAMID_Q2_INCOMPLETE" : Incomplete Lagrange element on a
quadratic 3D pyramid (serendipity, 13-node element). Can be connected to
a standard P2 Lagrange element on its triangular faces and a Q2_INCOMPLETE
Lagrange element on its quadrangular face.
- - "FEM_PRISM2_INCOMPLETE_LAGRANGE" : Incomplete Lagrange element on a
- quadratic 3D prism (serendipity, 15-node wedge element). Can be connected
- toa standard P2 Lagrange on its triangular faces and a Q2_INCOMPLETE
- Lagrange element on its quadrangular faces.
-
*/
#ifndef GETFEM_FEM_H__
diff --git a/src/getfem_export.cc b/src/getfem_export.cc
index ef21e68..855dac0 100644
--- a/src/getfem_export.cc
+++ b/src/getfem_export.cc
@@ -211,10 +211,10 @@ namespace getfem
pf = fem_descriptor("FEM_Q2_INCOMPLETE(2)");
else if (pgt == bgeot::geometric_trans_descriptor("GT_Q2_INCOMPLETE(3)"))
pf = fem_descriptor("FEM_Q2_INCOMPLETE(3)");
- else if (pgt ==
bgeot::geometric_trans_descriptor("GT_PYRAMID2_INCOMPLETE"))
- pf = fem_descriptor("FEM_PYRAMID2_INCOMPLETE_LAGRANGE");
- else if (pgt ==
bgeot::geometric_trans_descriptor("GT_PRISM2_INCOMPLETE"))
- pf = fem_descriptor("FEM_PRISM2_INCOMPLETE_LAGRANGE");
+ else if (pgt ==
bgeot::geometric_trans_descriptor("GT_PYRAMID_Q2_INCOMPLETE"))
+ pf = fem_descriptor("FEM_PYRAMID_Q2_INCOMPLETE");
+ else if (pgt ==
bgeot::geometric_trans_descriptor("GT_PRISM_INCOMPLETE_P2"))
+ pf = fem_descriptor("FEM_PRISM_INCOMPLETE_P2");
else
pf = getfem::classical_fem(pgt, pgt->complexity() > 1 ? 2 : 1);
pmf->set_finite_element(cv, pf);
@@ -236,10 +236,10 @@ namespace getfem
if (pf == fem_descriptor("FEM_Q2_INCOMPLETE(2)") ||
pf == fem_descriptor("FEM_Q2_INCOMPLETE(3)") ||
- pf == fem_descriptor("FEM_PYRAMID2_INCOMPLETE_LAGRANGE") ||
- pf ==
fem_descriptor("FEM_PYRAMID2_INCOMPLETE_DISCONTINUOUS_LAGRANGE") ||
- pf == fem_descriptor("FEM_PRISM2_INCOMPLETE_LAGRANGE") ||
- pf == fem_descriptor("FEM_PRISM2_INCOMPLETE_DISCONTINUOUS_LAGRANGE"))
+ pf == fem_descriptor("FEM_PYRAMID_Q2_INCOMPLETE") ||
+ pf == fem_descriptor("FEM_PYRAMID_Q2_INCOMPLETE_DISCONTINUOUS") ||
+ pf == fem_descriptor("FEM_PRISM_INCOMPLETE_P2") ||
+ pf == fem_descriptor("FEM_PRISM_INCOMPLETE_P2_DISCONTINUOUS"))
pmf->set_finite_element(cv, pf);
else {
bool discontinuous = false;
diff --git a/src/getfem_fem.cc b/src/getfem_fem.cc
index 772bc9b..9c883ed 100644
--- a/src/getfem_fem.cc
+++ b/src/getfem_fem.cc
@@ -961,7 +961,7 @@ namespace getfem {
return fem_descriptor(name.str());
}
- static pfem PK_prism_hierarch_fem(fem_param_list ¶ms,
+ static pfem prism_PK_hierarch_fem(fem_param_list ¶ms,
std::vector<dal::pstatic_stored_object> &) {
GMM_ASSERT1(params.size() == 2, "Bad number of parameters : "
<< params.size() << " should be 2.");
@@ -1030,8 +1030,8 @@ namespace getfem {
/* prims fems. */
/* ******************************************************************** */
- static pfem PK_prism_fem(fem_param_list ¶ms,
- std::vector<dal::pstatic_stored_object> &) {
+ static pfem prism_PK_fem(fem_param_list ¶ms,
+ std::vector<dal::pstatic_stored_object> &) {
GMM_ASSERT1(params.size() == 2, "Bad number of parameters : "
<< params.size() << " should be 2.");
GMM_ASSERT1(params[0].type() == 0 && params[1].type() == 0,
@@ -1051,7 +1051,7 @@ namespace getfem {
}
static pfem
- PK_prism_discontinuous_fem(fem_param_list ¶ms,
+ prism_PK_discontinuous_fem(fem_param_list ¶ms,
std::vector<dal::pstatic_stored_object> &) {
GMM_ASSERT1(params.size() == 2 || params.size() == 3,
"Bad number of parameters : "
@@ -1262,9 +1262,9 @@ namespace getfem {
// | |
// 0---1---2
- static pfem build_pyramid_pk_fem(short_type k, bool disc) {
+ static pfem build_pyramid_QK_fem(short_type k, bool disc) {
auto p = std::make_shared<fem<base_rational_fraction>>();
- p->mref_convex() = bgeot::pyramid_of_reference(1);
+ p->mref_convex() = bgeot::pyramid_QK_of_reference(1);
p->dim() = 3;
p->is_standard() = p->is_equivalent() = true;
p->is_polynomial() = false;
@@ -1344,7 +1344,7 @@ namespace getfem {
}
- static pfem pyramid_pk_fem
+ static pfem pyramid_QK_fem
(fem_param_list ¶ms, std::vector<dal::pstatic_stored_object> &deps) {
GMM_ASSERT1(params.size() <= 1, "Bad number of parameters");
short_type k = 2;
@@ -1352,13 +1352,13 @@ namespace getfem {
GMM_ASSERT1(params[0].type() == 0, "Bad type of parameters");
k = dim_type(::floor(params[0].num() + 0.01));
}
- pfem p = build_pyramid_pk_fem(k, false);
+ pfem p = build_pyramid_QK_fem(k, false);
deps.push_back(p->ref_convex(0));
deps.push_back(p->node_tab(0));
return p;
}
- static pfem pyramid_disc_pk_fem
+ static pfem pyramid_QK_disc_fem
(fem_param_list ¶ms, std::vector<dal::pstatic_stored_object> &deps) {
GMM_ASSERT1(params.size() <= 1, "Bad number of parameters");
short_type k = 2;
@@ -1366,7 +1366,7 @@ namespace getfem {
GMM_ASSERT1(params[0].type() == 0, "Bad type of parameters");
k = dim_type(::floor(params[0].num() + 0.01));
}
- pfem p = build_pyramid_pk_fem(k, true);
+ pfem p = build_pyramid_QK_fem(k, true);
deps.push_back(p->ref_convex(0));
deps.push_back(p->node_tab(0));
return p;
@@ -1391,9 +1391,9 @@ namespace getfem {
// | |
// 0---1---2
- static pfem build_pyramid2_incomplete_fem(bool disc) {
+ static pfem build_pyramid_Q2_incomplete_fem(bool disc) {
auto p = std::make_shared<fem<base_rational_fraction>>();
- p->mref_convex() = bgeot::pyramid_of_reference(1);
+ p->mref_convex() = bgeot::pyramid_QK_of_reference(1);
p->dim() = 3;
p->is_standard() = p->is_equivalent() = true;
p->is_polynomial() = false;
@@ -1457,19 +1457,19 @@ namespace getfem {
}
- static pfem pyramid2_incomplete_fem
+ static pfem pyramid_Q2_incomplete_fem
(fem_param_list ¶ms, std::vector<dal::pstatic_stored_object> &deps) {
GMM_ASSERT1(params.size() == 0, "Bad number of parameters");
- pfem p = build_pyramid2_incomplete_fem(false);
+ pfem p = build_pyramid_Q2_incomplete_fem(false);
deps.push_back(p->ref_convex(0));
deps.push_back(p->node_tab(0));
return p;
}
- static pfem pyramid2_incomplete_disc_fem
+ static pfem pyramid_Q2_incomplete_disc_fem
(fem_param_list ¶ms, std::vector<dal::pstatic_stored_object> &deps) {
GMM_ASSERT1(params.size() <= 1, "Bad number of parameters");
- pfem p = build_pyramid2_incomplete_fem(true);
+ pfem p = build_pyramid_Q2_incomplete_fem(true);
deps.push_back(p->ref_convex(0));
deps.push_back(p->node_tab(0));
return p;
@@ -1493,7 +1493,7 @@ namespace getfem {
// |/ `|
// 0---1---2
- static pfem build_prism2_incomplete_fem(bool disc) {
+ static pfem build_prism_incomplete_P2_fem(bool disc) {
auto p = std::make_shared<fem<base_rational_fraction>>();
p->mref_convex() = bgeot::prism_of_reference(3);
p->dim() = 3;
@@ -1547,19 +1547,19 @@ namespace getfem {
}
- static pfem prism2_incomplete_fem
+ static pfem prism_incomplete_P2_fem
(fem_param_list ¶ms, std::vector<dal::pstatic_stored_object> &deps) {
GMM_ASSERT1(params.size() == 0, "Bad number of parameters");
- pfem p = build_prism2_incomplete_fem(false);
+ pfem p = build_prism_incomplete_P2_fem(false);
deps.push_back(p->ref_convex(0));
deps.push_back(p->node_tab(0));
return p;
}
- static pfem prism2_incomplete_disc_fem
+ static pfem prism_incomplete_P2_disc_fem
(fem_param_list ¶ms, std::vector<dal::pstatic_stored_object> &deps) {
GMM_ASSERT1(params.size() <= 1, "Bad number of parameters");
- pfem p = build_prism2_incomplete_fem(true);
+ pfem p = build_prism_incomplete_P2_fem(true);
deps.push_back(p->ref_convex(0));
deps.push_back(p->node_tab(0));
return p;
@@ -3766,21 +3766,21 @@ namespace getfem {
/* Identifying Q1-parallelepiped. */
if (!found && nbp == (size_type(1) << n))
if (pgt->basic_structure() == bgeot::parallelepiped_structure(n)) {
- name << "FEM_QK" << suffix << "(" << n << ',' << k << arg << ')';
+ name << "FEM_QK" << suffix << "(" << n << "," << k << arg << ")";
found = true;
}
/* Identifying Q1-prisms. */
if (!found && nbp == 2 * n)
if (pgt->basic_structure() == bgeot::prism_structure(n)) {
- name << "FEM_PK_PRISM" << suffix << "(" << n << ',' << k << arg << ')';
+ name << "FEM_PRISM_PK" << suffix << "(" << n << "," << k << arg << ")";
found = true;
}
/* Identifying pyramids. */
if (!found && nbp == 5)
if (pgt->basic_structure() == bgeot::pyramid_structure(1)) {
- name << "FEM_PYRAMID" << suffix << "_LAGRANGE(" << k << arg << ')';
+ name << "FEM_PYRAMID_QK" << suffix << "(" << k << arg << ")";
found = true;;
}
@@ -3833,9 +3833,11 @@ namespace getfem {
add_suffix("PK", PK_fem);
add_suffix("QK", QK_fem);
add_suffix("QK_DISCONTINUOUS", QK_discontinuous_fem);
- add_suffix("PK_PRISM", PK_prism_fem);
+ add_suffix("PRISM_PK", prism_PK_fem);
+ add_suffix("PK_PRISM", prism_PK_fem); // for backwards compatibility
add_suffix("PK_DISCONTINUOUS", PK_discontinuous_fem);
- add_suffix("PK_PRISM_DISCONTINUOUS", PK_prism_discontinuous_fem);
+ add_suffix("PRISM_PK_DISCONTINUOUS", prism_PK_discontinuous_fem);
+ add_suffix("PK_PRISM_DISCONTINUOUS", prism_PK_discontinuous_fem); // for
backwards compatibility
add_suffix("PK_WITH_CUBIC_BUBBLE", PK_with_cubic_bubble);
add_suffix("PRODUCT", product_fem);
add_suffix("P1_NONCONFORMING", P1_nonconforming_fem);
@@ -3845,7 +3847,8 @@ namespace getfem {
add_suffix("GEN_HIERARCHICAL", gen_hierarchical_fem);
add_suffix("PK_HIERARCHICAL", PK_hierarch_fem);
add_suffix("QK_HIERARCHICAL", QK_hierarch_fem);
- add_suffix("PK_PRISM_HIERARCHICAL", PK_prism_hierarch_fem);
+ add_suffix("PRISM_PK_HIERARCHICAL", prism_PK_hierarch_fem);
+ add_suffix("PK_PRISM_HIERARCHICAL", prism_PK_hierarch_fem); // for
backwards compatibility
add_suffix("STRUCTURED_COMPOSITE", structured_composite_fem_method);
add_suffix("PK_HIERARCHICAL_COMPOSITE", PK_composite_hierarch_fem);
add_suffix("PK_FULL_HIERARCHICAL_COMPOSITE",
@@ -3859,14 +3862,16 @@ namespace getfem {
add_suffix("RT0", P1_RT0);
add_suffix("RT0Q", P1_RT0Q);
add_suffix("NEDELEC", P1_nedelec);
- add_suffix("PYRAMID_LAGRANGE", pyramid_pk_fem);
- add_suffix("PYRAMID_DISCONTINUOUS_LAGRANGE", pyramid_disc_pk_fem);
- add_suffix("PYRAMID2_INCOMPLETE_LAGRANGE", pyramid2_incomplete_fem);
- add_suffix("PYRAMID2_INCOMPLETE_DISCONTINUOUS_LAGRANGE",
- pyramid2_incomplete_disc_fem);
- add_suffix("PRISM2_INCOMPLETE_LAGRANGE", prism2_incomplete_fem);
- add_suffix("PRISM2_INCOMPLETE_DISCONTINUOUS_LAGRANGE",
- prism2_incomplete_disc_fem);
+ add_suffix("PYRAMID_QK", pyramid_QK_fem);
+ add_suffix("PYRAMID_QK_DISCONTINUOUS", pyramid_QK_disc_fem);
+ add_suffix("PYRAMID_LAGRANGE", pyramid_QK_fem); // for backwards
compatibility
+ add_suffix("PYRAMID_DISCONTINUOUS_LAGRANGE", pyramid_QK_disc_fem); //
for backwards compatibility
+ add_suffix("PYRAMID_Q2_INCOMPLETE", pyramid_Q2_incomplete_fem);
+ add_suffix("PYRAMID_Q2_INCOMPLETE_DISCONTINUOUS",
+ pyramid_Q2_incomplete_disc_fem);
+ add_suffix("PRISM_INCOMPLETE_P2", prism_incomplete_P2_fem);
+ add_suffix("PRISM_INCOMPLETE_P2_DISCONTINUOUS",
+ prism_incomplete_P2_disc_fem);
}
};
@@ -3927,13 +3932,13 @@ namespace getfem {
return pf;
}
- pfem PK_prism_fem(size_type n, short_type k) {
+ pfem prism_PK_fem(size_type n, short_type k) {
DEFINE_STATIC_THREAD_LOCAL_INITIALIZED(pfem, pf, 0);
DEFINE_STATIC_THREAD_LOCAL_INITIALIZED(size_type, d, size_type(-2));
DEFINE_STATIC_THREAD_LOCAL_INITIALIZED(short_type, r, short_type(-2));
if (d != n || r != k) {
std::stringstream name;
- name << "FEM_PK_PRISM(" << n << "," << k << ")";
+ name << "FEM_PRISM_PK(" << n << "," << k << ")";
pf = fem_descriptor(name.str());
d = n; r = k;
}
diff --git a/src/getfem_import.cc b/src/getfem_import.cc
index 29f78cb..846f51b 100644
--- a/src/getfem_import.cc
+++ b/src/getfem_import.cc
@@ -56,7 +56,7 @@ namespace getfem {
pgt = bgeot::prism_geotrans(3,1);
} break;
case 7: { /* PYRAMID */
- pgt = bgeot::pyramid_geotrans(1);
+ pgt = bgeot::pyramid_QK_geotrans(1);
} break;
case 8: { /* 2ND ORDER LINE */
pgt = bgeot::simplex_geotrans(1,2);
@@ -1099,7 +1099,7 @@ namespace getfem {
getfem_cv_nodes[10] = cdb_node_2_getfem_node[BB];
getfem_cv_nodes[11] = cdb_node_2_getfem_node[AA];
getfem_cv_nodes[12] = cdb_node_2_getfem_node[MM];
-
regions[imat].add(m.add_convex(bgeot::pyramid2_incomplete_geotrans(),
+
regions[imat].add(m.add_convex(bgeot::pyramid_Q2_incomplete_geotrans(),
getfem_cv_nodes.begin()));
if (itype < elt_cnt.size())
elt_cnt[itype] += 1;
@@ -1121,8 +1121,9 @@ namespace getfem {
getfem_cv_nodes[12] = cdb_node_2_getfem_node[XX];
getfem_cv_nodes[13] = cdb_node_2_getfem_node[VV];
getfem_cv_nodes[14] = cdb_node_2_getfem_node[OO];
- regions[imat].add(m.add_convex(bgeot::prism2_incomplete_geotrans(),
- getfem_cv_nodes.begin()));
+ regions[imat].add(m.add_convex
+ (bgeot::prism_incomplete_P2_geotrans(),
+ getfem_cv_nodes.begin()));
if (itype < elt_cnt.size())
elt_cnt[itype] += 1;
} else {
diff --git a/src/getfem_integration.cc b/src/getfem_integration.cc
index 32a4826..7643d5a 100644
--- a/src/getfem_integration.cc
+++ b/src/getfem_integration.cc
@@ -847,13 +847,13 @@ namespace getfem {
size_type ip1, size_type ip2=size_type(-1)) :
approx_integration
((base_im->structure() == bgeot::parallelepiped_structure(3)) ?
- bgeot::pyramid_of_reference(1)
+ bgeot::pyramid_QK_of_reference(1)
: bgeot::simplex_of_reference(base_im->dim())) {
size_type N = base_im->dim();
enum { SQUARE, PRISM, TETRA_CYL, PRISM2, PYRAMID } what;
if (N == 2) what = SQUARE;
- else if (base_im->structure() == bgeot::prism_structure(3))
+ else if (base_im->structure() == bgeot::prism_P1_structure(3))
what = (ip2 == size_type(-1) || ip1 == ip2) ? PRISM2 : PRISM;
else if (base_im->structure() == bgeot::simplex_structure(3))
what = TETRA_CYL;
@@ -870,7 +870,7 @@ namespace getfem {
bgeot::pgeometric_trans pgt2 = bgeot::simplex_geotrans(N, 1);
std::vector<base_node> nodes2(N+1);
if (what == PYRAMID) {
- pgt2 = bgeot::pyramid_geotrans(1);
+ pgt2 = bgeot::pyramid_QK_geotrans(1);
nodes2.resize(5);
}
std::vector<size_type> other_nodes; // for the construction of node2
@@ -1215,7 +1215,7 @@ namespace getfem {
/* Identifying Q1-prisms. */
if (!found && nbp == 2 * n)
- if (cvs == bgeot::prism_structure(dim_type(n)))
+ if (cvs == bgeot::prism_P1_structure(dim_type(n)))
{ name << "IM_EXACT_PRISM("; found = true; }
// To be completed
diff --git a/src/getfem_integration_composite.cc
b/src/getfem_integration_composite.cc
index cc7148c..9562343 100644
--- a/src/getfem_integration_composite.cc
+++ b/src/getfem_integration_composite.cc
@@ -213,7 +213,7 @@ namespace getfem {
pintegration_method
p = std::make_shared<integration_method>
(composite_approx_int_method(jfs.mp, mi,
- bgeot::pyramid_of_reference(1)));
+ bgeot::pyramid_QK_of_reference(1)));
dependencies.push_back(p->approx_method()->ref_convex());
dependencies.push_back(p->approx_method()->pintegration_points());
return p;
diff --git a/src/getfem_mesh.cc b/src/getfem_mesh.cc
index ee591f6..92d07a3 100644
--- a/src/getfem_mesh.cc
+++ b/src/getfem_mesh.cc
@@ -304,7 +304,7 @@ namespace getfem {
size_type mesh::add_pyramid(size_type a, size_type b,
size_type c, size_type d, size_type e) {
size_type ipt[5] = {a, b, c, d, e};
- return add_convex(bgeot::pyramid_geotrans(1), &(ipt[0]));
+ return add_convex(bgeot::pyramid_QK_geotrans(1), &(ipt[0]));
}
size_type mesh::add_tetrahedron_by_points
diff --git a/src/getfem_mesh_im_level_set.cc b/src/getfem_mesh_im_level_set.cc
index 9b0bef4..dd9dd13 100644
--- a/src/getfem_mesh_im_level_set.cc
+++ b/src/getfem_mesh_im_level_set.cc
@@ -252,7 +252,7 @@ namespace getfem {
((n != 2 ||
base_singular_pim->structure()== bgeot::parallelepiped_structure(2))
&& (n != 3
- || base_singular_pim->structure() == bgeot::prism_structure(3))
+ || base_singular_pim->structure() == bgeot::prism_P1_structure(3))
&& (n >= 2) && (n <= 3),
"Base integration method for quasi polar integration not convenient");
diff --git a/src/getfem_mesh_level_set.cc b/src/getfem_mesh_level_set.cc
index 98cc1eb..c7b6de7 100644
--- a/src/getfem_mesh_level_set.cc
+++ b/src/getfem_mesh_level_set.cc
@@ -286,7 +286,7 @@ struct Chrono {
/* Identifying prisms. */
if (nbp == size_type(2 * n) &&
- pgt->basic_structure() == bgeot::prism_structure(n)) {
+ pgt->basic_structure() == bgeot::prism_P1_structure(n)) {
return new_mesher_prism_ref(n);
}
diff --git a/src/getfem_regular_meshes.cc b/src/getfem_regular_meshes.cc
index bd4c5c4..d94b8ad 100644
--- a/src/getfem_regular_meshes.cc
+++ b/src/getfem_regular_meshes.cc
@@ -251,10 +251,10 @@ namespace getfem
} else if (pgt->basic_structure() == bgeot::parallelepiped_structure(N)) {
getfem::parallelepiped_regular_mesh
(msh, N, org, vtab.begin(), nsubdiv.begin());
- } else if (pgt->basic_structure() == bgeot::prism_structure(N)) {
+ } else if (pgt->basic_structure() == bgeot::prism_P1_structure(N)) {
getfem::parallelepiped_regular_prism_mesh
(msh, N, org, vtab.begin(), nsubdiv.begin());
- } else if (pgt->basic_structure() == bgeot::pyramid_structure(1)) {
+ } else if (pgt->basic_structure() == bgeot::pyramid_QK_structure(1)) {
getfem::parallelepiped_regular_pyramid_mesh
(msh, org, vtab.begin(), nsubdiv.begin());
} else {