// Copyright (c) 2017-2022, Lawrence Livermore National Security, LLC and other CEED contributors. // All Rights Reserved. See the top-level LICENSE and NOTICE files for details. // // SPDX-License-Identifier: BSD-2-Clause // // This file is part of CEED: http://github.com/ceed /// @file /// libCEED QFunctions for mass operator example using PETSc #ifndef bp1_h #define bp1_h #include #include // ----------------------------------------------------------------------------- // This QFunction sets up the geometric factors required to apply the // mass operator // // The quadrature data is stored in the array q_data. // // We require the determinant of the Jacobian to properly compute integrals of // the form: int( u v ) // // Qdata: det_J * w // // ----------------------------------------------------------------------------- CEED_QFUNCTION(SetupMassGeo)(void *ctx, const CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out) { // Inputs const CeedScalar(*J)[3][CEED_Q_VLA] = (const CeedScalar(*)[3][CEED_Q_VLA])in[1]; const CeedScalar(*w) = in[2]; // Note: *X = in[0] // Outputs CeedScalar *q_data = out[0]; const CeedInt dim = 3; // Quadrature Point Loop CeedPragmaSIMD for (CeedInt i=0; i