multigrid.c (cb32e2e7f026784d97a57f1901677e9727def907) multigrid.c (dc7d240c1c3ecbc40e893ea38e37c8e19d48593c)
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.

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

141 }
142 }
143
144 // Allocate arrays for PETSc objects for each level
145 switch (coarsen) {
146 case COARSEN_UNIFORM:
147 numlevels = degree;
148 break;
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.

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

141 }
142 }
143
144 // Allocate arrays for PETSc objects for each level
145 switch (coarsen) {
146 case COARSEN_UNIFORM:
147 numlevels = degree;
148 break;
149 case COARSEN_LOGRITHMIC:
149 case COARSEN_LOGARITHMIC:
150 numlevels = ceil(log(degree)/log(2)) + 1;
151 break;
152 }
153 ierr = PetscMalloc1(numlevels, &leveldegrees); CHKERRQ(ierr);
154 switch (coarsen) {
155 case COARSEN_UNIFORM:
156 for (int i=0; i<numlevels; i++) leveldegrees[i] = i + 1;
157 break;
150 numlevels = ceil(log(degree)/log(2)) + 1;
151 break;
152 }
153 ierr = PetscMalloc1(numlevels, &leveldegrees); CHKERRQ(ierr);
154 switch (coarsen) {
155 case COARSEN_UNIFORM:
156 for (int i=0; i<numlevels; i++) leveldegrees[i] = i + 1;
157 break;
158 case COARSEN_LOGRITHMIC:
158 case COARSEN_LOGARITHMIC:
159 for (int i=0; i<numlevels-1; i++) leveldegrees[i] = pow(2,i);
160 leveldegrees[numlevels-1] = degree;
161 break;
162 }
163 ierr = PetscMalloc1(numlevels, &dm); CHKERRQ(ierr);
164 ierr = PetscMalloc1(numlevels, &X); CHKERRQ(ierr);
165 ierr = PetscMalloc1(numlevels, &Xloc); CHKERRQ(ierr);
166 ierr = PetscMalloc1(numlevels, &mult); CHKERRQ(ierr);

--- 459 unchanged lines hidden ---
159 for (int i=0; i<numlevels-1; i++) leveldegrees[i] = pow(2,i);
160 leveldegrees[numlevels-1] = degree;
161 break;
162 }
163 ierr = PetscMalloc1(numlevels, &dm); CHKERRQ(ierr);
164 ierr = PetscMalloc1(numlevels, &X); CHKERRQ(ierr);
165 ierr = PetscMalloc1(numlevels, &Xloc); CHKERRQ(ierr);
166 ierr = PetscMalloc1(numlevels, &mult); CHKERRQ(ierr);

--- 459 unchanged lines hidden ---