## Introduction

A reference square element is given by

For heirarchical basis the master reference element is given by:

For lagrange polynomials the master reference element is give by:

Please note the difference in ordering and orientation of edges.

## Getting interpolation points

To get the interpolation points on reference quadrangle for Lagrange polynomials we use the method call InterpolationPoint_Quadrangle

There are two ways to call this routine. For isotropic polynomial interpolation we use the following interface.

` FUNCTION InterpolationPoint_Quadrangle1(order, ipType, &`

& layout, xij, alpha, beta, lambda) RESULT(ans)

END FUNCTION InterpolationPoint_Quadrangle1

You can learn about this method at InterpolationPoint_Quadrangle

There is another method for getting interpolation points for anisotropic interpolation, the interface is given below:

`FUNCTION InterpolationPoint_Quadrangle2( &`

& p, q, ipType1, ipType2, layout, xij, alpha1, beta1, &

& lambda1, alpha2, beta2, lambda2) RESULT(ans)

END FUNCTION InterpolationPoint_Quadrangle2

## Getting quadrature points

TODO

## Getting Lagrange polynomials

We can use the method called LagrangeEvallAll_Quadrangle to get the value of Lagrange polynomials at specified points in the reference elements.

Note that the polynomials should be evaluated inside the reference element, that is, biunit quadrangle.

There are a few ways to call `LagrangeEvalAll_Quadrangle`

function.

The first method is given below. This method evaluates all the lagrange polynomials at a single point.

` FUNCTION LagrangeEvalAll_Quadrangle( &`

& order, &

& x, &

& xij, &

& coeff, &

& firstCall, &

& basisType, &

& alpha, &

& beta, &

& lambda) RESULT(ans)

You can learn more about this method at LagrangeEvallAll_Quadrangle.

The second method is given below. This method evaluates all the Lagrange polynomials at several given points.

` FUNCTION LagrangeEvalAll_Quadrangle( &`

& order, &

& x, &

& xij, &

& coeff, &

& firstCall, &

& basisType, &

& alpha, &

& beta, &

& lambda &

& ) RESULT(ans)

## Getting Heirarchical Basis

To get all the heirarchical basis we use the function HeirarchicalBasis_Quadrangle.

`FUNCTION HeirarchicalBasis_Quadrangle(p, q, xij) RESULT(ans)`

In this case `p`

and `q`

are order of polynomial in x and y directions.

If you want to specify the order of polynomial on edges and cell, then you can use the following method.

`FUNCTION HeirarchicalBasis_Quadrangle(pb, qb, pe3, pe4, &`

& qe1, qe2, xij) RESULT(ans)

- The first four basis are vertex basis
- Then, edge bubble basis
- Finally, we have cell bubble basis.