53 main(
int argc,
char **argv)
58 std::string par_name =
"dof_plotter.prm";
70 unsigned int n_basis_functions = 3;
71 unsigned int info_level = 0;
72 unsigned int mapping_degree = 1;
76 "Maximum number of basis functions to plot", n_basis_functions);
91 std::unique_ptr<Mapping<2>> mapping;
93 mapping = std::make_unique<MappingQ<2>>(mapping_degree);
103 pfe().tensor_degree() + 1);
119 std::vector<Vector<double>> basis_functions(n_basis_functions,
121 std::vector<Vector<double>> reciprocal_basis_functions(
127 for (
unsigned int i = 0; i < n_basis_functions; ++i)
129 basis_functions[i][i] = 1.0;
130 mass_matrix_solver.
vmult(reciprocal_basis_functions[i],
133 "basis_function_" + std::to_string(i));
135 "reciprocal_basis_function_" + std::to_string(i));
139 catch (std::exception &exc)
141 std::cerr << std::endl
143 <<
"----------------------------------------------------"
145 std::cerr <<
"Exception on processing: " << std::endl
146 << exc.what() << std::endl
147 <<
"Aborting!" << std::endl
148 <<
"----------------------------------------------------"
155 std::cerr << std::endl
157 <<
"----------------------------------------------------"
159 std::cerr <<
"Unknown exception!" << std::endl
160 <<
"Aborting!" << std::endl
161 <<
"----------------------------------------------------"
void distribute_dofs(const FiniteElement< dim, spacedim > &fe)
types::global_dof_index n_dofs() const
unsigned int depth_console(const unsigned int n)
static void initialize(const std::string &filename="", const std::string &output_filename="", const ParameterHandler::OutputStyle output_style_for_output_filename=ParameterHandler::Short, ParameterHandler &prm=ParameterAcceptor::prm, const ParameterHandler::OutputStyle output_style_for_filename=ParameterHandler::DefaultStyle)
static ParameterHandler prm
void add_parameter(const std::string &entry, ParameterType ¶meter, const std::string &documentation="", const Patterns::PatternBase &pattern=*Patterns::Tools::Convert< ParameterType >::to_pattern(), const bool has_to_be_set=false)
void initialize(const SparsityPattern &sparsity_pattern)
void vmult(Vector< double > &dst, const Vector< double > &src) const
void copy_from(const size_type n_rows, const size_type n_cols, const ForwardIterator begin, const ForwardIterator end)
bool all_reference_cells_are_hyper_cube() const
int main(int argc, char **argv)
void make_sparsity_pattern(const DoFHandler< dim, spacedim > &dof_handler, SparsityPatternBase &sparsity_pattern, const AffineConstraints< number > &constraints={}, const bool keep_constrained_dofs=true, const types::subdomain_id subdomain_id=numbers::invalid_subdomain_id)
void create_mass_matrix(const Mapping< dim, spacedim > &mapping, const DoFHandler< dim, spacedim > &dof, const Quadrature< dim > &q, MatrixType &matrix, const Function< spacedim, typename MatrixType::value_type > *const a=nullptr, const AffineConstraints< typename MatrixType::value_type > &constraints=AffineConstraints< typename MatrixType::value_type >())
unsigned int this_mpi_process(const MPI_Comm mpi_communicator)
::VectorizedArray< Number, width > min(const ::VectorizedArray< Number, width > &, const ::VectorizedArray< Number, width > &)