ceed-operator.c (f643baed4eda0a1f36e3d61f29c6ab9103a63892) ceed-operator.c (2bba3ffaf13cc90ae8de830effb3b11a0650a2fc)
1// Copyright (c) 2017, Lawrence Livermore National Security, LLC. Produced at
2// the Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights
3// reserved. See files LICENSE and NOTICE for details.
4//
5// This file is part of CEED, a collection of benchmarks, miniapps, software
6// libraries and APIs for efficient high-order finite element and spectral
7// element discretizations for exascale applications. For more information and
8// source code availability see http://github.com/ceed.

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

806 @param[out] assembled CeedVector to store assembled CeedOperator diagonal
807 @param request Address of CeedRequest for non-blocking completion, else
808 @ref CEED_REQUEST_IMMEDIATE
809
810 @return An error code: 0 - success, otherwise - failure
811
812 @ref User
813**/
1// Copyright (c) 2017, Lawrence Livermore National Security, LLC. Produced at
2// the Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights
3// reserved. See files LICENSE and NOTICE for details.
4//
5// This file is part of CEED, a collection of benchmarks, miniapps, software
6// libraries and APIs for efficient high-order finite element and spectral
7// element discretizations for exascale applications. For more information and
8// source code availability see http://github.com/ceed.

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

806 @param[out] assembled CeedVector to store assembled CeedOperator diagonal
807 @param request Address of CeedRequest for non-blocking completion, else
808 @ref CEED_REQUEST_IMMEDIATE
809
810 @return An error code: 0 - success, otherwise - failure
811
812 @ref User
813**/
814int CeedOperatorLinearAssembleDiagonal(CeedOperator op, CeedVector *assembled,
814int CeedOperatorLinearAssembleDiagonal(CeedOperator op, CeedVector assembled,
815 CeedRequest *request) {
816 int ierr;
817 Ceed ceed = op->ceed;
818 ierr = CeedOperatorCheckReady(ceed, op); CeedChk(ierr);
819
820 // Use backend version, if available
821 if (op->LinearAssembleDiagonal) {
822 ierr = op->LinearAssembleDiagonal(op, assembled, request); CeedChk(ierr);
823 } else {
824 // Fallback to reference Ceed
825 if (!op->opfallback) {
826 ierr = CeedOperatorCreateFallback(op); CeedChk(ierr);
827 }
828 // Assemble
815 CeedRequest *request) {
816 int ierr;
817 Ceed ceed = op->ceed;
818 ierr = CeedOperatorCheckReady(ceed, op); CeedChk(ierr);
819
820 // Use backend version, if available
821 if (op->LinearAssembleDiagonal) {
822 ierr = op->LinearAssembleDiagonal(op, assembled, request); CeedChk(ierr);
823 } else {
824 // Fallback to reference Ceed
825 if (!op->opfallback) {
826 ierr = CeedOperatorCreateFallback(op); CeedChk(ierr);
827 }
828 // Assemble
829 ierr = CeedVectorSetValue(assembled, 0.0); CeedChk(ierr);
829 ierr = op->opfallback->LinearAssembleDiagonal(op->opfallback, assembled,
830 request); CeedChk(ierr);
831 }
832
833 return 0;
834}
835
836/**

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

852 @param request Address of CeedRequest for non-blocking completion, else
853 CEED_REQUEST_IMMEDIATE
854
855 @return An error code: 0 - success, otherwise - failure
856
857 @ref User
858**/
859int CeedOperatorLinearAssemblePointBlockDiagonal(CeedOperator op,
830 ierr = op->opfallback->LinearAssembleDiagonal(op->opfallback, assembled,
831 request); CeedChk(ierr);
832 }
833
834 return 0;
835}
836
837/**

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

853 @param request Address of CeedRequest for non-blocking completion, else
854 CEED_REQUEST_IMMEDIATE
855
856 @return An error code: 0 - success, otherwise - failure
857
858 @ref User
859**/
860int CeedOperatorLinearAssemblePointBlockDiagonal(CeedOperator op,
860 CeedVector *assembled,
861 CeedRequest *request) {
861 CeedVector assembled, CeedRequest *request) {
862 int ierr;
863 Ceed ceed = op->ceed;
864 ierr = CeedOperatorCheckReady(ceed, op); CeedChk(ierr);
865
866 // Use backend version, if available
867 if (op->LinearAssemblePointBlockDiagonal) {
868 ierr = op->LinearAssemblePointBlockDiagonal(op, assembled, request);
869 CeedChk(ierr);
870 } else {
871 // Fallback to reference Ceed
872 if (!op->opfallback) {
873 ierr = CeedOperatorCreateFallback(op); CeedChk(ierr);
874 }
875 // Assemble
862 int ierr;
863 Ceed ceed = op->ceed;
864 ierr = CeedOperatorCheckReady(ceed, op); CeedChk(ierr);
865
866 // Use backend version, if available
867 if (op->LinearAssemblePointBlockDiagonal) {
868 ierr = op->LinearAssemblePointBlockDiagonal(op, assembled, request);
869 CeedChk(ierr);
870 } else {
871 // Fallback to reference Ceed
872 if (!op->opfallback) {
873 ierr = CeedOperatorCreateFallback(op); CeedChk(ierr);
874 }
875 // Assemble
876 ierr = CeedVectorSetValue(assembled, 0.0); CeedChk(ierr);
876 ierr = op->opfallback->LinearAssemblePointBlockDiagonal(op->opfallback,
877 assembled, request); CeedChk(ierr);
878 }
879
880 return 0;
881}
882
883/**

--- 269 unchanged lines hidden ---
877 ierr = op->opfallback->LinearAssemblePointBlockDiagonal(op->opfallback,
878 assembled, request); CeedChk(ierr);
879 }
880
881 return 0;
882}
883
884/**

--- 269 unchanged lines hidden ---