150c301a5SRezgar Shakeri /// @file 250c301a5SRezgar Shakeri /// Test creation and destruction of a 2D Quad non-tensor Hdiv basis 3*4fee36f0SJeremy 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> 72b730f8bSJeremy L Thompson 850c301a5SRezgar Shakeri int main(int argc, char **argv) { 950c301a5SRezgar Shakeri Ceed ceed; 10*4fee36f0SJeremy L Thompson const CeedInt q = 3, dim = 2, num_qpts = q * q, elem_nodes = 4; 1150c301a5SRezgar Shakeri CeedInt num_comp = 1; 12*4fee36f0SJeremy L Thompson CeedInt p = dim * elem_nodes; // DoF per element, DoF are vector in H(div) 13*4fee36f0SJeremy L Thompson CeedBasis basis; 1450c301a5SRezgar Shakeri CeedScalar q_ref[dim * num_qpts], q_weights[num_qpts]; 15*4fee36f0SJeremy L Thompson CeedScalar interp[dim * p * num_qpts], div[p * num_qpts]; 1650c301a5SRezgar Shakeri 1750c301a5SRezgar Shakeri CeedInit(argv[1], &ceed); 1850c301a5SRezgar Shakeri 1950c301a5SRezgar Shakeri // Test skipped if using single precision 2059058f14SJeremy L Thompson if (CEED_SCALAR_TYPE == CEED_SCALAR_FP32) 2159058f14SJeremy L Thompson // LCOV_EXCL_START 222b730f8bSJeremy L Thompson return CeedError(ceed, CEED_ERROR_UNSUPPORTED, "Test not implemented in single precision"); 2359058f14SJeremy L Thompson // LCOV_EXCL_STOP 2450c301a5SRezgar Shakeri 25*4fee36f0SJeremy L Thompson BuildHdivQuadrilateral(q, q_ref, q_weights, interp, div, CEED_GAUSS); 26*4fee36f0SJeremy L Thompson CeedBasisCreateHdiv(ceed, CEED_TOPOLOGY_QUAD, num_comp, p, num_qpts, interp, div, q_ref, q_weights, &basis); 2750c301a5SRezgar Shakeri // interp[0]--.interp[num_qpts-1] ==> basis in x-direction 2850c301a5SRezgar Shakeri // interp[num_qpts]--.interp[dim*num_qpts-1] ==> basis in y-direction 29*4fee36f0SJeremy L Thompson CeedBasisView(basis, stdout); 3050c301a5SRezgar Shakeri 31*4fee36f0SJeremy L Thompson CeedBasisDestroy(&basis); 3250c301a5SRezgar Shakeri CeedDestroy(&ceed); 3350c301a5SRezgar Shakeri return 0; 3450c301a5SRezgar Shakeri } 35