From 677117942c148531354fa31f39f1ccc1a29eac91 Mon Sep 17 00:00:00 2001 From: BS Date: Tue, 13 Apr 2021 15:32:32 +0200 Subject: [PATCH 1/2] Set all boundary cells in LaplaceXZ * Also fixes a small typo in examples --- examples/laplacexy/alfven-wave/alfven.cxx | 2 +- src/invert/laplacexz/impls/petsc/laplacexz-petsc.cxx | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/examples/laplacexy/alfven-wave/alfven.cxx b/examples/laplacexy/alfven-wave/alfven.cxx index f9f0c06075..d3c1dc3385 100644 --- a/examples/laplacexy/alfven-wave/alfven.cxx +++ b/examples/laplacexy/alfven-wave/alfven.cxx @@ -120,7 +120,7 @@ class Alfven : public PhysicsModel { // Field2D Vort2D = DC(Vort); // n=0 component // phi2D = laplacexy->solve(Vort2D, phi2D); - // Calculate phi from potential + // Calculate phi from vorticity if (split_n0) { // Split into axisymmetric and non-axisymmetric components Field2D Vort2D = DC(Vort); // n=0 component diff --git a/src/invert/laplacexz/impls/petsc/laplacexz-petsc.cxx b/src/invert/laplacexz/impls/petsc/laplacexz-petsc.cxx index a27983cf57..1af4060807 100644 --- a/src/invert/laplacexz/impls/petsc/laplacexz-petsc.cxx +++ b/src/invert/laplacexz/impls/petsc/laplacexz-petsc.cxx @@ -788,7 +788,8 @@ Field3D LaplaceXZpetsc::solve(const Field3D &bin, const Field3D &x0in) { for(int z=0; z < localmesh->LocalNz; z++) { PetscScalar val; VecGetValues(xs, 1, &ind, &val ); - result(localmesh->xstart-1,y,z) = val; + for (int x = localmesh->xstart - 1; x >= 0; --x) + result(x,y,z) = val; ind++; } } @@ -807,7 +808,8 @@ Field3D LaplaceXZpetsc::solve(const Field3D &bin, const Field3D &x0in) { for(int z=0; z < localmesh->LocalNz; z++) { PetscScalar val; VecGetValues(xs, 1, &ind, &val ); - result(localmesh->xend+1,y,z) = val; + for(int x=localmesh->xend+1; xLocalNx; ++x) + result(x,y,z) = val; ind++; } } From a64d1eca5b3b7ea78835ecd8d768ecc0e39dea37 Mon Sep 17 00:00:00 2001 From: BS Date: Tue, 13 Apr 2021 15:44:11 +0200 Subject: [PATCH 2/2] Add brackets to previous commit --- src/invert/laplacexz/impls/petsc/laplacexz-petsc.cxx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/invert/laplacexz/impls/petsc/laplacexz-petsc.cxx b/src/invert/laplacexz/impls/petsc/laplacexz-petsc.cxx index 1af4060807..641d825b7e 100644 --- a/src/invert/laplacexz/impls/petsc/laplacexz-petsc.cxx +++ b/src/invert/laplacexz/impls/petsc/laplacexz-petsc.cxx @@ -788,8 +788,9 @@ Field3D LaplaceXZpetsc::solve(const Field3D &bin, const Field3D &x0in) { for(int z=0; z < localmesh->LocalNz; z++) { PetscScalar val; VecGetValues(xs, 1, &ind, &val ); - for (int x = localmesh->xstart - 1; x >= 0; --x) + for (int x = localmesh->xstart - 1; x >= 0; --x){ result(x,y,z) = val; + } ind++; } } @@ -808,8 +809,9 @@ Field3D LaplaceXZpetsc::solve(const Field3D &bin, const Field3D &x0in) { for(int z=0; z < localmesh->LocalNz; z++) { PetscScalar val; VecGetValues(xs, 1, &ind, &val ); - for(int x=localmesh->xend+1; xLocalNx; ++x) + for(int x=localmesh->xend+1; xLocalNx; ++x){ result(x,y,z) = val; + } ind++; } }