31 const std::vector<basis::ElementBases> &bases,
32 const std::shared_ptr<mesh::MeshNodes> &mesh_nodes,
33 const Eigen::MatrixXd &affine_matrix,
37 Eigen::MatrixXd
full_to_periodic(
const Eigen::MatrixXd &b,
bool accumulate)
const;
38 std::vector<int>
full_to_periodic(
const std::vector<int> &boundary_nodes)
const;
43 Eigen::MatrixXd
periodic_to_full(
const int ndofs,
const Eigen::MatrixXd &x_periodic)
const;
Stores the basis functions for a given element in a mesh (facet in 2d, cell in 3d).
Boundary primitive IDs for a single element.
Abstract mesh class to capture 2d/3d conforming and non-conforming meshes.
Eigen::MatrixXd affine_matrix_
Eigen::VectorXi periodic_mask_
Eigen::VectorXi full_to_periodic_map_
bool has_periodic_bc() const
Eigen::MatrixXd get_affine_matrix() const
bool all_direction_periodic() const
Eigen::MatrixXd periodic_to_full(const int ndofs, const Eigen::MatrixXd &x_periodic) const
int n_periodic_dof() const
int full_to_periodic(StiffnessMatrix &A) const
bool is_periodic_dof(const int idx) const
Eigen::SparseMatrix< double, Eigen::ColMajor > StiffnessMatrix