feec.hodge#
Classes#

|
Change of basis operator: dual basis -> primal basis |
Details#
- class HodgeOperator(Vh, domain_h, metric='identity', backend_language='python')[source]#
Bases:
object
Change of basis operator: dual basis -> primal basis
self._linop: matrix (LinearOperator) of the primal Hodge = this is the mass matrix ! self.dual_linop: this is the INVERSE mass matrix (LinearOperator)
- Parameters:
- Vh: <FemSpace>
The discrete space
- domain_h: <Geometry>
The discrete domain of the projector
- metric<str>
the metric of the de Rham complex
- backend_language: <str>
The backend used to accelerate the code
Notes
We only support the identity metric, this implies that the dual Hodge is the inverse of the primal one. # todo: allow for non-identity metrics
- assemble_matrix()[source]#
the Hodge matrix is the patch-wise multi-patch mass matrix it is not stored by default but assembled on demand
- assemble_dual_matrix(solver='cg', **kwargs)[source]#
the dual Hodge matrix is the patch-wise inverse of the multi-patch mass matrix it is not stored by default but computed on demand, by approximate local (patch-wise) inversion of the mass matrix
- property linop#
- property dual_linop#
- property hodge#
- property dual_hodge#