Lines Matching +full:- +full:vv
1 // Copyright (c) 2017-2026, Lawrence Livermore National Security, LLC and other CEED contributors.
2 // All Rights Reserved. See the top-level LICENSE and NOTICE files for details.
4 // SPDX-License-Identifier: BSD-2-Clause
14 #include "ceed-ref.h"
16 //------------------------------------------------------------------------------
18 //------------------------------------------------------------------------------
22 CeedScalar *__restrict__ vv) { in CeedElemRestrictionApplyStridedNoTranspose_Ref_Core() argument
34 vv[e * elem_size * num_comp + (k * elem_size + n) * block_size + j - v_offset] = in CeedElemRestrictionApplyStridedNoTranspose_Ref_Core()
35 … uu[n + k * elem_size + CeedIntMin(e + j, num_elem - 1) * elem_size * (CeedSize)num_comp]; in CeedElemRestrictionApplyStridedNoTranspose_Ref_Core()
49 vv[e * elem_size * num_comp + (k * elem_size + n) * block_size + j - v_offset] = in CeedElemRestrictionApplyStridedNoTranspose_Ref_Core()
50 … uu[n * strides[0] + k * strides[1] + CeedIntMin(e + j, num_elem - 1) * (CeedSize)strides[2]]; in CeedElemRestrictionApplyStridedNoTranspose_Ref_Core()
62 … const CeedScalar *__restrict__ uu, CeedScalar *__restrict__ vv) { in CeedElemRestrictionApplyOffsetNoTranspose_Ref_Core() argument
70 …vv[elem_size * (k * block_size + e * num_comp) + i - v_offset] = uu[impl->offsets[i + e * elem_siz… in CeedElemRestrictionApplyOffsetNoTranspose_Ref_Core()
80 … const CeedScalar *__restrict__ uu, CeedScalar *__restrict__ vv) { in CeedElemRestrictionApplyOrientedNoTranspose_Ref_Core() argument
88 vv[elem_size * (k * block_size + e * num_comp) + i - v_offset] = in CeedElemRestrictionApplyOrientedNoTranspose_Ref_Core()
89 …uu[impl->offsets[i + e * elem_size] + k * comp_stride] * (impl->orients[i + e * elem_size] ? -1.0 … in CeedElemRestrictionApplyOrientedNoTranspose_Ref_Core()
99 … const CeedScalar *__restrict__ uu, CeedScalar *__restrict__ vv) { in CeedElemRestrictionApplyCurlOrientedNoTranspose_Ref_Core() argument
109 vv[e * elem_size * num_comp + (k * elem_size + n) * block_size + j - v_offset] = in CeedElemRestrictionApplyCurlOrientedNoTranspose_Ref_Core()
110 uu[impl->offsets[j + n * block_size + e * elem_size] + k * comp_stride] * in CeedElemRestrictionApplyCurlOrientedNoTranspose_Ref_Core()
111 impl->curl_orients[j + (3 * n + 1) * block_size + e * 3 * elem_size] + in CeedElemRestrictionApplyCurlOrientedNoTranspose_Ref_Core()
112 uu[impl->offsets[j + (n + 1) * block_size + e * elem_size] + k * comp_stride] * in CeedElemRestrictionApplyCurlOrientedNoTranspose_Ref_Core()
113 impl->curl_orients[j + (3 * n + 2) * block_size + e * 3 * elem_size]; in CeedElemRestrictionApplyCurlOrientedNoTranspose_Ref_Core()
115 for (n = 1; n < elem_size - 1; n++) { in CeedElemRestrictionApplyCurlOrientedNoTranspose_Ref_Core()
117 vv[e * elem_size * num_comp + (k * elem_size + n) * block_size + j - v_offset] = in CeedElemRestrictionApplyCurlOrientedNoTranspose_Ref_Core()
118 uu[impl->offsets[j + (n - 1) * block_size + e * elem_size] + k * comp_stride] * in CeedElemRestrictionApplyCurlOrientedNoTranspose_Ref_Core()
119 impl->curl_orients[j + (3 * n + 0) * block_size + e * 3 * elem_size] + in CeedElemRestrictionApplyCurlOrientedNoTranspose_Ref_Core()
120 uu[impl->offsets[j + n * block_size + e * elem_size] + k * comp_stride] * in CeedElemRestrictionApplyCurlOrientedNoTranspose_Ref_Core()
121 impl->curl_orients[j + (3 * n + 1) * block_size + e * 3 * elem_size] + in CeedElemRestrictionApplyCurlOrientedNoTranspose_Ref_Core()
122 uu[impl->offsets[j + (n + 1) * block_size + e * elem_size] + k * comp_stride] * in CeedElemRestrictionApplyCurlOrientedNoTranspose_Ref_Core()
123 impl->curl_orients[j + (3 * n + 2) * block_size + e * 3 * elem_size]; in CeedElemRestrictionApplyCurlOrientedNoTranspose_Ref_Core()
127 vv[e * elem_size * num_comp + (k * elem_size + n) * block_size + j - v_offset] = in CeedElemRestrictionApplyCurlOrientedNoTranspose_Ref_Core()
128 uu[impl->offsets[j + (n - 1) * block_size + e * elem_size] + k * comp_stride] * in CeedElemRestrictionApplyCurlOrientedNoTranspose_Ref_Core()
129 impl->curl_orients[j + (3 * n + 0) * block_size + e * 3 * elem_size] + in CeedElemRestrictionApplyCurlOrientedNoTranspose_Ref_Core()
130 uu[impl->offsets[j + n * block_size + e * elem_size] + k * comp_stride] * in CeedElemRestrictionApplyCurlOrientedNoTranspose_Ref_Core()
131 impl->curl_orients[j + (3 * n + 1) * block_size + e * 3 * elem_size]; in CeedElemRestrictionApplyCurlOrientedNoTranspose_Ref_Core()
142 … const CeedScalar *__restrict__ uu, CeedScalar *__restrict__ vv) { in CeedElemRestrictionApplyCurlOrientedUnsignedNoTranspose_Ref_Core() argument
152 vv[e * elem_size * num_comp + (k * elem_size + n) * block_size + j - v_offset] = in CeedElemRestrictionApplyCurlOrientedUnsignedNoTranspose_Ref_Core()
153 uu[impl->offsets[j + n * block_size + e * elem_size] + k * comp_stride] * in CeedElemRestrictionApplyCurlOrientedUnsignedNoTranspose_Ref_Core()
154 abs(impl->curl_orients[j + (3 * n + 1) * block_size + e * 3 * elem_size]) + in CeedElemRestrictionApplyCurlOrientedUnsignedNoTranspose_Ref_Core()
155 uu[impl->offsets[j + (n + 1) * block_size + e * elem_size] + k * comp_stride] * in CeedElemRestrictionApplyCurlOrientedUnsignedNoTranspose_Ref_Core()
156 abs(impl->curl_orients[j + (3 * n + 2) * block_size + e * 3 * elem_size]); in CeedElemRestrictionApplyCurlOrientedUnsignedNoTranspose_Ref_Core()
158 for (n = 1; n < elem_size - 1; n++) { in CeedElemRestrictionApplyCurlOrientedUnsignedNoTranspose_Ref_Core()
160 vv[e * elem_size * num_comp + (k * elem_size + n) * block_size + j - v_offset] = in CeedElemRestrictionApplyCurlOrientedUnsignedNoTranspose_Ref_Core()
161 uu[impl->offsets[j + (n - 1) * block_size + e * elem_size] + k * comp_stride] * in CeedElemRestrictionApplyCurlOrientedUnsignedNoTranspose_Ref_Core()
162 abs(impl->curl_orients[j + (3 * n + 0) * block_size + e * 3 * elem_size]) + in CeedElemRestrictionApplyCurlOrientedUnsignedNoTranspose_Ref_Core()
163 uu[impl->offsets[j + n * block_size + e * elem_size] + k * comp_stride] * in CeedElemRestrictionApplyCurlOrientedUnsignedNoTranspose_Ref_Core()
164 abs(impl->curl_orients[j + (3 * n + 1) * block_size + e * 3 * elem_size]) + in CeedElemRestrictionApplyCurlOrientedUnsignedNoTranspose_Ref_Core()
165 uu[impl->offsets[j + (n + 1) * block_size + e * elem_size] + k * comp_stride] * in CeedElemRestrictionApplyCurlOrientedUnsignedNoTranspose_Ref_Core()
166 abs(impl->curl_orients[j + (3 * n + 2) * block_size + e * 3 * elem_size]); in CeedElemRestrictionApplyCurlOrientedUnsignedNoTranspose_Ref_Core()
170 vv[e * elem_size * num_comp + (k * elem_size + n) * block_size + j - v_offset] = in CeedElemRestrictionApplyCurlOrientedUnsignedNoTranspose_Ref_Core()
171 uu[impl->offsets[j + (n - 1) * block_size + e * elem_size] + k * comp_stride] * in CeedElemRestrictionApplyCurlOrientedUnsignedNoTranspose_Ref_Core()
172 abs(impl->curl_orients[j + (3 * n + 0) * block_size + e * 3 * elem_size]) + in CeedElemRestrictionApplyCurlOrientedUnsignedNoTranspose_Ref_Core()
173 uu[impl->offsets[j + n * block_size + e * elem_size] + k * comp_stride] * in CeedElemRestrictionApplyCurlOrientedUnsignedNoTranspose_Ref_Core()
174 abs(impl->curl_orients[j + (3 * n + 1) * block_size + e * 3 * elem_size]); in CeedElemRestrictionApplyCurlOrientedUnsignedNoTranspose_Ref_Core()
184 … const CeedScalar *__restrict__ uu, CeedScalar *__restrict__ vv) { in CeedElemRestrictionApplyStridedTranspose_Ref_Core() argument
195 CeedPragmaSIMD for (CeedSize j = 0; j < CeedIntMin(block_size, num_elem - e); j++) { in CeedElemRestrictionApplyStridedTranspose_Ref_Core()
196 …vv[n + k * elem_size + (e + j) * elem_size * num_comp] += uu[e * elem_size * num_comp + (k * elem_… in CeedElemRestrictionApplyStridedTranspose_Ref_Core()
209 CeedPragmaSIMD for (CeedSize j = 0; j < CeedIntMin(block_size, num_elem - e); j++) { in CeedElemRestrictionApplyStridedTranspose_Ref_Core()
210 vv[n * strides[0] + k * strides[1] + (e + j) * strides[2]] += in CeedElemRestrictionApplyStridedTranspose_Ref_Core()
211 uu[e * elem_size * num_comp + (k * elem_size + n) * block_size + j - v_offset]; in CeedElemRestrictionApplyStridedTranspose_Ref_Core()
223 … const CeedScalar *__restrict__ uu, CeedScalar *__restrict__ vv) { in CeedElemRestrictionApplyOffsetTranspose_Ref_Core() argument
232 for (CeedSize j = i; j < i + CeedIntMin(block_size, num_elem - e); j++) { in CeedElemRestrictionApplyOffsetTranspose_Ref_Core()
235 vv_loc = uu[elem_size * (k * block_size + e * num_comp) + j - v_offset]; in CeedElemRestrictionApplyOffsetTranspose_Ref_Core()
236 CeedPragmaAtomic vv[impl->offsets[j + e * elem_size] + k * comp_stride] += vv_loc; in CeedElemRestrictionApplyOffsetTranspose_Ref_Core()
247 … const CeedScalar *__restrict__ uu, CeedScalar *__restrict__ vv) { in CeedElemRestrictionApplyOrientedTranspose_Ref_Core() argument
256 for (CeedSize j = i; j < i + CeedIntMin(block_size, num_elem - e); j++) { in CeedElemRestrictionApplyOrientedTranspose_Ref_Core()
259 …uu[elem_size * (k * block_size + e * num_comp) + j - v_offset] * (impl->orients[j + e * elem_size]… in CeedElemRestrictionApplyOrientedTranspose_Ref_Core()
260 CeedPragmaAtomic vv[impl->offsets[j + e * elem_size] + k * comp_stride] += vv_loc; in CeedElemRestrictionApplyOrientedTranspose_Ref_Core()
271 … const CeedScalar *__restrict__ uu, CeedScalar *__restrict__ vv) { in CeedElemRestrictionApplyCurlOrientedTranspose_Ref_Core() argument
280 const CeedSize block_end = CeedIntMin(block_size, num_elem - e); in CeedElemRestrictionApplyCurlOrientedTranspose_Ref_Core()
284 vv_loc[j] = uu[e * elem_size * num_comp + (k * elem_size + n) * block_size + j - v_offset] * in CeedElemRestrictionApplyCurlOrientedTranspose_Ref_Core()
285 impl->curl_orients[j + (3 * n + 1) * block_size + e * 3 * elem_size] + in CeedElemRestrictionApplyCurlOrientedTranspose_Ref_Core()
286 … uu[e * elem_size * num_comp + (k * elem_size + n + 1) * block_size + j - v_offset] * in CeedElemRestrictionApplyCurlOrientedTranspose_Ref_Core()
287 impl->curl_orients[j + (3 * n + 3) * block_size + e * 3 * elem_size]; in CeedElemRestrictionApplyCurlOrientedTranspose_Ref_Core()
290 …CeedPragmaAtomic vv[impl->offsets[j + n * block_size + e * elem_size] + k * comp_stride] += vv_loc… in CeedElemRestrictionApplyCurlOrientedTranspose_Ref_Core()
292 for (n = 1; n < elem_size - 1; n++) { in CeedElemRestrictionApplyCurlOrientedTranspose_Ref_Core()
294 … vv_loc[j] = uu[e * elem_size * num_comp + (k * elem_size + n - 1) * block_size + j - v_offset] * in CeedElemRestrictionApplyCurlOrientedTranspose_Ref_Core()
295 impl->curl_orients[j + (3 * n - 1) * block_size + e * 3 * elem_size] + in CeedElemRestrictionApplyCurlOrientedTranspose_Ref_Core()
296 … uu[e * elem_size * num_comp + (k * elem_size + n) * block_size + j - v_offset] * in CeedElemRestrictionApplyCurlOrientedTranspose_Ref_Core()
297 impl->curl_orients[j + (3 * n + 1) * block_size + e * 3 * elem_size] + in CeedElemRestrictionApplyCurlOrientedTranspose_Ref_Core()
298 … uu[e * elem_size * num_comp + (k * elem_size + n + 1) * block_size + j - v_offset] * in CeedElemRestrictionApplyCurlOrientedTranspose_Ref_Core()
299 impl->curl_orients[j + (3 * n + 3) * block_size + e * 3 * elem_size]; in CeedElemRestrictionApplyCurlOrientedTranspose_Ref_Core()
302 …CeedPragmaAtomic vv[impl->offsets[j + n * block_size + e * elem_size] + k * comp_stride] += vv_loc… in CeedElemRestrictionApplyCurlOrientedTranspose_Ref_Core()
306 … vv_loc[j] = uu[e * elem_size * num_comp + (k * elem_size + n - 1) * block_size + j - v_offset] * in CeedElemRestrictionApplyCurlOrientedTranspose_Ref_Core()
307 impl->curl_orients[j + (3 * n - 1) * block_size + e * 3 * elem_size] + in CeedElemRestrictionApplyCurlOrientedTranspose_Ref_Core()
308 uu[e * elem_size * num_comp + (k * elem_size + n) * block_size + j - v_offset] * in CeedElemRestrictionApplyCurlOrientedTranspose_Ref_Core()
309 impl->curl_orients[j + (3 * n + 1) * block_size + e * 3 * elem_size]; in CeedElemRestrictionApplyCurlOrientedTranspose_Ref_Core()
312 …CeedPragmaAtomic vv[impl->offsets[j + n * block_size + e * elem_size] + k * comp_stride] += vv_loc… in CeedElemRestrictionApplyCurlOrientedTranspose_Ref_Core()
323 … const CeedScalar *__restrict__ uu, CeedScalar *__restrict__ vv) { in CeedElemRestrictionApplyCurlOrientedUnsignedTranspose_Ref_Core() argument
332 const CeedSize block_end = CeedIntMin(block_size, num_elem - e); in CeedElemRestrictionApplyCurlOrientedUnsignedTranspose_Ref_Core()
336 vv_loc[j] = uu[e * elem_size * num_comp + (k * elem_size + n) * block_size + j - v_offset] * in CeedElemRestrictionApplyCurlOrientedUnsignedTranspose_Ref_Core()
337 abs(impl->curl_orients[j + (3 * n + 1) * block_size + e * 3 * elem_size]) + in CeedElemRestrictionApplyCurlOrientedUnsignedTranspose_Ref_Core()
338 … uu[e * elem_size * num_comp + (k * elem_size + n + 1) * block_size + j - v_offset] * in CeedElemRestrictionApplyCurlOrientedUnsignedTranspose_Ref_Core()
339 abs(impl->curl_orients[j + (3 * n + 3) * block_size + e * 3 * elem_size]); in CeedElemRestrictionApplyCurlOrientedUnsignedTranspose_Ref_Core()
342 …CeedPragmaAtomic vv[impl->offsets[j + n * block_size + e * elem_size] + k * comp_stride] += vv_loc… in CeedElemRestrictionApplyCurlOrientedUnsignedTranspose_Ref_Core()
344 for (n = 1; n < elem_size - 1; n++) { in CeedElemRestrictionApplyCurlOrientedUnsignedTranspose_Ref_Core()
346 … vv_loc[j] = uu[e * elem_size * num_comp + (k * elem_size + n - 1) * block_size + j - v_offset] * in CeedElemRestrictionApplyCurlOrientedUnsignedTranspose_Ref_Core()
347 … abs(impl->curl_orients[j + (3 * n - 1) * block_size + e * 3 * elem_size]) + in CeedElemRestrictionApplyCurlOrientedUnsignedTranspose_Ref_Core()
348 … uu[e * elem_size * num_comp + (k * elem_size + n) * block_size + j - v_offset] * in CeedElemRestrictionApplyCurlOrientedUnsignedTranspose_Ref_Core()
349 … abs(impl->curl_orients[j + (3 * n + 1) * block_size + e * 3 * elem_size]) + in CeedElemRestrictionApplyCurlOrientedUnsignedTranspose_Ref_Core()
350 … uu[e * elem_size * num_comp + (k * elem_size + n + 1) * block_size + j - v_offset] * in CeedElemRestrictionApplyCurlOrientedUnsignedTranspose_Ref_Core()
351 abs(impl->curl_orients[j + (3 * n + 3) * block_size + e * 3 * elem_size]); in CeedElemRestrictionApplyCurlOrientedUnsignedTranspose_Ref_Core()
354 …CeedPragmaAtomic vv[impl->offsets[j + n * block_size + e * elem_size] + k * comp_stride] += vv_loc… in CeedElemRestrictionApplyCurlOrientedUnsignedTranspose_Ref_Core()
358 … vv_loc[j] = uu[e * elem_size * num_comp + (k * elem_size + n - 1) * block_size + j - v_offset] * in CeedElemRestrictionApplyCurlOrientedUnsignedTranspose_Ref_Core()
359 abs(impl->curl_orients[j + (3 * n - 1) * block_size + e * 3 * elem_size]) + in CeedElemRestrictionApplyCurlOrientedUnsignedTranspose_Ref_Core()
360 uu[e * elem_size * num_comp + (k * elem_size + n) * block_size + j - v_offset] * in CeedElemRestrictionApplyCurlOrientedUnsignedTranspose_Ref_Core()
361 abs(impl->curl_orients[j + (3 * n + 1) * block_size + e * 3 * elem_size]); in CeedElemRestrictionApplyCurlOrientedUnsignedTranspose_Ref_Core()
364 …CeedPragmaAtomic vv[impl->offsets[j + n * block_size + e * elem_size] + k * comp_stride] += vv_loc… in CeedElemRestrictionApplyCurlOrientedUnsignedTranspose_Ref_Core()
373 CeedScalar *__restrict__ vv) { in CeedElemRestrictionApplyAtPointsInElement_Ref_Core() argument
380 l_vec_offset = impl->offsets[e]; in CeedElemRestrictionApplyAtPointsInElement_Ref_Core()
384 …for (CeedSize j = 0; j < num_comp; j++) vv[j * num_points + i + e_vec_offset] = uu[impl->offsets[i… in CeedElemRestrictionApplyAtPointsInElement_Ref_Core()
388 …for (CeedSize j = 0; j < num_comp; j++) vv[impl->offsets[i + l_vec_offset] * num_comp + j] += uu[j… in CeedElemRestrictionApplyAtPointsInElement_Ref_Core()
403 CeedScalar *vv; in CeedElemRestrictionApply_Ref_Core() local
412 // Sum into for transpose mode, E-vector to L-vector in CeedElemRestrictionApply_Ref_Core()
413 CeedCallBackend(CeedVectorGetArray(v, CEED_MEM_HOST, &vv)); in CeedElemRestrictionApply_Ref_Core()
415 // Overwrite for notranspose mode, L-vector to E-vector in CeedElemRestrictionApply_Ref_Core()
416 CeedCallBackend(CeedVectorGetArrayWrite(v, CEED_MEM_HOST, &vv)); in CeedElemRestrictionApply_Ref_Core()
419 // Restriction from E-vector to L-vector in CeedElemRestrictionApply_Ref_Core()
421 // uu has shape [elem_size, num_comp, num_elem], row-major in CeedElemRestrictionApply_Ref_Core()
422 // vv has shape [nnodes, num_comp] in CeedElemRestrictionApply_Ref_Core()
427 vv)); in CeedElemRestrictionApply_Ref_Core()
431 v_offset, uu, vv)); in CeedElemRestrictionApply_Ref_Core()
436 … elem_size, v_offset, uu, vv)); in CeedElemRestrictionApply_Ref_Core()
439 v_offset, uu, vv)); in CeedElemRestrictionApply_Ref_Core()
445 … elem_size, v_offset, uu, vv)); in CeedElemRestrictionApply_Ref_Core()
448 … num_elem, elem_size, v_offset, uu, vv)); in CeedElemRestrictionApply_Ref_Core()
451 v_offset, uu, vv)); in CeedElemRestrictionApply_Ref_Core()
455 …d(CeedElemRestrictionApplyAtPointsInElement_Ref_Core(rstr, num_comp, start, stop, t_mode, uu, vv)); in CeedElemRestrictionApply_Ref_Core()
459 // Restriction from L-vector to E-vector in CeedElemRestrictionApply_Ref_Core()
461 // vv has shape [elem_size, num_comp, num_elem], row-major in CeedElemRestrictionApply_Ref_Core()
467 uu, vv)); in CeedElemRestrictionApply_Ref_Core()
471 v_offset, uu, vv)); in CeedElemRestrictionApply_Ref_Core()
476 … elem_size, v_offset, uu, vv)); in CeedElemRestrictionApply_Ref_Core()
479 … elem_size, v_offset, uu, vv)); in CeedElemRestrictionApply_Ref_Core()
485 … elem_size, v_offset, uu, vv)); in CeedElemRestrictionApply_Ref_Core()
488 … num_elem, elem_size, v_offset, uu, vv)); in CeedElemRestrictionApply_Ref_Core()
491 … elem_size, v_offset, uu, vv)); in CeedElemRestrictionApply_Ref_Core()
495 …d(CeedElemRestrictionApplyAtPointsInElement_Ref_Core(rstr, num_comp, start, stop, t_mode, uu, vv)); in CeedElemRestrictionApply_Ref_Core()
500 CeedCallBackend(CeedVectorRestoreArray(v, &vv)); in CeedElemRestrictionApply_Ref_Core()
505 //------------------------------------------------------------------------------
506 // ElemRestriction Apply - Common Sizes
507 //------------------------------------------------------------------------------
608 //------------------------------------------------------------------------------
610 //------------------------------------------------------------------------------
620 …CeedCallBackend(impl->Apply(rstr, num_comp, block_size, comp_stride, 0, num_block, t_mode, true, t… in CeedElemRestrictionApply_Ref()
624 //------------------------------------------------------------------------------
626 //------------------------------------------------------------------------------
637 …CeedCallBackend(impl->Apply(rstr, num_comp, block_size, comp_stride, 0, num_block, t_mode, false, … in CeedElemRestrictionApplyUnsigned_Ref()
641 //------------------------------------------------------------------------------
643 //------------------------------------------------------------------------------
654 …CeedCallBackend(impl->Apply(rstr, num_comp, block_size, comp_stride, 0, num_block, t_mode, false, … in CeedElemRestrictionApplyUnoriented_Ref()
658 //------------------------------------------------------------------------------
660 //------------------------------------------------------------------------------
668 return impl->Apply(rstr, num_comp, 0, 1, elem, elem + 1, t_mode, false, false, u, v, request); in CeedElemRestrictionApplyAtPointsInElement_Ref()
671 //------------------------------------------------------------------------------
673 //------------------------------------------------------------------------------
683 …CeedCallBackend(impl->Apply(rstr, num_comp, block_size, comp_stride, block, block + 1, t_mode, tru… in CeedElemRestrictionApplyBlock_Ref()
687 //------------------------------------------------------------------------------
689 //------------------------------------------------------------------------------
697 *offsets = impl->offsets; in CeedElemRestrictionGetOffsets_Ref()
701 //------------------------------------------------------------------------------
703 //------------------------------------------------------------------------------
711 *orients = impl->orients; in CeedElemRestrictionGetOrientations_Ref()
715 //------------------------------------------------------------------------------
716 // ElemRestriction Get Curl-Conforming Orientations
717 //------------------------------------------------------------------------------
725 *curl_orients = impl->curl_orients; in CeedElemRestrictionGetCurlOrientations_Ref()
729 //------------------------------------------------------------------------------
731 //------------------------------------------------------------------------------
736 CeedCallBackend(CeedFree(&impl->offsets_owned)); in CeedElemRestrictionDestroy_Ref()
737 CeedCallBackend(CeedFree(&impl->orients_owned)); in CeedElemRestrictionDestroy_Ref()
738 CeedCallBackend(CeedFree(&impl->curl_orients_owned)); in CeedElemRestrictionDestroy_Ref()
743 //------------------------------------------------------------------------------
745 //------------------------------------------------------------------------------
781 // Expand E-vector size for AtPoints in CeedElemRestrictionCreate_Ref()
786 CeedInt num_points = offsets[i + 1] - offsets[i]; in CeedElemRestrictionCreate_Ref()
791 // -- Increase size for last element in CeedElemRestrictionCreate_Ref()
792 num_points_total += (max_points - (offsets[num_elem] - offsets[num_elem - 1])); in CeedElemRestrictionCreate_Ref()
813 …CeedCheck(offsets[i] >= 0 && offsets[i] + (num_comp - 1) * comp_stride < l_size, ceed, CEED_ERROR_… in CeedElemRestrictionCreate_Ref()
821 …tCeedIntArray(offsets, copy_mode, num_offsets, &impl->offsets_owned, &impl->offsets_borrowed, &imp… in CeedElemRestrictionCreate_Ref()
826 …HostBoolArray(orients, copy_mode, num_offsets, &impl->orients_owned, &impl->orients_borrowed, &imp… in CeedElemRestrictionCreate_Ref()
829 …tCeedInt8Array(curl_orients, copy_mode, 3 * num_offsets, &impl->curl_orients_owned, &impl->curl_or… in CeedElemRestrictionCreate_Ref()
830 &impl->curl_orients)); in CeedElemRestrictionCreate_Ref()
835 CeedInt index = -1; in CeedElemRestrictionCreate_Ref()
840 impl->Apply = CeedElemRestrictionApply_Ref_110; in CeedElemRestrictionCreate_Ref()
843 impl->Apply = CeedElemRestrictionApply_Ref_111; in CeedElemRestrictionCreate_Ref()
846 impl->Apply = CeedElemRestrictionApply_Ref_180; in CeedElemRestrictionCreate_Ref()
849 impl->Apply = CeedElemRestrictionApply_Ref_181; in CeedElemRestrictionCreate_Ref()
852 impl->Apply = CeedElemRestrictionApply_Ref_310; in CeedElemRestrictionCreate_Ref()
855 impl->Apply = CeedElemRestrictionApply_Ref_311; in CeedElemRestrictionCreate_Ref()
858 impl->Apply = CeedElemRestrictionApply_Ref_380; in CeedElemRestrictionCreate_Ref()
861 impl->Apply = CeedElemRestrictionApply_Ref_381; in CeedElemRestrictionCreate_Ref()
865 impl->Apply = CeedElemRestrictionApply_Ref_410; in CeedElemRestrictionCreate_Ref()
868 impl->Apply = CeedElemRestrictionApply_Ref_411; in CeedElemRestrictionCreate_Ref()
871 impl->Apply = CeedElemRestrictionApply_Ref_480; in CeedElemRestrictionCreate_Ref()
874 impl->Apply = CeedElemRestrictionApply_Ref_481; in CeedElemRestrictionCreate_Ref()
877 impl->Apply = CeedElemRestrictionApply_Ref_510; in CeedElemRestrictionCreate_Ref()
881 impl->Apply = CeedElemRestrictionApply_Ref_511; in CeedElemRestrictionCreate_Ref()
885 impl->Apply = CeedElemRestrictionApply_Ref_580; in CeedElemRestrictionCreate_Ref()
889 impl->Apply = CeedElemRestrictionApply_Ref_581; in CeedElemRestrictionCreate_Ref()
892 impl->Apply = CeedElemRestrictionApply_Ref_Core; in CeedElemRestrictionCreate_Ref()
912 //------------------------------------------------------------------------------