| t523-operator.c (7509a596beda7c1d002d2274a17375b09541fdb6) | t523-operator.c (15910d16b955338d1102d4e730fc58bca8f202b9) |
|---|---|
| 1/// @file 2/// Test creation, action, and destruction for mass matrix operator 3/// \test Test creation, action, and destruction for mass matrix operator 4#include <ceed.h> 5#include <stdlib.h> 6#include <math.h> 7#include "t320-basis.h" 8#include "t510-operator.h" --- 6 unchanged lines hidden (view full) --- 15 |/|/|/| 16 17*/ 18 19int main(int argc, char **argv) { 20 Ceed ceed; 21 CeedInterlaceMode imode = CEED_NONINTERLACED; 22 CeedElemRestriction ErestrictxTet, ErestrictuTet, | 1/// @file 2/// Test creation, action, and destruction for mass matrix operator 3/// \test Test creation, action, and destruction for mass matrix operator 4#include <ceed.h> 5#include <stdlib.h> 6#include <math.h> 7#include "t320-basis.h" 8#include "t510-operator.h" --- 6 unchanged lines hidden (view full) --- 15 |/|/|/| 16 17*/ 18 19int main(int argc, char **argv) { 20 Ceed ceed; 21 CeedInterlaceMode imode = CEED_NONINTERLACED; 22 CeedElemRestriction ErestrictxTet, ErestrictuTet, |
| 23 ErestrictxiTet, ErestrictuiTet, | 23 ErestrictuiTet, |
| 24 ErestrictxHex, ErestrictuHex, | 24 ErestrictxHex, ErestrictuHex, |
| 25 ErestrictxiHex, ErestrictuiHex; | 25 ErestrictuiHex; |
| 26 CeedBasis bxTet, buTet, 27 bxHex, buHex; 28 CeedQFunction qf_setupTet, qf_massTet, 29 qf_setupHex, qf_massHex; 30 CeedOperator op_setupTet, op_massTet, 31 op_setupHex, op_massHex, 32 op_setup, op_mass; 33 CeedVector qdataTet, qdataHex, X; --- 39 unchanged lines hidden (view full) --- 73 indxTet[i*2*PTet + 10] = 8 + offset; 74 indxTet[i*2*PTet + 11] = 16 + offset; 75 } 76 77 // -- Restrictions 78 CeedElemRestrictionCreate(ceed, imode, nelemTet, PTet, ndofs, dim, 79 CEED_MEM_HOST, CEED_USE_POINTER, indxTet, 80 &ErestrictxTet); | 26 CeedBasis bxTet, buTet, 27 bxHex, buHex; 28 CeedQFunction qf_setupTet, qf_massTet, 29 qf_setupHex, qf_massHex; 30 CeedOperator op_setupTet, op_massTet, 31 op_setupHex, op_massHex, 32 op_setup, op_mass; 33 CeedVector qdataTet, qdataHex, X; --- 39 unchanged lines hidden (view full) --- 73 indxTet[i*2*PTet + 10] = 8 + offset; 74 indxTet[i*2*PTet + 11] = 16 + offset; 75 } 76 77 // -- Restrictions 78 CeedElemRestrictionCreate(ceed, imode, nelemTet, PTet, ndofs, dim, 79 CEED_MEM_HOST, CEED_USE_POINTER, indxTet, 80 &ErestrictxTet); |
| 81 CeedInt stridesxTet[3] = {1, PTet, PTet*dim}; 82 CeedElemRestrictionCreateStrided(ceed, nelemTet, PTet, nelemTet*PTet, dim, 83 stridesxTet, &ErestrictxiTet); | |
| 84 85 CeedElemRestrictionCreate(ceed, imode, nelemTet, PTet, ndofs, 1, 86 CEED_MEM_HOST, CEED_USE_POINTER, indxTet, 87 &ErestrictuTet); 88 CeedInt stridesuTet[3] = {1, QTet, QTet}; 89 CeedElemRestrictionCreateStrided(ceed, nelemTet, QTet, nqptsTet, 1, 90 stridesuTet, &ErestrictuiTet); 91 --- 16 unchanged lines hidden (view full) --- 108 CeedQFunctionAddInput(qf_massTet, "rho", 1, CEED_EVAL_NONE); 109 CeedQFunctionAddInput(qf_massTet, "u", 1, CEED_EVAL_INTERP); 110 CeedQFunctionAddOutput(qf_massTet, "v", 1, CEED_EVAL_INTERP); 111 112 // -- Operators 113 // ---- Setup Tet 114 CeedOperatorCreate(ceed, qf_setupTet, CEED_QFUNCTION_NONE, 115 CEED_QFUNCTION_NONE, &op_setupTet); | 81 82 CeedElemRestrictionCreate(ceed, imode, nelemTet, PTet, ndofs, 1, 83 CEED_MEM_HOST, CEED_USE_POINTER, indxTet, 84 &ErestrictuTet); 85 CeedInt stridesuTet[3] = {1, QTet, QTet}; 86 CeedElemRestrictionCreateStrided(ceed, nelemTet, QTet, nqptsTet, 1, 87 stridesuTet, &ErestrictuiTet); 88 --- 16 unchanged lines hidden (view full) --- 105 CeedQFunctionAddInput(qf_massTet, "rho", 1, CEED_EVAL_NONE); 106 CeedQFunctionAddInput(qf_massTet, "u", 1, CEED_EVAL_INTERP); 107 CeedQFunctionAddOutput(qf_massTet, "v", 1, CEED_EVAL_INTERP); 108 109 // -- Operators 110 // ---- Setup Tet 111 CeedOperatorCreate(ceed, qf_setupTet, CEED_QFUNCTION_NONE, 112 CEED_QFUNCTION_NONE, &op_setupTet); |
| 116 CeedOperatorSetField(op_setupTet, "_weight", ErestrictxiTet, bxTet, | 113 CeedOperatorSetField(op_setupTet, "_weight", CEED_ELEMRESTRICTION_NONE, bxTet, |
| 117 CEED_VECTOR_NONE); 118 CeedOperatorSetField(op_setupTet, "dx", ErestrictxTet, bxTet, 119 CEED_VECTOR_ACTIVE); 120 CeedOperatorSetField(op_setupTet, "rho", ErestrictuiTet, 121 CEED_BASIS_COLLOCATED, qdataTet); 122 // ---- Mass Tet 123 CeedOperatorCreate(ceed, qf_massTet, CEED_QFUNCTION_NONE, CEED_QFUNCTION_NONE, 124 &op_massTet); --- 13 unchanged lines hidden (view full) --- 138 for (CeedInt k=0; k<PHex; k++) 139 indxHex[PHex*(PHex*i+k)+j] = offset + k*(nxHex*2+1) + j; 140 } 141 142 // -- Restrictions 143 CeedElemRestrictionCreate(ceed, imode, nelemHex, PHex*PHex, ndofs, dim, 144 CEED_MEM_HOST, CEED_USE_POINTER, indxHex, 145 &ErestrictxHex); | 114 CEED_VECTOR_NONE); 115 CeedOperatorSetField(op_setupTet, "dx", ErestrictxTet, bxTet, 116 CEED_VECTOR_ACTIVE); 117 CeedOperatorSetField(op_setupTet, "rho", ErestrictuiTet, 118 CEED_BASIS_COLLOCATED, qdataTet); 119 // ---- Mass Tet 120 CeedOperatorCreate(ceed, qf_massTet, CEED_QFUNCTION_NONE, CEED_QFUNCTION_NONE, 121 &op_massTet); --- 13 unchanged lines hidden (view full) --- 135 for (CeedInt k=0; k<PHex; k++) 136 indxHex[PHex*(PHex*i+k)+j] = offset + k*(nxHex*2+1) + j; 137 } 138 139 // -- Restrictions 140 CeedElemRestrictionCreate(ceed, imode, nelemHex, PHex*PHex, ndofs, dim, 141 CEED_MEM_HOST, CEED_USE_POINTER, indxHex, 142 &ErestrictxHex); |
| 146 CeedInt stridesxHex[3] = {1, PHex*PHex, PHex *PHex*dim}; 147 CeedElemRestrictionCreateStrided(ceed, nelemHex, PHex*PHex, 148 nelemHex*PHex*PHex, dim, stridesxHex, 149 &ErestrictxiHex); | |
| 150 151 CeedElemRestrictionCreate(ceed, imode, nelemHex, PHex*PHex, ndofs, 1, 152 CEED_MEM_HOST, CEED_USE_POINTER, indxHex, 153 &ErestrictuHex); 154 CeedInt stridesuHex[3] = {1, QHex*QHex, QHex*QHex}; 155 CeedElemRestrictionCreateStrided(ceed, nelemHex, QHex*QHex, nqptsHex, 1, 156 stridesuHex, &ErestrictuiHex); 157 --- 11 unchanged lines hidden (view full) --- 169 CeedQFunctionCreateInterior(ceed, 1, mass, mass_loc, &qf_massHex); 170 CeedQFunctionAddInput(qf_massHex, "rho", 1, CEED_EVAL_NONE); 171 CeedQFunctionAddInput(qf_massHex, "u", 1, CEED_EVAL_INTERP); 172 CeedQFunctionAddOutput(qf_massHex, "v", 1, CEED_EVAL_INTERP); 173 174 // -- Operators 175 CeedOperatorCreate(ceed, qf_setupHex, CEED_QFUNCTION_NONE, 176 CEED_QFUNCTION_NONE, &op_setupHex); | 143 144 CeedElemRestrictionCreate(ceed, imode, nelemHex, PHex*PHex, ndofs, 1, 145 CEED_MEM_HOST, CEED_USE_POINTER, indxHex, 146 &ErestrictuHex); 147 CeedInt stridesuHex[3] = {1, QHex*QHex, QHex*QHex}; 148 CeedElemRestrictionCreateStrided(ceed, nelemHex, QHex*QHex, nqptsHex, 1, 149 stridesuHex, &ErestrictuiHex); 150 --- 11 unchanged lines hidden (view full) --- 162 CeedQFunctionCreateInterior(ceed, 1, mass, mass_loc, &qf_massHex); 163 CeedQFunctionAddInput(qf_massHex, "rho", 1, CEED_EVAL_NONE); 164 CeedQFunctionAddInput(qf_massHex, "u", 1, CEED_EVAL_INTERP); 165 CeedQFunctionAddOutput(qf_massHex, "v", 1, CEED_EVAL_INTERP); 166 167 // -- Operators 168 CeedOperatorCreate(ceed, qf_setupHex, CEED_QFUNCTION_NONE, 169 CEED_QFUNCTION_NONE, &op_setupHex); |
| 177 CeedOperatorSetField(op_setupHex, "_weight", ErestrictxiHex, bxHex, | 170 CeedOperatorSetField(op_setupHex, "_weight", CEED_ELEMRESTRICTION_NONE, bxHex, |
| 178 CEED_VECTOR_NONE); 179 CeedOperatorSetField(op_setupHex, "dx", ErestrictxHex, bxHex, 180 CEED_VECTOR_ACTIVE); 181 CeedOperatorSetField(op_setupHex, "rho", ErestrictuiHex, 182 CEED_BASIS_COLLOCATED, qdataHex); 183 184 CeedOperatorCreate(ceed, qf_massHex, CEED_QFUNCTION_NONE, CEED_QFUNCTION_NONE, 185 &op_massHex); --- 30 unchanged lines hidden (view full) --- 216 CeedQFunctionDestroy(&qf_massHex); 217 CeedOperatorDestroy(&op_setupHex); 218 CeedOperatorDestroy(&op_massHex); 219 CeedOperatorDestroy(&op_setup); 220 CeedOperatorDestroy(&op_mass); 221 CeedElemRestrictionDestroy(&ErestrictuTet); 222 CeedElemRestrictionDestroy(&ErestrictxTet); 223 CeedElemRestrictionDestroy(&ErestrictuiTet); | 171 CEED_VECTOR_NONE); 172 CeedOperatorSetField(op_setupHex, "dx", ErestrictxHex, bxHex, 173 CEED_VECTOR_ACTIVE); 174 CeedOperatorSetField(op_setupHex, "rho", ErestrictuiHex, 175 CEED_BASIS_COLLOCATED, qdataHex); 176 177 CeedOperatorCreate(ceed, qf_massHex, CEED_QFUNCTION_NONE, CEED_QFUNCTION_NONE, 178 &op_massHex); --- 30 unchanged lines hidden (view full) --- 209 CeedQFunctionDestroy(&qf_massHex); 210 CeedOperatorDestroy(&op_setupHex); 211 CeedOperatorDestroy(&op_massHex); 212 CeedOperatorDestroy(&op_setup); 213 CeedOperatorDestroy(&op_mass); 214 CeedElemRestrictionDestroy(&ErestrictuTet); 215 CeedElemRestrictionDestroy(&ErestrictxTet); 216 CeedElemRestrictionDestroy(&ErestrictuiTet); |
| 224 CeedElemRestrictionDestroy(&ErestrictxiTet); | |
| 225 CeedElemRestrictionDestroy(&ErestrictuHex); 226 CeedElemRestrictionDestroy(&ErestrictxHex); 227 CeedElemRestrictionDestroy(&ErestrictuiHex); | 217 CeedElemRestrictionDestroy(&ErestrictuHex); 218 CeedElemRestrictionDestroy(&ErestrictxHex); 219 CeedElemRestrictionDestroy(&ErestrictuiHex); |
| 228 CeedElemRestrictionDestroy(&ErestrictxiHex); | |
| 229 CeedBasisDestroy(&buTet); 230 CeedBasisDestroy(&bxTet); 231 CeedBasisDestroy(&buHex); 232 CeedBasisDestroy(&bxHex); 233 CeedVectorDestroy(&X); 234 CeedVectorDestroy(&qdataTet); 235 CeedVectorDestroy(&qdataHex); 236 CeedDestroy(&ceed); 237 return 0; 238} | 220 CeedBasisDestroy(&buTet); 221 CeedBasisDestroy(&bxTet); 222 CeedBasisDestroy(&buHex); 223 CeedBasisDestroy(&bxHex); 224 CeedVectorDestroy(&X); 225 CeedVectorDestroy(&qdataTet); 226 CeedVectorDestroy(&qdataHex); 227 CeedDestroy(&ceed); 228 return 0; 229} |