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}