Implements the solver of the Method of manufactured solutions (mms/) numerical experiment. More...
#include <solver.hpp>


Public Member Functions | |
| SolverMMS (unsigned int p, unsigned int mapping_degree, unsigned int r, std::string fname) | |
Public Member Functions inherited from StaticScalarSolver::Solver< dim, stage > | |
| Solver (unsigned int p, unsigned int mapping_degree, unsigned int type_of_pde_rhs, std::string fname="data", const Function< dim > *exact_solution=nullptr, bool axisymmetric=false, bool vector_potential=false, bool print_time_tables=false, bool project_exact_solution=false, bool write_higher_order_cells=false) | |
| The only constructor. More... | |
| void | setup () |
| Initializes system matrix and the right-hand side vector, etc. More... | |
| void | assemble () |
| Assembles the system matrix and the right-hand side vector. | |
| void | compute_error_norms () |
| Computes error norms. | |
| void | project_exact_solution_fcn () |
| Projects exact solution. More... | |
| void | save () const |
| Saves simulation results into a vtk or vtu file. More... | |
| void | save_matrix_and_rhs_to_csv (std::string fname) const |
| Saves the system matrix and the right-hand side into a csv file. More... | |
| void | clear () |
| Releases computer memory associated with the system matrix and right-hand side. | |
| const Triangulation< dim > & | get_tria () const |
| Returns a reference to triangulation. | |
| const DoFHandler< dim > & | get_dof_handler () const |
| Returns a reference to dof handler. | |
| const Vector< double > & | get_solution () const |
| Returns a reference to the solution. | |
| unsigned int | get_n_cells () const |
| Returns the number of active cells in the mesh. | |
| unsigned int | get_n_vertices () const |
| Returns the number of vertices. | |
| unsigned int | get_n_used_vertices () const |
| Returns the number of used vertices. | |
| unsigned int | get_n_lines () const |
| Returns the number of lines. | |
| unsigned int | get_n_dofs () const |
| Returns the total amount of the degrees of freedom. | |
| unsigned int | get_type_of_pde_rhs () const |
Returns the value of type_of_pde_rhs. | |
| double | get_L2_norm () const |
| Returns \(L^2\) error norm. | |
| double | get_H1_norm () const |
| Returns \(H^1\) error norm. | |
| double | get_Linfty_norm () const |
| Returns \(L^{\infty}\) error norm. | |
| unsigned int | get_mapping_degree () const |
| Returns degree of the interpolating Lagrange polynomials used for mapping from the reference cell to the real mesh cell and back. | |
| void | run () |
| Runs the simulation. More... | |
Additional Inherited Members | |
Public Attributes inherited from SettingsMMS | |
| const unsigned int | nr_threads_max = 0 |
| If greater than zero, limits the amount of threads used in the simulations. | |
| const double | ep_0 = permittivity_fs |
| The permittivity of free space. | |
| const double | k = pi |
| The scaling parameter. | |
| const types::boundary_id | bid_dirichlet = 1 |
| The Dirichlet boundary condition will be applied to the boundaries with ID = 1. The boundary IDs are set in the geo files that are located in the mms/gmsh directory. | |
| const types::boundary_id | bid_robin = 2 |
| The Robin boundary condition will be applied to the boundaries with even boundary IDs. This constant is not used in the code. The code applies the Robin boundary condition on all boundaries with even IDs. The boundary IDs are set in the geo files that are located in the mms/gmsh directory. | |
| const double | eps = 1e-12 |
Two values in double format are considered to be equal if the absolute value of their difference is less than eps. | |
| const bool | print_time_tables = false |
| If set to true, the program will print time tables on the screen. | |
| const bool | project_exact_solution = false |
| If set to true, the program will project the exact solution. More... | |
| const bool | log_cg_convergence = false |
| If set to true, saves the residual at each iteration of the CG solver. The names of the files fit the following wildcard *_cg_convergence.csv. More... | |
Public Attributes inherited from Constants::Physics | |
| const double | pi |
| The ratio between the circumference and the diameter of any circle, \(\pi\). More... | |
| const double | c = 299792458.0 |
| The speed of light in free space, \(c\). | |
| const double | permeability_fs = 4.0 * pi * 1.0e-7 |
| The permeability of the free space, \(\mu_0\). | |
| const double | permittivity_fs = 1.0 / (std::pow(c, 2) * permeability_fs) |
| The permittivity of the free space, \(\epsilon_0\). | |
Protected Attributes inherited from StaticScalarSolver::Solver< dim, stage > | |
| std::map< types::boundary_id, const Function< dim > * > | dirichlet_stack |
| A map that contains pairs of boundary IDs and the corresponding Dirichlet boundary conditions. More... | |
| Triangulation< dim > | triangulation |
| The mesh. | |
| const FE_Q< dim > | fe |
| The finite elements. | |
| DoFHandler< dim > | dof_handler |
| The degrees-of-freedom handler. | |
| Vector< double > | solution |
| The solution vector, i.e., degrees of freedom yielded by the simulation. | |
| Vector< double > | projected_exact_solution |
| The projected exact solution vector. | |
| AffineConstraints< double > | constraints |
| The constraints associated with the Dirichlet boundary conditions. | |
| SparsityPattern | sparsity_pattern |
| The sparsity pattern of the system matrix. | |
| SparseMatrix< double > | system_matrix |
| The system matrix. | |
| Vector< double > | system_rhs |
| The system right-hand side vector. | |
| double | L2_norm |
| The \(L^2\) error norm. | |
| double | Linfty_norm |
| The \(L^{\infty}\) error norm. | |
| double | H1_norm |
| The \(H^1\) error semi-norm. | |
Implements the solver of the Method of manufactured solutions (mms/) numerical experiment.
Definition at line 30 of file solver.hpp.
|
inline |
The constructor.
| [in] | p | - The degree of the interpolating polynomials of the Lagrange finite elements, FE_Q. |
| [in] | mapping_degree | - The degree of the interpolating polynomials used for mapping. |
| [in] | r | - The parameter that encodes the degree of mesh refinement. Must coincide with one of the values set in mms/gmsh/build. This parameter is used to compose the name of the mesh file to be uploaded from mms/gmsh/data/. |
| [in] | fname | - The name of the vtk file without extension to save the data. |
Definition at line 52 of file solver.hpp.