feec.hodge#

Classes#

Inheritance diagram of psydac.feec.hodge

HodgeOperator(Vh, domain_h[, metric, ...])

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#