|
Matrix Free Solver 1.0.0
A matrix free solver for the Advection Diffusion Reaction problem implemented with deal.II
|
Class managing the differential problem. More...
#include <DTR.hpp>
Classes | |
| class | DiffusionCoefficient |
| class | DirichletBC1 |
| class | DirichletBC2 |
| class | ExactSolution |
| class | ForcingTerm |
| class | NeumannBC1 |
| class | NeumannBC2 |
| class | ReactionCoefficient |
| class | TransportCoefficient |
Public Member Functions | |
| DTR (const unsigned int &r_, std::ofstream &dimension_time_file) | |
| Constructor with a file stream for timing information. | |
| DTR (const unsigned int &r_) | |
| Constructor without a file stream for timing information. | |
| void | setup (unsigned int n_initial_refinements=8) |
| Initialization of the system. | |
| void | assemble () |
| Assembly of the system matrix and right-hand side vector. | |
| void | solve () |
| Solution of the linear system. | |
| void | output () const |
| Output of the solution to a file. | |
| double | compute_error (const VectorTools::NormType &norm_type) const |
| Compute the error of the solution. | |
| DTR (const unsigned int &r_, std::ofstream &dimension_time_file) | |
| DTR (const unsigned int &r_) | |
| void | setup (unsigned int n_initial_refinements=8) |
| void | assemble () |
| void | solve () |
| void | output () const |
| double | compute_error (const VectorTools::NormType &norm_type) const |
Static Public Attributes | |
| static constexpr unsigned int | dim = 2 |
| Physical dimension (1D, 2D, 3D) | |
Protected Attributes | |
| const std::string | mesh_file_name |
| Path to the mesh file. | |
| const unsigned int | r |
| Polynomial degree. | |
| const unsigned int | mpi_size |
| Number of MPI processes. | |
| const unsigned int | mpi_rank |
| Rank of this MPI process. | |
| problem_data::DiffusionCoefficient< dim > | diffusion_coefficient |
| Diffusion coefficient. | |
| problem_data::ReactionCoefficient< dim > | reaction_coefficient |
| Reaction coefficient. | |
| problem_data::TransportCoefficient< dim > | transport_coefficient |
| Transport coefficient. | |
| problem_data::ForcingTerm< dim > | forcing_term |
| Forcing term. | |
| problem_data::DirichletBC1< dim > | dirichletBC1 |
| Dirichlet boundary conditions for the left and bottom boundaries. | |
| problem_data::DirichletBC2< dim > | dirichletBC2 |
| Dirichlet boundary conditions for the right and top boundaries. | |
| problem_data::NeumannBC1< dim > | neumannBC1 |
| Neumann boundary conditions for the right and top boundaries. | |
| problem_data::NeumannBC2< dim > | neumannBC2 |
| Neumann boundary conditions for the left and bottom boundaries. | |
| parallel::fullydistributed::Triangulation< dim > | mesh |
| Triangulation object for managing the mesh. | |
| std::unique_ptr< FiniteElement< dim > > | fe |
| Finite element space. | |
| std::unique_ptr< Quadrature< dim > > | quadrature |
| Quadrature formula for integration. | |
| std::unique_ptr< Quadrature< dim - 1 > > | quadrature_boundary |
| Quadrature formula for boundary integration. | |
| DoFHandler< dim > | dof_handler |
| DoF handler for managing degrees of freedom. | |
| TrilinosWrappers::SparseMatrix | system_matrix |
| System matrix. | |
| TrilinosWrappers::MPI::Vector | system_rhs |
| System right-hand side vector. | |
| TrilinosWrappers::MPI::Vector | solution |
| Solution vector. | |
| ConditionalOStream | pcout |
| Parallel output stream. | |
| ConditionalOStream | time_details |
| Output stream for timing details. | |
| IndexSet | locally_owned_dofs |
| Index set for locally owned degrees of freedom. | |
| double | setup_time |
| Time taken for setup. | |
| DiffusionCoefficient | diffusion_coefficient |
| ReactionCoefficient | reaction_coefficient |
| TransportCoefficient | transport_coefficient |
| ForcingTerm | forcing_term |
| DirichletBC1 | dirichletBC1 |
| DirichletBC2 | dirichletBC2 |
| NeumannBC1 | neumannBC1 |
| NeumannBC2 | neumannBC2 |
Class managing the differential problem.
This class handles the setup, assembly, solution, and output of a differential problem using the deal.II library. It supports parallel computation using MPI.
Class managing the differential problem.
| DTR::DTR | ( | const unsigned int & | r_, |
| std::ofstream & | dimension_time_file ) |
Constructor with a file stream for timing information.
| r_ | Polynomial degree of the finite element basis functions. |
| dimension_time_file | Output file stream for logging timing information. |
| DTR::DTR | ( | const unsigned int & | r_ | ) |
Constructor without a file stream for timing information.
| r_ | Polynomial degree of the finite element basis functions. |
|
inline |
|
inline |
| void DTR::assemble | ( | ) |
Assembly of the system matrix and right-hand side vector.
| void DTR::assemble | ( | ) |
| double DTR::compute_error | ( | const VectorTools::NormType & | norm_type | ) | const |
Compute the error of the solution.
This function computes the error of the numerical solution with respect to an exact solution.
| norm_type | The type of norm to use for error computation. |
| double DTR::compute_error | ( | const VectorTools::NormType & | norm_type | ) | const |
| void DTR::output | ( | ) | const |
Output of the solution to a file.
This function writes the solution to a VTK file for visualization.
| void DTR::output | ( | ) | const |
| void DTR::setup | ( | unsigned int | n_initial_refinements = 8 | ) |
Initialization of the system.
This function sets up the triangulation, DoF handler, and system matrices.
| n_initial_refinements | Number of initial mesh refinements. |
| void DTR::setup | ( | unsigned int | n_initial_refinements = 8 | ) |
| void DTR::solve | ( | ) |
Solution of the linear system.
| void DTR::solve | ( | ) |
|
protected |
Diffusion coefficient.
|
protected |
|
staticconstexpr |
Physical dimension (1D, 2D, 3D)
|
protected |
Dirichlet boundary conditions for the left and bottom boundaries.
|
protected |
|
protected |
Dirichlet boundary conditions for the right and top boundaries.
|
protected |
|
protected |
DoF handler for managing degrees of freedom.
|
protected |
Finite element space.
|
protected |
Forcing term.
|
protected |
|
protected |
Index set for locally owned degrees of freedom.
|
protected |
Triangulation object for managing the mesh.
|
protected |
Path to the mesh file.
|
protected |
Rank of this MPI process.
|
protected |
Number of MPI processes.
|
protected |
Neumann boundary conditions for the right and top boundaries.
|
protected |
|
protected |
Neumann boundary conditions for the left and bottom boundaries.
|
protected |
|
protected |
Parallel output stream.
|
protected |
Quadrature formula for integration.
|
protected |
Quadrature formula for boundary integration.
|
protected |
Polynomial degree.
|
protected |
Reaction coefficient.
|
protected |
|
protected |
Time taken for setup.
|
protected |
Solution vector.
|
protected |
System matrix.
|
protected |
System right-hand side vector.
|
protected |
Output stream for timing details.
|
protected |
Transport coefficient.
|
protected |