ceed-basis.c (ad6481ce28fcfada16ee6d8a13bbacd137fe686a) ceed-basis.c (ecc88aeb6e47c91d01ac230341895a796d10ab95)
1// Copyright (c) 2017-2022, Lawrence Livermore National Security, LLC and other CEED contributors.
2// All Rights Reserved. See the top-level LICENSE and NOTICE files for details.
3//
4// SPDX-License-Identifier: BSD-2-Clause
5//
6// This file is part of CEED: http://github.com/ceed
7
8#include <ceed-impl.h>

--- 889 unchanged lines hidden (view full) ---

898 @return An error code: 0 - success, otherwise - failure
899
900 @ref User
901**/
902int CeedBasisCreateProjection(CeedBasis basis_from, CeedBasis basis_to, CeedBasis *basis_project) {
903 Ceed ceed;
904 CeedCall(CeedBasisGetCeed(basis_to, &ceed));
905
1// Copyright (c) 2017-2022, Lawrence Livermore National Security, LLC and other CEED contributors.
2// All Rights Reserved. See the top-level LICENSE and NOTICE files for details.
3//
4// SPDX-License-Identifier: BSD-2-Clause
5//
6// This file is part of CEED: http://github.com/ceed
7
8#include <ceed-impl.h>

--- 889 unchanged lines hidden (view full) ---

898 @return An error code: 0 - success, otherwise - failure
899
900 @ref User
901**/
902int CeedBasisCreateProjection(CeedBasis basis_from, CeedBasis basis_to, CeedBasis *basis_project) {
903 Ceed ceed;
904 CeedCall(CeedBasisGetCeed(basis_to, &ceed));
905
906 // Create projectior matrix
906 // Create projection matrix
907 CeedScalar *interp_project, *grad_project;
908 CeedCall(CeedBasisCreateProjectionMatrices(basis_from, basis_to, &interp_project, &grad_project));
909
910 // Build basis
911 bool is_tensor;
912 CeedInt dim, num_comp;
913 CeedScalar *q_ref, *q_weight;
914 CeedCall(CeedBasisIsTensor(basis_to, &is_tensor));

--- 484 unchanged lines hidden (view full) ---

1399
1400 @param[in,out] basis CeedBasis to destroy
1401
1402 @return An error code: 0 - success, otherwise - failure
1403
1404 @ref User
1405**/
1406int CeedBasisDestroy(CeedBasis *basis) {
907 CeedScalar *interp_project, *grad_project;
908 CeedCall(CeedBasisCreateProjectionMatrices(basis_from, basis_to, &interp_project, &grad_project));
909
910 // Build basis
911 bool is_tensor;
912 CeedInt dim, num_comp;
913 CeedScalar *q_ref, *q_weight;
914 CeedCall(CeedBasisIsTensor(basis_to, &is_tensor));

--- 484 unchanged lines hidden (view full) ---

1399
1400 @param[in,out] basis CeedBasis to destroy
1401
1402 @return An error code: 0 - success, otherwise - failure
1403
1404 @ref User
1405**/
1406int CeedBasisDestroy(CeedBasis *basis) {
1407 if (!*basis || --(*basis)->ref_count > 0) {
1408 *basis = NULL;
1409 return CEED_ERROR_SUCCESS;
1410 }
1407 if (!*basis || --(*basis)->ref_count > 0) return CEED_ERROR_SUCCESS;
1411 if ((*basis)->Destroy) CeedCall((*basis)->Destroy(*basis));
1412 if ((*basis)->contract) CeedCall(CeedTensorContractDestroy(&(*basis)->contract));
1413 CeedCall(CeedFree(&(*basis)->interp));
1414 CeedCall(CeedFree(&(*basis)->interp_1d));
1415 CeedCall(CeedFree(&(*basis)->grad));
1416 CeedCall(CeedFree(&(*basis)->div));
1417 CeedCall(CeedFree(&(*basis)->grad_1d));
1418 CeedCall(CeedFree(&(*basis)->q_ref_1d));

--- 416 unchanged lines hidden ---
1408 if ((*basis)->Destroy) CeedCall((*basis)->Destroy(*basis));
1409 if ((*basis)->contract) CeedCall(CeedTensorContractDestroy(&(*basis)->contract));
1410 CeedCall(CeedFree(&(*basis)->interp));
1411 CeedCall(CeedFree(&(*basis)->interp_1d));
1412 CeedCall(CeedFree(&(*basis)->grad));
1413 CeedCall(CeedFree(&(*basis)->div));
1414 CeedCall(CeedFree(&(*basis)->grad_1d));
1415 CeedCall(CeedFree(&(*basis)->q_ref_1d));

--- 416 unchanged lines hidden ---