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

CRTP base class for a partitioned matrix with tying. More...

#include <GooseFEM/MatrixDiagonal.h>

Public Types

using derived_type = D
 Underlying type.
 

Public Member Functions

array_type::tensor< double, 2 > Solve (const array_type::tensor< double, 2 > &b)
 Solve \( x = A^{-1} b \).
 
array_type::tensor< double, 1 > Solve (const array_type::tensor< double, 1 > &b)
 Solve \( x = A^{-1} b \).
 
void solve (const array_type::tensor< double, 2 > &b, array_type::tensor< double, 2 > &x)
 Solve \( x = A^{-1} b \).
 
void solve (const array_type::tensor< double, 1 > &b, array_type::tensor< double, 1 > &x)
 Solve \( x = A^{-1} b \).
 

Detailed Description

template<class D>
class GooseFEM::MatrixDiagonalBase< D >

CRTP base class for a partitioned matrix with tying.

Definition at line 22 of file MatrixDiagonal.h.

Member Typedef Documentation

◆ derived_type

template<class D >
using GooseFEM::MatrixDiagonalBase< D >::derived_type = D

Underlying type.

Definition at line 27 of file MatrixDiagonal.h.

Member Function Documentation

◆ Solve() [1/2]

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

For GooseFEM::MatrixDiagonalPartitioned under the hood solved \( x_u = A_{uu}^{-1} (b_u - A_{up} * x_p) \equiv A_{uu}^{-1} b_u \). Use GooseFEM::MatrixDiagonalPartitioned::Reaction() to get reaction forces.

Parameters
bdofval [ndof].
Returns
x dofval [ndof].

Definition at line 70 of file MatrixDiagonal.h.

◆ solve() [1/2]

template<class D >
void GooseFEM::MatrixDiagonalBase< D >::solve ( const array_type::tensor< double, 1 > & b,
array_type::tensor< double, 1 > & x )
inline

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

For GooseFEM::MatrixDiagonalPartitioned under the hood solved \( x_u = A_{uu}^{-1} (b_u - A_{up} * x_p) \equiv A_{uu}^{-1} b_u \). Use GooseFEM::MatrixDiagonalPartitioned::Reaction() to get reaction forces.

Parameters
bnodevec [nelem, ndim].
x(overwritten) nodevec [nelem, ndim].

Definition at line 102 of file MatrixDiagonal.h.

◆ Solve() [2/2]

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

Note that this does not involve a conversion to DOFs.

In case of GooseFEM::MatrixDiagonalPartitioned under the hood, schematically: \( x_u = A_{uu}^{-1} (b_u - A_{up} * x_p) \equiv A_{uu}^{-1} b_u \) (again, no conversion to DOFs is needed). Use GooseFEM::MatrixDiagonalPartitioned::Reaction() to get reaction forces.

Parameters
bnodevec [nelem, ndim].
Returns
x nodevec [nelem, ndim].

Definition at line 53 of file MatrixDiagonal.h.

◆ solve() [2/2]

template<class D >
void GooseFEM::MatrixDiagonalBase< D >::solve ( const array_type::tensor< double, 2 > & b,
array_type::tensor< double, 2 > & x )
inline

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

For GooseFEM::MatrixDiagonalPartitioned under the hood solved \( x_u = A_{uu}^{-1} (b_u - A_{up} * x_p) \equiv A_{uu}^{-1} b_u \). Use GooseFEM::MatrixDiagonalPartitioned::Reaction() to get reaction forces.

Parameters
bnodevec [nelem, ndim].
x(overwritten) nodevec [nelem, ndim].

Definition at line 87 of file MatrixDiagonal.h.


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