hippylibX.algorithms package
Submodules
hippylibX.algorithms.NewtonCG module
hippylibX.algorithms.cgsolverSteihaug module
hippylibX.algorithms.linalg module
hippylibX.algorithms.lowRankOperator module
hippylibX.algorithms.multivector module
- hippylibX.algorithms.multivector.MatMvMult(A: petsc4py.PETSc.Mat, x: MultiVector, y: MultiVector) None[source]
- hippylibX.algorithms.multivector.MatMvTranspmult(A: petsc4py.PETSc.Mat, x: MultiVector, y: MultiVector) None[source]
- class hippylibX.algorithms.multivector.MultiVector(example_vec: petsc4py.PETSc.Vec, nvec: int)[source]
Bases:
objectMultivector object is created as a list of PETSc.petsc4py.Vec objects.
- Borthogonalize(B: petsc4py.PETSc.Mat)[source]
Returns \(QR\) decomposition of self. \(Q\) and \(R\) satisfy the following relations in exact arithmetic
\[ \begin{align}\begin{aligned}QR \,= \,Z, && (1),\\Q^*BQ\, = \, I, && (2),\\Q^*BZ \, = \,R, && (3),\\ZR^{-1} \, = \, Q, && (4).\end{aligned}\end{align} \]Returns:
Bqof typeMultiVector->B\(^{-1}\)-orthogonal vectorsrof typendarray-> The \(r\) of the QR decomposition.Note
selfis overwritten by \(Q\).
- _mgs_stable(B: petsc4py.PETSc.Mat) tuple[Type[MultiVector], numpy.array][source]
Returns \(QR\) decomposition of self, which satisfies conditions (1)–(4). Uses Modified Gram-Schmidt with re-orthogonalization (Rutishauser variant) for computing the \(B\)-orthogonal \(QR\) factorization.
- References:
A.K. Saibaba, J. Lee and P.K. Kitanidis, Randomized algorithms for Generalized Hermitian Eigenvalue Problems with application to computing Karhunen-Loe’ve expansion http://arxiv.org/abs/1307.6885
W. Gander, Algorithms for the QR decomposition. Res. Rep, 80(02), 1980
- axpy(alpha: float | numpy.array, Y: Type[MultiVector]) None[source]
Reduction of MultiVector object with a float or values in a numpy array stored in another MultiVector object.
- classmethod createFromMultiVec(mv: Type[MultiVector]) Type[MultiVector][source]
Create multivector from another MultiVector whose parallel distribution is to be replicated.
- classmethod createFromVec(example_vec: petsc4py.PETSc.Vec, nvec: int) Type[MultiVector][source]
Create multivector from sample petsc4py vector whose parallel distribution is to be replicated.
- dot(v: petsc4py.PETSc.Vec | Type[MultiVector]) numpy.array[source]
Perform dot product of a MultiVector object and petsc4py Vec object, store result in numpy array.
- norm(norm_type: petsc4py.PETSc.NormType) numpy.array[source]
Return numpy array containing norm of each data element of MultiVector.
- hippylibX.algorithms.multivector.MvDSmatMult(X: MultiVector, A: numpy.array, Y: MultiVector) None[source]