1*5aed82e4SJeremy L Thompson // Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC and other CEED contributors. 23d8e8822SJeremy L Thompson // All Rights Reserved. See the top-level LICENSE and NOTICE files for details. 34a2e7687Sjeremylt // 43d8e8822SJeremy L Thompson // SPDX-License-Identifier: BSD-2-Clause 54a2e7687Sjeremylt // 63d8e8822SJeremy L Thompson // This file is part of CEED: http://github.com/ceed 74a2e7687Sjeremylt 894b7b29bSJeremy L Thompson #ifndef CEED_BLOCKED_H 994b7b29bSJeremy L Thompson #define CEED_BLOCKED_H 103d576824SJeremy L Thompson 1149aac155SJeremy L Thompson #include <ceed.h> 12ec3da8bcSJed Brown #include <ceed/backend.h> 133d576824SJeremy L Thompson #include <stdbool.h> 143d576824SJeremy L Thompson #include <stdint.h> 154a2e7687Sjeremylt 164a2e7687Sjeremylt typedef struct { 17d1d35e2fSjeremylt CeedScalar *colo_grad_1d; 1852d6035fSJeremy L Thompson } CeedBasis_Blocked; 1952d6035fSJeremy L Thompson 2052d6035fSJeremy L Thompson typedef struct { 21edb2538eSJeremy L Thompson bool is_identity_qf, is_identity_rstr_op; 22edb2538eSJeremy L Thompson CeedElemRestriction *block_rstr; /* Blocked versions of restrictions */ 234fc1f125SJeremy L Thompson CeedVector *e_vecs_full; /* Full E-vectors, inputs followed by outputs */ 244fc1f125SJeremy L Thompson uint64_t *input_states; /* State counter of inputs */ 254fc1f125SJeremy L Thompson CeedVector *e_vecs_in; /* Element block input E-vectors */ 264fc1f125SJeremy L Thompson CeedVector *e_vecs_out; /* Element block output E-vectors */ 274fc1f125SJeremy L Thompson CeedVector *q_vecs_in; /* Element block input Q-vectors */ 284fc1f125SJeremy L Thompson CeedVector *q_vecs_out; /* Element block output Q-vectors */ 294fc1f125SJeremy L Thompson CeedInt num_inputs, num_outputs; 304fc1f125SJeremy L Thompson CeedInt num_active_in, num_active_out; 31bb219a0fSJeremy L Thompson CeedVector *qf_active_in; 324fc1f125SJeremy L Thompson CeedVector qf_l_vec; 33ad70ee2cSJeremy L Thompson CeedElemRestriction qf_block_rstr; 344a2e7687Sjeremylt } CeedOperator_Blocked; 354a2e7687Sjeremylt 364a2e7687Sjeremylt CEED_INTERN int CeedOperatorCreate_Blocked(CeedOperator op); 373d576824SJeremy L Thompson 3894b7b29bSJeremy L Thompson #endif // CEED_BLOCKED_H 39