150c301a5SRezgar Shakeri /// @file 2b5404d5dSSebastian Grimberg /// Test creation and destruction of a 2D Quad non-tensor H(div) basis 3b5404d5dSSebastian Grimberg /// \test Test creation and destruction of a 2D Quad non-tensor H(div) basis 450c301a5SRezgar Shakeri #include "t330-basis.h" 550c301a5SRezgar Shakeri 62b730f8bSJeremy L Thompson #include <ceed.h> 749aac155SJeremy L Thompson #include <stdio.h> 82b730f8bSJeremy L Thompson 950c301a5SRezgar Shakeri int main(int argc, char **argv) { 1050c301a5SRezgar Shakeri Ceed ceed; 11b5404d5dSSebastian Grimberg const CeedInt p = 8, q = 3, dim = 2, num_qpts = q * q; 124fee36f0SJeremy L Thompson CeedBasis basis; 1350c301a5SRezgar Shakeri CeedScalar q_ref[dim * num_qpts], q_weights[num_qpts]; 144fee36f0SJeremy L Thompson CeedScalar interp[dim * p * num_qpts], div[p * num_qpts]; 1550c301a5SRezgar Shakeri 1650c301a5SRezgar Shakeri CeedInit(argv[1], &ceed); 1750c301a5SRezgar Shakeri 1850c301a5SRezgar Shakeri // Test skipped if using single precision 19b5404d5dSSebastian Grimberg if (CEED_SCALAR_TYPE == CEED_SCALAR_FP32) return CeedError(ceed, CEED_ERROR_UNSUPPORTED, "Test not implemented in single precision"); 2050c301a5SRezgar Shakeri 214fee36f0SJeremy L Thompson BuildHdivQuadrilateral(q, q_ref, q_weights, interp, div, CEED_GAUSS); 22b5404d5dSSebastian Grimberg CeedBasisCreateHdiv(ceed, CEED_TOPOLOGY_QUAD, 1, p, num_qpts, interp, div, q_ref, q_weights, &basis); 234fee36f0SJeremy L Thompson CeedBasisView(basis, stdout); 24*62e2d410SJeremy L Thompson CeedBasisSetNumViewTabs(basis, 1); 25*62e2d410SJeremy L Thompson CeedBasisView(basis, stdout); 2650c301a5SRezgar Shakeri 274fee36f0SJeremy L Thompson CeedBasisDestroy(&basis); 2850c301a5SRezgar Shakeri CeedDestroy(&ceed); 2950c301a5SRezgar Shakeri return 0; 3050c301a5SRezgar Shakeri } 31