# Maths.Flow class

Namespace: [Grasshopper2](https://developer.rhino3d.com/api/gh2/namespace/grasshopper2.md) · Assembly: [Grasshopper2](https://developer.rhino3d.com/api/gh2/assembly/grasshopper2.md)

```cs
public static class Maths.Flow
```

## Methods

- [DeSinkQueue](https://developer.rhino3d.com/api/gh2/type/grasshopper2.maths.flow/desinkqueue.md): (static) Find all pooling properties of a mesh.
- [DrawArrow](https://developer.rhino3d.com/api/gh2/type/grasshopper2.maths.flow/drawarrow.md): (static)
- [MeshPerFaceFlow](https://developer.rhino3d.com/api/gh2/type/grasshopper2.maths.flow/meshperfaceflow.md): (static) RiR = Roof-in-the-rain A function that takes a mesh and computes a bunch of vectors, one for each face, signifying the amount of water trickling through each face, when the mesh is under a uniform rain from the positive Z axis, and water trickles straight down along the mesh in the steepest direction. For now, all naked edges are assumed to be permeable. Adding waterproof edges ("rain gutters") shouldn't be hard. Caution: Puddle locations don't yet work either, I think! Should be doable, though. Needs testing. Negative values might work, but don't seem to make sense.
- [PrepareForDesinking](https://developer.rhino3d.com/api/gh2/type/grasshopper2.maths.flow/preparefordesinking.md): (static) Duplicate and prepare a mesh for desinking.
- [PropagateOnLevels](https://developer.rhino3d.com/api/gh2/type/grasshopper2.maths.flow/propagateonlevels.md): (static)
- [Validate](https://developer.rhino3d.com/api/gh2/type/grasshopper2.maths.flow/validate.md): (static) Attempts to return a mesh that is suitable input for RiR-analysis:manifold; triangles only; fully welded; consistently rebuilt face normals, pointing upwards (in the positive Z-direction)Will throw if no such mesh can be found. Such a mesh will carry a flag in its user dictionary, and only flag carriers will be admitted to the MeshPerFaceFlow function.
