# Points

*A comprehensive guide to monitoring and analyzing flow properties at specific locations in the simulation domain using Points and Point Arrays.*

---

## Available Creation Methods

| *Type* | *Description* |
|--------|---------------|
| **Point** | Single monitoring location in 3D space |
| **Point array** | Multiple monitoring points along a straight line defined by its start and end points |

---

## Detailed Descriptions

### Point

*Defines a single monitoring location in three-dimensional space for tracking flow properties.*

Point Parameters:
- **Position:** Three-dimensional coordinates (x, y, z)

### Point array

*Creates an array of equally spaced points between start and end locations.*

Point array Parameters:

- **Start Position:** Three-dimensional coordinates (x, y, z)
- **End Position:** Three-dimensional coordinates (x, y, z) 
- **Number of Points:**  Integer > 2 

## Output Data

*Points and Point arrays provide access to flow field variables at their specified locations, allowing for detailed monitoring and analysis of local flow properties throughout the simulation.*

- Pressure
- Temperature
- Velocity components
- Density
- Turbulence quantities
- Vorticity
- Other solver-specific variables

```{note}
To monitor variables at points during a simulation, see [Probe Outputs](../02.simulation-setup/04.output/02.outputs-list/07.probe-outputs.md).
```

---

<details>
<summary><h3 style="display:inline-block"> ❓ Frequently Asked Questions</h3></summary>

- **Can points be placed outside the computational domain?**  
  > No, points must be positioned within the computational domain to provide valid results.

</details>

---

<details>
<summary><h3 style="display:inline-block"> 🐍 Python Example Usage</h3></summary>

```{seealso}
{py:class}`~flow360.Point`, {py:class}`~flow360.PointArray`, {py:class}`~flow360.PointArray2D`
```

```python
import flow360 as fl

# Create a single point at the leading edge
leading_edge_point = fl.Point(
    name="leading_edge",
    location=(1.0, 0.5, 0.0) * fl.u.m
)

# Create a point array for wake analysis
wake_profile = fl.PointArray(
    name="wake_profile",
    start=(0, 0, 0) * fl.u.m,
    end=(5, 0, 0) * fl.u.m,
    number_of_points=10
)
```
</details>
