manifolds-0.2.3.0: Coordinate-free hypersurfaces

Copyright(c) Justus Sagemüller 2016
LicenseGPL v3
Maintainer(@) sagemueller $ geo.uni-koeln.de
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Data.Manifold.Web

Contents

Description

 

Synopsis

The web data type

data PointsWeb :: * -> * -> * Source

A PointsWeb is almost, but not quite a mesh. It is a stongly connected† directed graph, backed by a tree for fast nearest-neighbour lookup of points.

†In general, there can be disconnected components, but every connected component is strongly connected.

Construction

fromWebNodes :: forall x y. WithField Manifold x => MetricChoice x -> [(x, y)] -> PointsWeb x y Source

fromShadeTree :: forall x. WithField Manifold x => (Shade x -> Metric x) -> ShadeTree x -> PointsWeb x () Source

fromShaded Source

Arguments

:: WithField Manifold x 
=> MetricChoice x

Local scalar-product generator. You can always use recipMetric . _shadeExpanse (but this may give distortions compared to an actual Riemannian metric).

-> (x `Shaded` y)

Source tree.

-> PointsWeb x y 

Lookup

nearestNeighbour :: WithField Manifold x => PointsWeb x y -> x -> Option (x, y) Source

indexWeb :: WithField Manifold x => PointsWeb x y -> WebNodeId -> Option (x, y) Source

webEdges :: forall x y. WithField Manifold x => PointsWeb x y -> [((x, y), (x, y))] Source

Decomposition

sliceWeb_lin :: forall x y. (WithField Manifold x, Geodesic x, Geodesic y) => PointsWeb x y -> Cutplane x -> [(x, y)] Source

Fetch a point between any two neighbouring web nodes on opposite sides of the plane, and linearly interpolate the values onto the cut plane.

Local environments

localFocusWeb :: WithField Manifold x => PointsWeb x y -> PointsWeb x ((x, y), [(Needle x, y)]) Source

Differential equations

Fixed resolution

Automatic resolution

filterDEqnSolutions_adaptive Source

Arguments

:: (WithField Manifold x, Refinable y, badness ~ ) 
=> MetricChoice x

Scalar product on the domain, for regularising the web.

-> DifferentialEqn x y 
-> (x -> Shade' y -> badness) 
-> PointsWeb x (SolverNodeState y) 
-> Option (PointsWeb x (SolverNodeState y)) 

iterateFilterDEqn_adaptive Source

Arguments

:: (WithField Manifold x, Refinable y) 
=> MetricChoice x

Scalar product on the domain, for regularising the web.

-> DifferentialEqn x y 
-> (x -> Shade' y -> )

Badness function for local results.

-> PointsWeb x (Shade' y) 
-> [PointsWeb x (Shade' y)] 

Misc

data ConvexSet x Source

Constructors

EmptyConvex 
ConvexSet 

Fields

convexSetHull :: Shade' x

If p is in all intersectors, it must also be in the hull.

convexSetIntersectors :: [Shade' x]
 

Instances

Refinable x => Semigroup (ConvexSet x) Source

Under intersection.