From d40b88497b4c42fa00593cbb3b84a659e7d46c01 Mon Sep 17 00:00:00 2001
From: ravikiran <ravi.k.ayyala@fau.de>
Date: Fri, 22 Sep 2023 12:48:09 +0200
Subject: [PATCH] small changes made in ChargedParticles.cpp and
 singleParticle.prm before integrating to multigrid

---
 .../showcases/ChargedParticles/ChargedParticles.cpp | 13 ++++++++-----
 .../ChargedParticles/poisson_solver/PoissonSolver.h |  3 +++
 2 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/apps/showcases/ChargedParticles/ChargedParticles.cpp b/apps/showcases/ChargedParticles/ChargedParticles.cpp
index e04056e1b..2b5293628 100644
--- a/apps/showcases/ChargedParticles/ChargedParticles.cpp
+++ b/apps/showcases/ChargedParticles/ChargedParticles.cpp
@@ -94,6 +94,7 @@
 #include "PostProcessingUtilities.h"
 #include "ResetElectrostaticForceKernel.h"
 #include "poisson_solver/PoissonSolver.h"
+#include "ErrorNorms.h"
 
 namespace charged_particles
 {
@@ -449,6 +450,8 @@ int main(int argc, char** argv)
    const uint_t numXBlocks                = numericalSetup.getParameter< uint_t >("numXBlocks");
    const uint_t numYBlocks                = numericalSetup.getParameter< uint_t >("numYBlocks");
    const uint_t numZBlocks                = numericalSetup.getParameter< uint_t >("numZBlocks");
+   const real_t absResThreshold           = numericalSetup.getParameter< real_t >("absResThreshold");
+   const uint_t jacobiIterations          = numericalSetup.getParameter< uint_t >("jacobiIterations");
    const bool useLubricationForces        = numericalSetup.getParameter< bool >("useLubricationForces");
    const uint_t numberOfParticleSubCycles = numericalSetup.getParameter< uint_t >("numberOfParticleSubCycles");
 
@@ -679,11 +682,11 @@ int main(int argc, char** argv)
                                                        /* rhs */ chargeDensityFieldID,
                                                        /* blockforest */blocks,
                                                        /* boundary conditions */ boundaryHandling, boundaryConditions,
-                                                       /* iterations */ uint_c(1000),
-                                                       /* use abs (true) or rel (false) threshold */ false,
-                                                       /* abs res threshold */ real_c(1e-16),
+                                                       /* iterations */ uint_c(jacobiIterations),
+                                                       /* use abs (true) or rel (false) threshold */ true,
+                                                       /* abs res threshold */ real_c(absResThreshold),
                                                        /* rel res threshold */ real_c(1e-6),
-                                                       /* res check freq */ uint_c(200));
+                                                       /* res check freq */ uint_c(1000));
    //////////////////
    // RPD COUPLING //
    //////////////////
@@ -1159,8 +1162,8 @@ int main(int argc, char** argv)
 
       // Compute electrostatic force field from electric potential (using finite differences)
       chargeForceUpdate();
-
       reduceProperty.operator()< mesa_pd::ElectrostaticForceNotification >(*ps);
+      WriteElectrostaticForces< ParticleAccessor_T >(accessor, timeStep);
 
       if (timeStep == 0)
       {
diff --git a/apps/showcases/ChargedParticles/poisson_solver/PoissonSolver.h b/apps/showcases/ChargedParticles/poisson_solver/PoissonSolver.h
index a5582832d..eaf07d1b3 100644
--- a/apps/showcases/ChargedParticles/poisson_solver/PoissonSolver.h
+++ b/apps/showcases/ChargedParticles/poisson_solver/PoissonSolver.h
@@ -210,6 +210,9 @@ class PoissonSolver
 
       WALBERLA_LOG_INFO_ON_ROOT("Initial residual = " << initRes_);
    }
+   real_t getResidualNorm(){
+      return (*residualNorm_)();
+   }
 
  private:
    // input fields
-- 
GitLab