|
HybridADRSolver
|
Concrete implementation of a steady-state Advection-Diffusion-Reaction problem. More...
#include <problem_definition.h>


Public Member Functions | |
| ADRProblem () | |
| double | diffusion_coefficient (const Point< dim > &) const override |
| Constant diffusion coefficient \( \mu = 1.0 \). | |
| double | reaction_coefficient (const Point< dim > &) const override |
| Constant reaction coefficient \( \gamma = 0.1 \). | |
| Tensor< 1, dim > | advection_field (const Point< dim > &p) const override |
| Rotational advection field. 2D: \( \beta = (-y, x)^T \) 3D: \( \beta = (-y, x, 0.1)^T \). | |
| double | source_term (const Point< dim > &p) const override |
| Computes the source term \( f \) using the Method of Manufactured Solutions. | |
| std::set< types::boundary_id > | get_dirichlet_ids () const override |
| Defines Dirichlet boundaries. All boundaries except Right (ID 1) are Dirichlet (0, 2, 3, 4, 5). | |
| std::set< types::boundary_id > | get_neumann_ids () const override |
| Defines Neumann boundaries. Only the Right boundary (ID 1) is Neumann. | |
| const Function< dim > & | get_dirichlet_function (types::boundary_id) const override |
| Returns zero function for Dirichlet BCs. | |
| const Function< dim > & | get_neumann_function (const types::boundary_id id) const override |
| Returns analytic flux for Neumann BCs. | |
| bool | has_exact_solution () const override |
| Checks if an analytical exact solution is available. | |
| const Function< dim > & | get_exact_solution () const override |
| Returns the exact solution function object (if available). | |
| bool | is_symmetric () const override |
| Problem is non-symmetric due to advection term. | |
| std::string | get_name () const override |
| Returns a descriptive name of the problem. | |
| Public Member Functions inherited from HybridADRSolver::ProblemInterface< dim > | |
| virtual | ~ProblemInterface ()=default |
Concrete implementation of a steady-state Advection-Diffusion-Reaction problem.
Solves: \( -\mu \Delta u + \mathbf{\beta} \cdot \nabla u + \gamma u = f \)
Domain: Unit Hypercube \( [0,1]^d \). BCs: Neumann on Right face (ID 1), Homogeneous Dirichlet elsewhere.
|
inline |
|
inlineoverridevirtual |
Rotational advection field. 2D: \( \beta = (-y, x)^T \) 3D: \( \beta = (-y, x, 0.1)^T \).
Implements HybridADRSolver::ProblemInterface< dim >.
|
inlineoverridevirtual |
Constant diffusion coefficient \( \mu = 1.0 \).
Implements HybridADRSolver::ProblemInterface< dim >.
|
inlineoverridevirtual |
Returns zero function for Dirichlet BCs.
Implements HybridADRSolver::ProblemInterface< dim >.
|
inlinenodiscardoverridevirtual |
Defines Dirichlet boundaries. All boundaries except Right (ID 1) are Dirichlet (0, 2, 3, 4, 5).
Implements HybridADRSolver::ProblemInterface< dim >.
|
inlineoverridevirtual |
Returns the exact solution function object (if available).
Implements HybridADRSolver::ProblemInterface< dim >.
|
inlinenodiscardoverridevirtual |
Returns a descriptive name of the problem.
Implements HybridADRSolver::ProblemInterface< dim >.
|
inlineoverridevirtual |
Returns analytic flux for Neumann BCs.
Implements HybridADRSolver::ProblemInterface< dim >.
|
inlinenodiscardoverridevirtual |
Defines Neumann boundaries. Only the Right boundary (ID 1) is Neumann.
Implements HybridADRSolver::ProblemInterface< dim >.
|
inlinenodiscardoverridevirtual |
Checks if an analytical exact solution is available.
Implements HybridADRSolver::ProblemInterface< dim >.
|
inlinenodiscardoverridevirtual |
Problem is non-symmetric due to advection term.
Implements HybridADRSolver::ProblemInterface< dim >.
|
inlineoverridevirtual |
Constant reaction coefficient \( \gamma = 0.1 \).
Implements HybridADRSolver::ProblemInterface< dim >.
|
inlineoverridevirtual |
Computes the source term \( f \) using the Method of Manufactured Solutions.
\( f = -\mu \Delta u + \mathbf{\beta} \cdot \nabla u + \gamma u \)
where \( u \) is the ExactSolution.
Implements HybridADRSolver::ProblemInterface< dim >.