Computational Conformal Geometry Library - CCGL
CCGL logo

Introduction

Getting CCGL
    Download
    Installation


Development Guide
    Architecture
    Performance


Gallery
    Snapshots
    Movies

Mesh Data Structure
    Viewer

Topology
    Cut Graph
    Slicer
    Double Cover
    Homology Basis

Conformal Maps
    Harmonic Map
    Spherical Harmonic Map
    LSCM

Holomorphic 1-Form
    Integration
    Harmonic 1-Form
    Holomorphic 1-Form
    Slit Map

Curvature Flow
    Euclidean Ricci Flow
    Poly Annulus Ricci Flow
    Hyperbolic Ricci Flow
    Yamabe Flow

Documentation
    Reference Book

Acknowledgements
Hyperbolic Ricci Flow

heads
heads
heads
heads
face.nf25k.m
face.nf25k.open.m
face.nf25k.pos.m
face.nf25k.uv.m
heads
heads
heads
heads
face.2cut.m
face.2cut.open.m
face.2cut.pos.m
face.2cut.uv.m
heads
heads
heads
heads
eight.m
eight.open.m
eight.pos.m
eight.uv.m

Algorithm Description

Compute hyperbolic metrics of meshes with negative Euler numbers. If the surfaces are with boundaries, then the boundaries are mapped to hyperbolic lines, namely the curvature of boundary vertices are also zeros.

Input and output

The input meshes are

  • A mesh with negative Euler number, e.g. face.nf25k.m.
  • A fundamental domain of the mesh, e.g. face.nf25k.open.m.


heads
heads
The output is the mesh with uv coordinates,
  • mesh with uv coordinates, which is the isometric embedding of the fundamental domain in Poincare disk, induced by the hyperbolic metric face.nf25k.uv.m.
The univeral covering space of the input mesh equipped with the hyperbolic metric can be isometrically embedded on the Pioncare disk, the fundamental domains form a tessellation of the Poincare disk as shown in the above figure.

Convergence, Stability and Efficiency

The computational process is stable and converges fast.

Example

   The input face mesh has 25k faces, 3 boundaries. The computational time is about 8 seconds on a PC with 3.0 GB of RAM, 3.60 GHz CPU. The data set can be downloaded. Please contact David Gu for the source code.

Command

  1. Compute the cut graph:

    cutgraph.exe eight.m eight.cut.m

  2. Compute the fundamental domain:

    slice eight.cut.m eight.open.m
  3. Compute the hyperbolic metric:

    hyperbolic_ricci_flow.exe eight.m eight.open.m eight.uv.m
    The output is

    eight.uv.m
For face meshes, the cut graph can be computed using slitmap.exe.