template<typename SPARSITYPATTERN, typename MATRIX, typename VECTOR>
class DOpE::DirectLinearSolverWithMatrix< SPARSITYPATTERN, MATRIX, VECTOR >
This class provides a linear solve for the nonlinear solvers of DOpE. Here we interface to the UMFPACK-Solver provided via dealii The use of this function requires that dealii is compiled with UMFPACK
- Template Parameters
-
<SPARSITYPATTERN> | The sparsity pattern for the matrix |
<MATRIX> | The matrix type that is used for the storage of the system_matrix |
<VECTOR> | The vector type for the solution and righthandside data, |
template<typename SPARSITYPATTERN , typename MATRIX , typename VECTOR >
template<typename PROBLEM >
This Function should be called once after grid refinement, or changes in boundary values to recompute sparsity patterns, and constraint matrices.
template<typename SPARSITYPATTERN , typename MATRIX , typename VECTOR >
template<typename PROBLEM , typename INTEGRATOR >
void DOpE::DirectLinearSolverWithMatrix< SPARSITYPATTERN, MATRIX, VECTOR >::Solve |
( |
PROBLEM & |
pde, |
|
|
INTEGRATOR & |
integr, |
|
|
VECTOR & |
rhs, |
|
|
VECTOR & |
solution, |
|
|
bool |
force_matrix_build = false |
|
) |
| |
Solves the linear PDE in the form Ax = b using dealii::SparseDirectUMFPACK
- Template Parameters
-
<PROBLEM> | The problem that we want to solve, this is passed on to the INTEGRATOR to calculate the matrix. |
<INTEGRATOR> | The integrator used to calculate the matrix A. |
- Parameters
-
rhs | Right Hand Side of the Equation, i.e., the VECTOR b. Note that rhs is not const, this is because we need to apply the boundary values to this vector! |
solution | The Approximate Solution of the Linear Equation. It is assumed to be zero! Upon completion this VECTOR stores x |
force_build_matrix | A boolean value, that indicates whether the Matrix should be build by the linear solver in the first iteration. The default is false, meaning that if we have no idea we don't want to build a matrix. |