66 generic ::
operator(.eq.) => equal
81 integer,
parameter,
dimension(2, 4) ::
edge_nodes = reshape((/1,3,&
91 class(
quad_t),
intent(inout) :: this
92 integer,
intent(inout) :: id
93 type(
point_t),
target,
intent(in) :: p1, p2, p3, p4
107 class(
quad_t),
intent(in) :: this
108 class(
tuple_t),
intent(inout) :: t
109 integer,
intent(in) :: side
110 type(
point_t),
pointer :: p1, p2
117 if (p1%id() .lt. p2%id())
then
118 t%x = (/ p1%id(), p2%id() /)
120 t%x = (/ p2%id(), p1%id() /)
127 class(
quad_t),
intent(in) :: this
128 class(
tuple_t),
intent(inout) :: t
129 integer,
intent(in) :: side
130 type(
point_t),
pointer :: p1, p2
137 t%x = (/ p1%id(), p2%id() /)
144 class(
quad_t),
intent(in) :: this
145 real(kind=
dp) :: d1, d2, res
146 type(
point_t),
pointer :: p1, p2, p3, p4
158 d1 = d1 + (p4%x(i) - p1%x(i))**2
159 d2 = d2 + (p3%x(i) - p2%x(i))**2
162 res = sqrt(
max(d1, d2))
168 class(
quad_t),
intent(in) :: this
170 type(
point_t),
pointer :: p1, p2, p3, p4
179 do i = 1, this%gdim()
180 res%x(i) = 0.25d0 * (p1%x(i) + p2%x(i) + p3%x(i) + p4%x(i))
187 class(
quad_t),
intent(in) :: this
195 if ((this%gdim() .eq. other%gdim()) .and. &
196 (this%npts() .eq. other%npts()))
then
197 do i = 1, this%npts()
198 if (this%pts(i)%p .ne. other%pts(i)%p)
then
integer, parameter, public dp
Defines a quadrilateral element.
integer, dimension(2, 4), parameter edge_nodes
Edge node ids.
integer, parameter, public neko_quad_gdim
Geometric dimension.
subroutine quad_facet_order(this, t, side)
Return the ordered edge for face i as a 2-tuple t.
integer, parameter, public neko_quad_neds
Number of edges.
integer, parameter, public neko_quad_npts
Number of points.
subroutine quad_facet_id(this, t, side)
Return the edge id for face i as a 2-tuple t.
subroutine quad_init(this, id, p1, p2, p3, p4)
Create a quadrilateral element based upon four points.
real(kind=dp) function quad_diameter(this)
Compute the diameter of a quadrilateral element.
pure logical function quad_equal(this, other)
Check if two quad elements are equal.
type(point_t) function quad_centroid(this)
Compute the centroid of a quadrilateral element.
Base type for an element.
A point in with coordinates .
Base type for an n-tuple.