deal.II version GIT relicensing-2165-gc91f007519 2024-11-20 01:40:00+00:00
|
#include <deal.II/base/config.h>
#include <deal.II/base/enable_observer_pointer.h>
#include <deal.II/base/exceptions.h>
#include <deal.II/base/geometry_info.h>
#include <deal.II/base/symmetric_tensor.h>
#include <deal.II/base/tensor.h>
#include <deal.II/distributed/tria.h>
#include <deal.II/fe/component_mask.h>
#include <deal.II/lac/la_parallel_vector.h>
#include <memory>
#include <string>
#include <vector>
Go to the source code of this file.
Classes | |
class | FETools::FEFactoryBase< dim, spacedim > |
class | FETools::FEFactory< FE > |
Namespaces | |
namespace | FETools |
namespace | FETools::Compositing |
Functions | |
template<int dim, int spacedim> | |
void | FETools::compute_component_wise (const FiniteElement< dim, spacedim > &fe, std::vector< unsigned int > &renumbering, std::vector< std::vector< unsigned int > > &start_indices) |
template<int dim, int spacedim> | |
void | FETools::compute_block_renumbering (const FiniteElement< dim, spacedim > &fe, std::vector< types::global_dof_index > &renumbering, std::vector< types::global_dof_index > &block_data, bool return_start_indices=true) |
template<int dim> | |
std::vector< unsigned int > | FETools::hierarchic_to_lexicographic_numbering (unsigned int degree) |
template<int dim> | |
std::vector< unsigned int > | FETools::lexicographic_to_hierarchic_numbering (unsigned int degree) |
template<int dim, int spacedim> | |
FiniteElementData< dim > | FETools::Compositing::multiply_dof_numbers (const std::vector< const FiniteElement< dim, spacedim > * > &fes, const std::vector< unsigned int > &multiplicities, const bool do_tensor_product=true) |
template<int dim, int spacedim> | |
FiniteElementData< dim > | FETools::Compositing::multiply_dof_numbers (const std::initializer_list< std::pair< std::unique_ptr< FiniteElement< dim, spacedim > >, unsigned int > > &fe_systems) |
template<int dim, int spacedim> | |
FiniteElementData< dim > | FETools::Compositing::multiply_dof_numbers (const FiniteElement< dim, spacedim > *fe1, const unsigned int N1, const FiniteElement< dim, spacedim > *fe2=nullptr, const unsigned int N2=0, const FiniteElement< dim, spacedim > *fe3=nullptr, const unsigned int N3=0, const FiniteElement< dim, spacedim > *fe4=nullptr, const unsigned int N4=0, const FiniteElement< dim, spacedim > *fe5=nullptr, const unsigned int N5=0) |
template<int dim, int spacedim> | |
std::vector< bool > | FETools::Compositing::compute_restriction_is_additive_flags (const std::vector< const FiniteElement< dim, spacedim > * > &fes, const std::vector< unsigned int > &multiplicities) |
template<int dim, int spacedim> | |
std::vector< bool > | FETools::Compositing::compute_restriction_is_additive_flags (const std::initializer_list< std::pair< std::unique_ptr< FiniteElement< dim, spacedim > >, unsigned int > > &fe_systems) |
template<int dim, int spacedim> | |
std::vector< bool > | FETools::Compositing::compute_restriction_is_additive_flags (const FiniteElement< dim, spacedim > *fe1, const unsigned int N1, const FiniteElement< dim, spacedim > *fe2=nullptr, const unsigned int N2=0, const FiniteElement< dim, spacedim > *fe3=nullptr, const unsigned int N3=0, const FiniteElement< dim, spacedim > *fe4=nullptr, const unsigned int N4=0, const FiniteElement< dim, spacedim > *fe5=nullptr, const unsigned int N5=0) |
template<int dim, int spacedim> | |
std::vector< ComponentMask > | FETools::Compositing::compute_nonzero_components (const std::vector< const FiniteElement< dim, spacedim > * > &fes, const std::vector< unsigned int > &multiplicities, const bool do_tensor_product=true) |
template<int dim, int spacedim> | |
std::vector< ComponentMask > | FETools::Compositing::compute_nonzero_components (const std::initializer_list< std::pair< std::unique_ptr< FiniteElement< dim, spacedim > >, unsigned int > > &fe_systems) |
template<int dim, int spacedim> | |
std::vector< ComponentMask > | FETools::Compositing::compute_nonzero_components (const FiniteElement< dim, spacedim > *fe1, const unsigned int N1, const FiniteElement< dim, spacedim > *fe2=nullptr, const unsigned int N2=0, const FiniteElement< dim, spacedim > *fe3=nullptr, const unsigned int N3=0, const FiniteElement< dim, spacedim > *fe4=nullptr, const unsigned int N4=0, const FiniteElement< dim, spacedim > *fe5=nullptr, const unsigned int N5=0, const bool do_tensor_product=true) |
template<int dim, int spacedim> | |
void | FETools::Compositing::build_cell_tables (std::vector< std::pair< std::pair< unsigned int, unsigned int >, unsigned int > > &system_to_base_table, std::vector< std::pair< unsigned int, unsigned int > > &system_to_component_table, std::vector< std::pair< std::pair< unsigned int, unsigned int >, unsigned int > > &component_to_base_table, const FiniteElement< dim, spacedim > &finite_element, const bool do_tensor_product=true) |
template<int dim, int spacedim> | |
void | FETools::Compositing::build_face_tables (std::vector< std::pair< std::pair< unsigned int, unsigned int >, unsigned int > > &face_system_to_base_table, std::vector< std::pair< unsigned int, unsigned int > > &face_system_to_component_table, const FiniteElement< dim, spacedim > &finite_element, const bool do_tensor_product=true, const unsigned int face_no=0) |
template<int dim, int spacedim = dim> | |
std::unique_ptr< FiniteElement< dim, spacedim > > | FETools::get_fe_by_name (const std::string &name) |
template<int dim, int spacedim> | |
void | FETools::add_fe_name (const std::string &name, const FEFactoryBase< dim, spacedim > *factory) |
static ::ExceptionBase & | FETools::ExcInvalidFEName (std::string arg1) |
static ::ExceptionBase & | FETools::ExcInvalidFEDimension (char arg1, int arg2) |
static ::ExceptionBase & | FETools::ExcInvalidFE () |
static ::ExceptionBase & | FETools::ExcFENotPrimitive () |
static ::ExceptionBase & | FETools::ExcTriangulationMismatch () |
static ::ExceptionBase & | FETools::ExcHangingNodesNotAllowed () |
static ::ExceptionBase & | FETools::ExcGridNotRefinedAtLeastOnce () |
static ::ExceptionBase & | FETools::ExcMatrixDimensionMismatch (int arg1, int arg2, int arg3, int arg4) |
static ::ExceptionBase & | FETools::ExcLeastSquaresError (double arg1) |
static ::ExceptionBase & | FETools::ExcNotGreaterThan (int arg1, int arg2) |
Generation of local matrices | |
template<int dim, typename number , int spacedim> | |
void | FETools::get_interpolation_matrix (const FiniteElement< dim, spacedim > &fe1, const FiniteElement< dim, spacedim > &fe2, FullMatrix< number > &interpolation_matrix) |
template<int dim, typename number , int spacedim> | |
void | FETools::get_back_interpolation_matrix (const FiniteElement< dim, spacedim > &fe1, const FiniteElement< dim, spacedim > &fe2, FullMatrix< number > &interpolation_matrix) |
template<int dim, typename number , int spacedim> | |
void | FETools::get_interpolation_difference_matrix (const FiniteElement< dim, spacedim > &fe1, const FiniteElement< dim, spacedim > &fe2, FullMatrix< number > &difference_matrix) |
template<int dim, typename number , int spacedim> | |
void | FETools::get_projection_matrix (const FiniteElement< dim, spacedim > &fe1, const FiniteElement< dim, spacedim > &fe2, FullMatrix< number > &matrix) |
template<int dim, int spacedim> | |
FullMatrix< double > | FETools::compute_node_matrix (const FiniteElement< dim, spacedim > &fe) |
template<int dim, typename number , int spacedim> | |
void | FETools::compute_embedding_matrices (const FiniteElement< dim, spacedim > &fe, std::vector< std::vector< FullMatrix< number > > > &matrices, const bool isotropic_only=false, const double threshold=1.e-12) |
template<int dim, typename number , int spacedim> | |
void | FETools::compute_face_embedding_matrices (const FiniteElement< dim, spacedim > &fe, FullMatrix< number >(&matrices)[GeometryInfo< dim >::max_children_per_face], const unsigned int face_coarse, const unsigned int face_fine, const double threshold=1.e-12) |
template<int dim, typename number , int spacedim> | |
void | FETools::compute_projection_matrices (const FiniteElement< dim, spacedim > &fe, std::vector< std::vector< FullMatrix< number > > > &matrices, const bool isotropic_only=false) |
template<int dim, int spacedim> | |
void | FETools::compute_projection_from_quadrature_points_matrix (const FiniteElement< dim, spacedim > &fe, const Quadrature< dim > &lhs_quadrature, const Quadrature< dim > &rhs_quadrature, FullMatrix< double > &X) |
template<int dim, int spacedim> | |
void | FETools::compute_interpolation_to_quadrature_points_matrix (const FiniteElement< dim, spacedim > &fe, const Quadrature< dim > &quadrature, FullMatrix< double > &I_q) |
template<int dim> | |
void | FETools::compute_projection_from_quadrature_points (const FullMatrix< double > &projection_matrix, const std::vector< Tensor< 1, dim > > &vector_of_tensors_at_qp, std::vector< Tensor< 1, dim > > &vector_of_tensors_at_nodes) |
template<int dim> | |
void | FETools::compute_projection_from_quadrature_points (const FullMatrix< double > &projection_matrix, const std::vector< SymmetricTensor< 2, dim > > &vector_of_tensors_at_qp, std::vector< SymmetricTensor< 2, dim > > &vector_of_tensors_at_nodes) |
template<int dim, int spacedim> | |
void | FETools::compute_projection_from_face_quadrature_points_matrix (const FiniteElement< dim, spacedim > &fe, const Quadrature< dim - 1 > &lhs_quadrature, const Quadrature< dim - 1 > &rhs_quadrature, const typename DoFHandler< dim, spacedim >::active_cell_iterator &cell, const unsigned int face, FullMatrix< double > &X) |
template<int dim, int spacedim = dim> | |
Quadrature< dim > | FETools::compute_nodal_quadrature (const FiniteElement< dim, spacedim > &fe) |
Compute the nodal quadrature rule associated with an element. | |
template<int dim, int spacedim, typename number > | |
void | FETools::convert_generalized_support_point_values_to_dof_values (const FiniteElement< dim, spacedim > &finite_element, const std::vector< Vector< number > > &support_point_values, std::vector< number > &dof_values) |
Functions which should be in DoFTools or VectorTools | |
template<int dim, int spacedim, class InVector , class OutVector > | |
void | FETools::interpolate (const DoFHandler< dim, spacedim > &dof1, const InVector &u1, const DoFHandler< dim, spacedim > &dof2, OutVector &u2) |
template<int dim, int spacedim, class InVector , class OutVector > | |
void | FETools::interpolate (const DoFHandler< dim, spacedim > &dof1, const InVector &u1, const DoFHandler< dim, spacedim > &dof2, const AffineConstraints< typename OutVector::value_type > &constraints, OutVector &u2) |
template<int dim, class InVector , class OutVector , int spacedim> | |
void | FETools::back_interpolate (const DoFHandler< dim, spacedim > &dof1, const InVector &u1, const FiniteElement< dim, spacedim > &fe2, OutVector &u1_interpolated) |
template<int dim, class InVector , class OutVector , int spacedim> | |
void | FETools::back_interpolate (const DoFHandler< dim, spacedim > &dof1, const AffineConstraints< typename OutVector::value_type > &constraints1, const InVector &u1, const DoFHandler< dim, spacedim > &dof2, const AffineConstraints< typename OutVector::value_type > &constraints2, OutVector &u1_interpolated) |
template<int dim, class InVector , class OutVector , int spacedim> | |
void | FETools::interpolation_difference (const DoFHandler< dim, spacedim > &dof1, const InVector &z1, const FiniteElement< dim, spacedim > &fe2, OutVector &z1_difference) |
template<int dim, class InVector , class OutVector , int spacedim> | |
void | FETools::interpolation_difference (const DoFHandler< dim, spacedim > &dof1, const AffineConstraints< typename OutVector::value_type > &constraints1, const InVector &z1, const DoFHandler< dim, spacedim > &dof2, const AffineConstraints< typename OutVector::value_type > &constraints2, OutVector &z1_difference) |
template<int dim, class InVector , class OutVector , int spacedim> | |
void | FETools::project_dg (const DoFHandler< dim, spacedim > &dof1, const InVector &u1, const DoFHandler< dim, spacedim > &dof2, OutVector &u2) |
template<int dim, class InVector , class OutVector , int spacedim> | |
void | FETools::extrapolate (const DoFHandler< dim, spacedim > &dof1, const InVector &z1, const DoFHandler< dim, spacedim > &dof2, OutVector &z2) |
template<int dim, class InVector , class OutVector , int spacedim> | |
void | FETools::extrapolate (const DoFHandler< dim, spacedim > &dof1, const InVector &z1, const DoFHandler< dim, spacedim > &dof2, const AffineConstraints< typename OutVector::value_type > &constraints, OutVector &z2) |