Mesh face data structure. Faces are the primary entities for flux calculation. Each face is associated with an 'owner' and potentially a 'neighbor' cell.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=rk), | public | :: | area | = | zero | ||
| real(kind=rk), | public | :: | center(3) | = | zero | ||
| integer, | public | :: | id | = | 0 | ||
| integer, | public | :: | neighbor | = | 0 | ||
| real(kind=rk), | public | :: | normal(3) | = | zero | ||
| integer, | public | :: | owner | = | 0 | ||
| integer, | public | :: | patch | = | 0 | ||
| integer, | public | :: | periodic_face | = | 0 | ||
| integer, | public | :: | periodic_neighbor | = | 0 |
type :: face_t integer :: id = 0 !< Unique global face index. integer :: owner = 0 !< ID of the owner cell (always exists). integer :: neighbor = 0 !< ID of the neighbor cell (0 for boundary faces). integer :: patch = 0 !< ID of the associated boundary patch (0 for internal faces). integer :: periodic_face = 0 !< ID of the matching face on the opposite periodic boundary. integer :: periodic_neighbor = 0 !< ID of the neighbor cell accessed through periodic matching. real(rk) :: normal(3) = zero !< Unit normal vector pointing outward from the owner cell. real(rk) :: area = zero !< Surface area of the face [m^2]. real(rk) :: center(3) = zero !< Coordinates (x, y, z) of the face centroid. end type face_t