GooseFEM 1.4.1.dev2+g78f16df
Loading...
Searching...
No Matches
GooseFEM::MatrixPartitionedSolver< Solver > Class Template Reference

Solve \( x_u = A_{uu}^{-1} (b_u - A_{up} * x_p) \) for A of the MatrixPartitioned() class. More...

#include <GooseFEM/MatrixPartitioned.h>

Inheritance diagram for GooseFEM::MatrixPartitionedSolver< Solver >:

Public Member Functions

template<class M >
array_type::tensor< double, 1 > Solve_u (M &A, const array_type::tensor< double, 1 > &b_u, const array_type::tensor< double, 1 > &x_p)
 Solve \( x = A^{-1} b \).
 
template<class M >
void solve_u (M &A, const array_type::tensor< double, 1 > &b_u, const array_type::tensor< double, 1 > &x_p, array_type::tensor< double, 1 > &x_u)
 Same as Solve \( x = A^{-1} b \).
 

Detailed Description

template<class Solver = Eigen::SimplicialLDLT<Eigen::SparseMatrix<double>>>
class GooseFEM::MatrixPartitionedSolver< Solver >

Solve \( x_u = A_{uu}^{-1} (b_u - A_{up} * x_p) \) for A of the MatrixPartitioned() class.

You can solve for multiple right-hand-sides using one factorisation.

For "nodevec" input x is used to read \( x_p \), while \( x_u \) is written. See MatrixPartitioned::Reaction() to get \( b_p \).

Definition at line 526 of file MatrixPartitioned.h.

Member Function Documentation

◆ Solve_u()

template<class Solver = Eigen::SimplicialLDLT<Eigen::SparseMatrix<double>>>
template<class M >
array_type::tensor< double, 1 > GooseFEM::MatrixPartitionedSolver< Solver >::Solve_u ( M & A,
const array_type::tensor< double, 1 > & b_u,
const array_type::tensor< double, 1 > & x_p )
inline

Solve \( x = A^{-1} b \).

Parameters
AGooseFEM (sparse) matrix, see e.g. GooseFEM::MatrixPartitioned().
b_uunknown dofval [nnu].
x_pprescribed dofval [nnp]
Returns
x_u unknown dofval [nnu].

Definition at line 545 of file MatrixPartitioned.h.

◆ solve_u()

template<class Solver = Eigen::SimplicialLDLT<Eigen::SparseMatrix<double>>>
template<class M >
void GooseFEM::MatrixPartitionedSolver< Solver >::solve_u ( M & A,
const array_type::tensor< double, 1 > & b_u,
const array_type::tensor< double, 1 > & x_p,
array_type::tensor< double, 1 > & x_u )
inline

Same as Solve \( x = A^{-1} b \).

Parameters
AGooseFEM (sparse) matrix, see e.g. GooseFEM::MatrixPartitioned().
b_uunknown dofval [nnu].
x_pprescribed dofval [nnp]
x_u(overwritten) unknown dofval [nnu].

Definition at line 568 of file MatrixPartitioned.h.


The documentation for this class was generated from the following file: