GooseFEM 1.4.1.dev2+g78f16df
|
Solver for MatrixPartitionedTyings(). More...
#include <GooseFEM/MatrixPartitionedTyings.h>
Public Member Functions | |
array_type::tensor< double, 1 > | Solve_u (MatrixPartitionedTyings &A, const array_type::tensor< double, 1 > &b_u, const array_type::tensor< double, 1 > &b_d, const array_type::tensor< double, 1 > &x_p) |
Same as Solve(MatrixPartitionedTyings&, const array_type::tensor<double, 2>&, const
array_type::tensor<double, 2>&), but with partitioned input and output. | |
void | solve_u (MatrixPartitionedTyings &A, const array_type::tensor< double, 1 > &b_u, const array_type::tensor< double, 1 > &b_d, const array_type::tensor< double, 1 > &x_p, array_type::tensor< double, 1 > &x_u) |
Same as Solve_u(MatrixPartitionedTyings&, const array_type::tensor<double, 1>&, const
array_type::tensor<double, 1>&, const array_type::tensor<double, 1>&), but writing to pre-allocated output. | |
Solver for MatrixPartitionedTyings().
This solver class can be used to solve for multiple right-hand-sides using one factorisation.
Solving proceeds as follows:
\( A' = A_{ii} + A_{id} * C_{di} + C_{di}^T * A_{di} + C_{di}^T * A_{dd} * C_{di} \)
\( b' = b_i + C_{di}^T * b_d \)
\( x_u = A'_{uu} \ ( b'_u - A'_{up} * x_p ) \)
\( x_i = \begin{bmatrix} x_u \\ x_p \end{bmatrix} \)
\( x_d = C_{di} * x_i \)
Definition at line 528 of file MatrixPartitionedTyings.h.
|
inline |
Same as Solve(MatrixPartitionedTyings&, const array_type::tensor<double, 2>&, const array_type::tensor<double, 2>&), but with partitioned input and output.
A | sparse matrix, see MatrixPartitionedTyings(). |
b_u | unknown dofval [nnu]. |
b_d | dependent dofval [nnd]. |
x_p | prescribed dofval [nnp] |
Definition at line 601 of file MatrixPartitionedTyings.h.
|
inline |
Same as Solve_u(MatrixPartitionedTyings&, const array_type::tensor<double, 1>&, const array_type::tensor<double, 1>&, const array_type::tensor<double, 1>&), but writing to pre-allocated output.
A | sparse matrix, see MatrixPartitionedTyings(). |
b_u | unknown dofval [nnu]. |
b_d | dependent dofval [nnd]. |
x_p | prescribed dofval [nnp] |
x_u | (overwritten) unknown dofval [nnu]. |
Definition at line 625 of file MatrixPartitionedTyings.h.