Basilisk CFD
Adaptive Cartesian mesh PDE framework
Loading...
Searching...
No Matches
hessenberg.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

static void givens (double x, double y, double *c, double *s)
 
void solve_hessenberg (double H[nl *nl], double x[nl])
 

Function Documentation

◆ givens()

static void givens ( double  x,
double  y,
double c,
double s 
)
inlinestatic

A solver for Hessenberg systems

An Hessenberg matrix is an "almost triangular" matrix i.e. the sum of a triangular matrix and a tridiagonal matrix.

The function below solves \(Hx=b\) where \(H\) is an upper Hessenberg matrix of rank \(n\). The right-hand side \(b\) is given as vector \(x\) and is replaced by the solution. \(H\) is given as a one dimensional array where each matrix element is indexed as \(H_{ij} = H[in+j]\).

References

@book{henry1994,
title={The shifted Hessenberg system solve computation},
author={Henry, Greg},
year={1994},
publisher={Cornell Theory Center, Cornell University},
url={https://pdfs.semanticscholar.org/df75/8d16317f246ac4049a1569b6f56510a4add7.pdf}
}

Definition at line 29 of file hessenberg.h.

References c, s, sign2(), sq(), t, x, and y.

Referenced by solve_hessenberg().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ solve_hessenberg()

void solve_hessenberg ( double  H[nl *nl],
double  x[nl] 
)

Definition at line 54 of file hessenberg.h.

References a, c, givens(), i, k, l, nl, s, v, and x.

Referenced by relax_nh().

Here is the call graph for this function:
Here is the caller graph for this function: