romtools.vector_space.utils.orthogonalizer#
An orthogonalizer is used to orthogonalize a basis at the end of the construction of a vector space. Specifically, given a basis
the orthogonalizer will compute a new, orthogonalized basis \(\boldsymbol \Phi_{\ast}\) where
In the above, \(\mathbf{W}\) is a weighting matrix (typically the cell volumes).
Classes
|
Orthogonalizes the basis in the standard Euclidean L2 inner product, i.e., the output basis will satisfy |
Orthogonalizes the basis in an SPD matrix-weighted Euclidean L2 inner product, i.e., the output basis will satisfy |
|
Orthogonalizes the basis in vector-weighted Euclidean L2 inner product, i.e., the output basis will satisfy |
|
No op class (doesn't do anything) |
|
|
Interface for the Orthogonalizer class. |
- class romtools.vector_space.utils.orthogonalizer.EuclideanL2Orthogonalizer(qrFnc=None)[source]#
Bases:
objectOrthogonalizes the basis in the standard Euclidean L2 inner product, i.e., the output basis will satisfy
\[\boldsymbol \Phi_{\ast}^T \boldsymbol \Phi_{\ast} = \mathbf{I}.\]This class conforms to the
Orthogonalizerprotocol.
- class romtools.vector_space.utils.orthogonalizer.EuclideanMatrixWeightedL2Orthogonalizer(weighting_matrix, qrFnc=None)[source]#
Bases:
objectOrthogonalizes the basis in an SPD matrix-weighted Euclidean L2 inner product, i.e., the output basis will satisfy
\[\boldsymbol \Phi_{\ast}^T \mathbf{M}\boldsymbol \Phi_{\ast} = \mathbf{I},\]where \(\mathbf{M}\) is the SPD weighting matrix. Typically, this inner product is used for orthogonalizing with respect to a mass matrix
This class conforms to the
Orthogonalizerprotocol.- Parameters:
weighting_matrix (ndarray)
- class romtools.vector_space.utils.orthogonalizer.EuclideanVectorWeightedL2Orthogonalizer(weighting_vector, qrFnc=None)[source]#
Bases:
objectOrthogonalizes the basis in vector-weighted Euclidean L2 inner product, i.e., the output basis will satisfy
\[\boldsymbol \Phi_{\ast}^T \mathrm{diag}(\mathbf{w})\boldsymbol \Phi_{\ast} = \mathbf{I},\]where \(\mathbf{w}\) is the weighting vector. Typically, this inner product is used for orthogonalizing with respect to cell volumes
This class conforms to the
Orthogonalizerprotocol.- Parameters:
weighting_vector (ndarray)
- class romtools.vector_space.utils.orthogonalizer.NoOpOrthogonalizer[source]#
Bases:
objectNo op class (doesn’t do anything)
This class conforms to the
Orthogonalizerprotocol.