2#ifndef SERENDIPITY_PROBLEM_HPP
3#define SERENDIPITY_PROBLEM_HPP
36 return m_serendipity_edges[iT];
42 return m_serendipity_edges[iT].size();
69 assert( m_cell_bases_Polyl[iT] );
70 return *m_cell_bases_Polyl[iT].get();
101 assert( m_cell_bases_RolyCompllpo[iT] );
102 return *m_cell_bases_RolyCompllpo[iT].get();
141 return m_ddrcore.
mesh();
153 std::vector<size_t> _compute_serendipity_edges(
size_t iT);
161 std::ostream & m_output;
164 std::vector<std::unique_ptr<PolylBasisCellType> > m_cell_bases_Polyl;
167 std::vector<std::unique_ptr<RolyCompllpoBasisCellType> > m_cell_bases_RolyCompllpo;
170 std::vector<std::vector<size_t>> m_serendipity_edges;
173 std::vector<InverseProblem> m_inverse_problem_cells;
Construct all polynomial spaces for the DDR sequence.
Definition ddrcore.hpp:63
Generate a basis restricted to the first "dimension" functions.
Definition basis.hpp:1099
Construct all polynomial spaces for the DDR sequence.
Definition serendipity_problem.hpp:20
const Mesh & mesh() const
Return a const reference to the mesh.
Definition ddrcore.hpp:116
const Eigen::MatrixXd SerendipityOperatorCell(const size_t iT, const Eigen::MatrixXd <) const
Compute the serendipity operator on the cell of index iT.
Definition serendipity_problem.cpp:147
const RolyCompllpoBasisCellType & cellBasisRolyCompllpo(size_t iT) const
Return the basis of R^{c,l+1} on cell of index iT.
Definition serendipity_problem.hpp:98
const std::vector< size_t > & serendipityEdges(size_t iT) const
Return the list of serendipity edges in a cell.
Definition serendipity_problem.hpp:34
const size_t & degree() const
Return the polynomial degree.
Definition ddrcore.hpp:122
const int n_serendipityEdges(size_t iT) const
Return the number of serendipity edges in a cell.
Definition serendipity_problem.hpp:40
const RolyCompllpoBasisCellType & cellBasisRolyCompllpo(const Cell &T) const
Return the basis of R^{c,l+1} on cell T.
Definition serendipity_problem.hpp:107
const PolylBasisCellType & cellBasisPolyl(const Cell &T) const
Return the basis of P^l on cell T.
Definition serendipity_problem.hpp:75
Eigen::FullPivLU< Eigen::MatrixXd > InverseProblem
Type for inverses of matrix for serendipity problem.
Definition serendipity_problem.hpp:27
Eigen::VectorXd nDOFs_cells_SXCurl() const
Number of DOFs on cells for serendipity XCurl space.
Definition serendipity_problem.cpp:165
Eigen::VectorXd nDOFs_cells_SXRotRot() const
Number of DOFs on cells for serendipity XRotRot space.
Definition serendipity_problem.cpp:177
size_t dimCellPolyl(const Cell &T) const
Return the dimension of P^{l+1} on cell T.
Definition serendipity_problem.hpp:60
size_t dimCellPolyl(size_t iT) const
Return the dimension of P^l on cell of index iT.
Definition serendipity_problem.hpp:54
const DDRCore & ddrCore() const
Return a const reference to the underlying DDR core.
Definition serendipity_problem.hpp:145
Eigen::VectorXd nDOFs_cells_SXGrad() const
Number of DOFs on cells for serendipity XGrad space.
Definition serendipity_problem.cpp:153
size_t dimCellRolyCompllpo(size_t iT) const
Return the dimension of R^{c,l+1} on cell of index iT.
Definition serendipity_problem.hpp:86
const int serDegreeCell(size_t iT) const
Return the serendipity degree ell_T in a cell.
Definition serendipity_problem.hpp:46
RestrictedBasis< DDRCore::RolyComplBasisCellType > RolyCompllpoBasisCellType
Definition serendipity_problem.hpp:23
const PolylBasisCellType & cellBasisPolyl(size_t iT) const
Return the basis of P^l on cell of index iT.
Definition serendipity_problem.hpp:66
const Mesh & mesh() const
Return a const reference to the mesh.
Definition serendipity_problem.hpp:139
const Eigen::MatrixXd SerendipityOperatorCell(const Cell &T, const Eigen::MatrixXd <) const
Compute the serendipity operator on the Cell T.
Definition serendipity_problem.hpp:132
RestrictedBasis< DDRCore::PolyBasisCellType > PolylBasisCellType
Definition serendipity_problem.hpp:22
size_t dimCellRolyCompllpo(const Cell &T) const
Return the dimension of R^{c,l+1} on cell T.
Definition serendipity_problem.hpp:92
bool use_threads
Definition HHO_DiffAdvecReac.hpp:47
if(strcmp(field, 'real')) % real valued entries T
Definition mmread.m:93
Definition ddr-klplate.hpp:27
Basis dimensions for various polynomial spaces on edges/faces/elements (when relevant): Pk,...
Definition polynomialspacedimension.hpp:55