# udfGetEbcContvar()

Return the surface contravariant at the surface quadrature point.

## Syntax

contvar = udfGetEbcContvar( udfHd ) ;

## Type

AcuSolve User-Defined Example Boundary Condition

## Parameters

- udfHd
- The opaque handle (pointer) which was passed to the user function.

## Return Value

- contvar (Real*)
- Pointer to two dimensional real array of the contravariant. The first (fastest) dimension of the array is the number of surfaces, nItems, and the second (slower) dimension is six, for the xx, yy, zz, xy, yz and zx components.

## Description

```
Real* contvar ;
Real xx_contvar, yy_contvar, zz_contvar ;
Real xy_contvar, yz_contvar, zx_contvar ;
Integer surf ;
...
contvar = udfGetEbcContvar( udfHd ) ;
for ( surf = 0 ; surf < nItems ; surf++ ) {
xx_contvar = contvar[0*nItems+surf] ;
yy_contvar = contvar[1*nItems+surf] ;
zz_contvar = contvar[2*nItems+surf] ;
xy_contvar = contvar[3*nItems+surf] ;
yz_contvar = contvar[4*nItems+surf] ;
zx_contvar = contvar[5*nItems+surf] ;
...
}
```

## Errors

- This routine expects a valid udfHd.
- This routine may only be called within an Element Boundary Condition user function.