DGtal 1.3.0
|
Part of package DEC package.
In this documentation page, we focus on an implementation of the "Vector Heat method" ([109]). The main objective is to highlight the use of differential operators from Discrete differential calculus on polygonal surfaces to solve elementary PDEs on intrinsic vector fields.
Use example can be find at exampleVectorHeatMethod.cpp example file.
CMAKE_BUILD_TYPE
variable) for high performance on large geometrical objects.The algorithm consists in solving three linear systems (see [109] for details):
The computation involves discrete differential operator definitions (Connection Laplace and standard Laplace-Beltrami) as well as linear solvers on sparse matrices. We do not go into the details of the discretization, please have a look to the paper if interested.
The class VectorsInHeat contains the implementation of the Vector Heat method. It relies on the PolygonalCalculus class for the differential operators (Discrete differential calculus on polygonal surfaces).
First, we need to instantiate the VectorsInHeat class from an instance of PolygonalCalculus:
Then, we can prefactorized the solvers for a given a timestep \( dt\):
Once prefactorized, we can add as many sources as we want using the method:
The resulting interpolating vector field is obtained by:
From exampleVectorHeatMethod.cpp code on a digital surface and a generic polygonal one.
Input | Result | Multiple Inputs | Result |
---|---|---|---|