| matops.c (77ad9f2917358ad654845919921e911aaeeffe6e) | matops.c (d99fa3c5cd91a1690aedf0679cbf290d44fec74c) |
|---|---|
| 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. --- 131 unchanged lines hidden (view full) --- 140 141 // Restore PETSc vectors 142 CeedVectorTakeArray(user->ceedVecC, user->memType, NULL); 143 CeedVectorTakeArray(user->ceedVecF, user->memType, NULL); 144 ierr = user->VecRestoreArrayRead(user->locVecC, (const PetscScalar **)&c); 145 CHKERRQ(ierr); 146 ierr = user->VecRestoreArray(user->locVecF, &f); CHKERRQ(ierr); 147 | 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. --- 131 unchanged lines hidden (view full) --- 140 141 // Restore PETSc vectors 142 CeedVectorTakeArray(user->ceedVecC, user->memType, NULL); 143 CeedVectorTakeArray(user->ceedVecF, user->memType, NULL); 144 ierr = user->VecRestoreArrayRead(user->locVecC, (const PetscScalar **)&c); 145 CHKERRQ(ierr); 146 ierr = user->VecRestoreArray(user->locVecF, &f); CHKERRQ(ierr); 147 |
| 148 // Multiplicity 149 ierr = VecPointwiseMult(user->locVecF, user->locVecF, user->multVec); 150 | |
| 151 // Local-to-global 152 ierr = VecZeroEntries(Y); CHKERRQ(ierr); 153 ierr = DMLocalToGlobal(user->dmF, user->locVecF, ADD_VALUES, Y); 154 CHKERRQ(ierr); 155 156 PetscFunctionReturn(0); 157} 158 --- 8 unchanged lines hidden (view full) --- 167 ierr = MatShellGetContext(A, &user); CHKERRQ(ierr); 168 169 // Global-to-local 170 ierr = VecZeroEntries(user->locVecF); CHKERRQ(ierr); 171 ierr = DMGlobalToLocal(user->dmF, X, INSERT_VALUES, user->locVecF); 172 CHKERRQ(ierr); 173 ierr = VecZeroEntries(user->locVecC); CHKERRQ(ierr); 174 | 148 // Local-to-global 149 ierr = VecZeroEntries(Y); CHKERRQ(ierr); 150 ierr = DMLocalToGlobal(user->dmF, user->locVecF, ADD_VALUES, Y); 151 CHKERRQ(ierr); 152 153 PetscFunctionReturn(0); 154} 155 --- 8 unchanged lines hidden (view full) --- 164 ierr = MatShellGetContext(A, &user); CHKERRQ(ierr); 165 166 // Global-to-local 167 ierr = VecZeroEntries(user->locVecF); CHKERRQ(ierr); 168 ierr = DMGlobalToLocal(user->dmF, X, INSERT_VALUES, user->locVecF); 169 CHKERRQ(ierr); 170 ierr = VecZeroEntries(user->locVecC); CHKERRQ(ierr); 171 |
| 175 // Multiplicity 176 ierr = VecPointwiseMult(user->locVecF, user->locVecF, user->multVec); 177 CHKERRQ(ierr); 178 | |
| 179 // Setup CEED vectors 180 ierr = user->VecGetArrayRead(user->locVecF, (const PetscScalar **)&f); 181 CHKERRQ(ierr); 182 ierr = user->VecGetArray(user->locVecC, &c); CHKERRQ(ierr); 183 CeedVectorSetArray(user->ceedVecF, user->memType, CEED_USE_POINTER, f); 184 CeedVectorSetArray(user->ceedVecC, user->memType, CEED_USE_POINTER, c); 185 186 // Apply CEED operator --- 110 unchanged lines hidden --- | 172 // Setup CEED vectors 173 ierr = user->VecGetArrayRead(user->locVecF, (const PetscScalar **)&f); 174 CHKERRQ(ierr); 175 ierr = user->VecGetArray(user->locVecC, &c); CHKERRQ(ierr); 176 CeedVectorSetArray(user->ceedVecF, user->memType, CEED_USE_POINTER, f); 177 CeedVectorSetArray(user->ceedVecC, user->memType, CEED_USE_POINTER, c); 178 179 // Apply CEED operator --- 110 unchanged lines hidden --- |