```{index} single: Filters; Compute Twin Boundaries
```
# Find Twin Boundaries

## Group (Subgroup)

Statistics (Crystallographic)

## Description

This **Filter** identifies all **Triangles** between neighboring **Features** that have a &sigma; = 3 twin relationship.  The **Filter** uses the average orientation of the **Features** on either side of the **Triangle** to determine the *misorientation* between the **Features**.  If the *axis-angle* that describes the *misorientation* is within both the axis and angle user-defined tolerance, then the **Triangle** is flagged as being a twin.  After the **Triangle** is flagged as a twin, the crystal direction parallel to the **Face** normal is determined and compared with the *misorientation axis* if *Compute Coherence* is selected.  The misalignment of these two crystal directions is stored as the incoherence value for the **Triangle** (in degrees). Note that this **Filter** will only extract twin boundaries if the twin **Feature** is the same phase as the parent **Feature**.


### Algorithm Modifiers

| Parameter Name | Parameter Type | Parameter Notes | Description |
|----------------|----------------|-----------------|-------------|
| Find Coherence | Bool |  | If true, compute the coherence between the Face normal and the misorientation axis |
| Axis Tolerance (Degrees) | Scalar Value |Float32 | Degree of tolerance for angular distance from the [111] axis |
| Angle Tolerance (Degrees) | Scalar Value |Float32 | Degree of tolerance for angular deviation from 60 degrees |
| Output Type for Twin Boundaries Array | Choices |  | The Twin Boundaries Array is essentially a mask; This allows for determining how the mask is stored; uint8 recommended. |

### Input Face Data

| Parameter Name | Parameter Type | Parameter Notes | Description |
|----------------|----------------|-----------------|-------------|
| Face Labels | Array Selection | Allowed Types: int32 Comp. Shape: 2 | Specifies to which Feature each Face of Triangle belongs to |
| Face Normals | Array Selection | Allowed Types: float64 Comp. Shape: 3 | Specifies the Normal of each face. Only required if Find Coherence is checked |

### Input Feature Data

| Parameter Name | Parameter Type | Parameter Notes | Description |
|----------------|----------------|-----------------|-------------|
| Average Quaternions | Array Selection | Allowed Types: float32 Comp. Shape: 4 | Specifies the average orientation of the Feature in quaternion representation |
| Feature Phases | Array Selection | Allowed Types: int32 Comp. Shape: 1 | Specifies to which Ensemble each Feature belongs |

### Input Ensemble Data

| Parameter Name | Parameter Type | Parameter Notes | Description |
|----------------|----------------|-----------------|-------------|
| Crystal Structures | Array Selection | Allowed Types: uint32 Comp. Shape: 1 | Specifies the crystal structure for each phase (in enumeration representation) |

### Output Face Data

| Parameter Name | Parameter Type | Parameter Notes | Description |
|----------------|----------------|-----------------|-------------|
| Twin Boundaries Array name | DataObjectName |  | The name of the array that will act as a mask for which triangles do make up a twin boundary (true) |
| Twin Boundaries Incoherence Array name | DataObjectName |  | The name of array that contains the crystal direction parallel to the Face normal determined relative to the misorientation; values are 180 by default |

## Example Pipelines

## License & Copyright

Please see the description file distributed with this **Plugin**

## DREAM3D-NX Help

If you need help, need to file a bug report or want to request a new feature, please head over to the [DREAM3DNX-Issues](https://github.com/BlueQuartzSoftware/DREAM3DNX-Issues/discussions) GitHub site where the community of DREAM3D-NX users can help answer your questions.
