# dec_h2_intrinsic

## `dec_h2_intrinsic(l_sq, F)`

Builds the DEC 2-Hodge-star operator as described, for example, in Crane et al. 2013. "Digital Geometry Processing with Discrete Exterior Calculus".

Parameters:

Name Type Description Default
`l_sq` `(m,3) numpy array`

squared halfedge lengths as computed by halfedge_lengths_squared

required
`F` `(m,3) numpy int array`

face index list of a triangle mesh

required

Returns:

Name Type Description
`h2` `(n,n) scipy csr_matrix`

DEC operator h2

Examples:

``````# Mesh in V,F
l_sq = gpy.halfedge_lengths_squared(V,F)
h2 = gpy.dec_h2_intrinsic(l_sq,F)
``````
Source code in `src/gpytoolbox/dec_h2_intrinsic.py`
 ``` 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36``` ``````def dec_h2_intrinsic(l_sq,F): """Builds the DEC 2-Hodge-star operator as described, for example, in Crane et al. 2013. "Digital Geometry Processing with Discrete Exterior Calculus". Parameters ---------- l_sq : (m,3) numpy array squared halfedge lengths as computed by halfedge_lengths_squared F : (m,3) numpy int array face index list of a triangle mesh Returns ------- h2 : (n,n) scipy csr_matrix DEC operator h2 Examples -------- ```python # Mesh in V,F l_sq = gpy.halfedge_lengths_squared(V,F) h2 = gpy.dec_h2_intrinsic(l_sq,F) ``` """ assert F.shape[1] == 3 A = 0.5 * doublearea_intrinsic(l_sq,F) h2 = sp.sparse.diags(A, shape=(F.shape[0],F.shape[0]), format='csr') return h2 ``````