150c301a5SRezgar Shakeri /// @file 250c301a5SRezgar Shakeri /// Test creation and destruction of a 2D Quad non-tensor Hdiv basis 34fee36f0SJeremy L Thompson /// \test Test creation and destruction of a 2D Quad non-tensor Hdiv basis 450c301a5SRezgar Shakeri #include "t330-basis.h" 550c301a5SRezgar Shakeri 62b730f8bSJeremy L Thompson #include <ceed.h> 7*49aac155SJeremy L Thompson #include <stdio.h> 82b730f8bSJeremy L Thompson 950c301a5SRezgar Shakeri int main(int argc, char **argv) { 1050c301a5SRezgar Shakeri Ceed ceed; 114fee36f0SJeremy L Thompson const CeedInt q = 3, dim = 2, num_qpts = q * q, elem_nodes = 4; 1250c301a5SRezgar Shakeri CeedInt num_comp = 1; 134fee36f0SJeremy L Thompson CeedInt p = dim * elem_nodes; // DoF per element, DoF are vector in H(div) 144fee36f0SJeremy L Thompson CeedBasis basis; 1550c301a5SRezgar Shakeri CeedScalar q_ref[dim * num_qpts], q_weights[num_qpts]; 164fee36f0SJeremy L Thompson CeedScalar interp[dim * p * num_qpts], div[p * num_qpts]; 1750c301a5SRezgar Shakeri 1850c301a5SRezgar Shakeri CeedInit(argv[1], &ceed); 1950c301a5SRezgar Shakeri 2050c301a5SRezgar Shakeri // Test skipped if using single precision 2159058f14SJeremy L Thompson if (CEED_SCALAR_TYPE == CEED_SCALAR_FP32) 2259058f14SJeremy L Thompson // LCOV_EXCL_START 232b730f8bSJeremy L Thompson return CeedError(ceed, CEED_ERROR_UNSUPPORTED, "Test not implemented in single precision"); 2459058f14SJeremy L Thompson // LCOV_EXCL_STOP 2550c301a5SRezgar Shakeri 264fee36f0SJeremy L Thompson BuildHdivQuadrilateral(q, q_ref, q_weights, interp, div, CEED_GAUSS); 274fee36f0SJeremy L Thompson CeedBasisCreateHdiv(ceed, CEED_TOPOLOGY_QUAD, num_comp, p, num_qpts, interp, div, q_ref, q_weights, &basis); 2850c301a5SRezgar Shakeri // interp[0]--.interp[num_qpts-1] ==> basis in x-direction 2950c301a5SRezgar Shakeri // interp[num_qpts]--.interp[dim*num_qpts-1] ==> basis in y-direction 304fee36f0SJeremy L Thompson CeedBasisView(basis, stdout); 3150c301a5SRezgar Shakeri 324fee36f0SJeremy L Thompson CeedBasisDestroy(&basis); 3350c301a5SRezgar Shakeri CeedDestroy(&ceed); 3450c301a5SRezgar Shakeri return 0; 3550c301a5SRezgar Shakeri } 36