Skip to content
Snippets Groups Projects
Commit 3b751dfe authored by Stéphane Del Pino's avatar Stéphane Del Pino
Browse files

Remove constructors from list of vectors

parent 54b5d0a6
No related branches found
No related tags found
No related merge requests found
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
enum class BasisType enum class BasisType
{ {
undefined,
lagrange, lagrange,
canonical, canonical,
taylor taylor
...@@ -104,6 +105,8 @@ class PolynomialBasis ...@@ -104,6 +105,8 @@ class PolynomialBasis
return "canonical"; return "canonical";
case BasisType::taylor: case BasisType::taylor:
return "taylor"; return "taylor";
case BasisType::undefined:
return "undefined";
default: default:
return "unknown basis type"; return "unknown basis type";
} }
...@@ -141,19 +144,17 @@ class PolynomialBasis ...@@ -141,19 +144,17 @@ class PolynomialBasis
return _buildTaylorBasis(shift); return _buildTaylorBasis(shift);
break; break;
} }
default: // LCOV_EXCL_START
default: {
throw UnexpectedError("unknown basis type"); throw UnexpectedError("unknown basis type");
} }
// LCOV_EXCL_STOP
}
} }
PUGS_INLINE constexpr PolynomialBasis(const TinyVector<N + 1, Polynomial<N>>& elements) noexcept
: m_elements{elements}
{}
PUGS_INLINE PUGS_INLINE
constexpr PolynomialBasis(TinyVector<N + 1, Polynomial<N>>&& elements) noexcept : m_elements{elements} {} constexpr PolynomialBasis() noexcept : m_basis_type{BasisType::undefined} {}
PUGS_INLINE
constexpr PolynomialBasis() noexcept = default;
~PolynomialBasis() = default; ~PolynomialBasis() = default;
}; };
#endif // POLYNOMIAL_BASIS_HPP #endif // POLYNOMIAL_BASIS_HPP
...@@ -17,8 +17,8 @@ inline ASTNodeDataType ast_node_data_type_from<std::shared_ptr<const IBoundaryCo ...@@ -17,8 +17,8 @@ inline ASTNodeDataType ast_node_data_type_from<std::shared_ptr<const IBoundaryCo
ASTNodeDataType::build<ASTNodeDataType::type_id_t>("boundary_condition"); ASTNodeDataType::build<ASTNodeDataType::type_id_t>("boundary_condition");
template <> template <>
inline ASTNodeDataType ast_node_data_type_from<std::shared_ptr<const BasisType>> = {ASTNodeDataType::type_id_t, inline ASTNodeDataType ast_node_data_type_from<std::shared_ptr<const BasisType>> =
"basis_type"}; ASTNodeDataType::build<ASTNodeDataType::type_id_t>("basis_type");
class SchemeModule : public BuiltinModule class SchemeModule : public BuiltinModule
{ {
......
...@@ -21,9 +21,7 @@ TEST_CASE("PolynomialBasis", "[analysis]") ...@@ -21,9 +21,7 @@ TEST_CASE("PolynomialBasis", "[analysis]")
{ {
SECTION("construction") SECTION("construction")
{ {
TinyVector<3, Polynomial<2>> elements; REQUIRE_NOTHROW(PolynomialBasis<2>{});
REQUIRE_NOTHROW(PolynomialBasis<2>(elements));
REQUIRE_NOTHROW(PolynomialBasis<2>());
} }
SECTION("size") SECTION("size")
{ {
...@@ -34,7 +32,7 @@ TEST_CASE("PolynomialBasis", "[analysis]") ...@@ -34,7 +32,7 @@ TEST_CASE("PolynomialBasis", "[analysis]")
SECTION("build") SECTION("build")
{ {
PolynomialBasis<2> B; PolynomialBasis<2> B;
REQUIRE(B.displayType() == "unknown basis type"); REQUIRE(B.displayType() == "undefined");
B.build(BasisType::canonical); B.build(BasisType::canonical);
REQUIRE(B.elements()[1] == Polynomial<2>{{0, 1, 0}}); REQUIRE(B.elements()[1] == Polynomial<2>{{0, 1, 0}});
REQUIRE(B.elements()[2] == Polynomial<2>{{0, 0, 1}}); REQUIRE(B.elements()[2] == Polynomial<2>{{0, 0, 1}});
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment