ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
Loading...
Searching...
No Matches
icc.cpp File Reference

Functions to compute the electric field acting on the induced charges, excluding forces other than the electrostatic ones. More...

#include "config/config.hpp"
#include "icc.hpp"
#include "Particle.hpp"
#include "ParticleRange.hpp"
#include "PropagationMode.hpp"
#include "actor/visitors.hpp"
#include "cell_system/CellStructure.hpp"
#include "communication.hpp"
#include "electrostatics/coulomb.hpp"
#include "electrostatics/coulomb_inline.hpp"
#include "electrostatics/p3m.hpp"
#include "errorhandling.hpp"
#include "integrators/Propagation.hpp"
#include "short_range_cabana.hpp"
#include "system/System.hpp"
#include <boost/mpi/collectives/all_reduce.hpp>
#include <boost/mpi/operations.hpp>
#include <Kokkos_Core.hpp>
#include <omp.h>
#include <algorithm>
#include <cmath>
#include <cstddef>
#include <limits>
#include <numbers>
#include <stdexcept>
#include <variant>
#include <vector>
+ Include dependency graph for icc.cpp:

Go to the source code of this file.

Classes

struct  SanityChecksICC
 

Functions

static void force_calc_icc (CellStructure &cell_structure, Coulomb::ShortRangeForceKernel::result_type const &coulomb_kernel, Coulomb::ShortRangeForceCorrectionsKernel::result_type const &elc_kernel)
 Calculate the electrostatic forces between source charges (= real charges) and wall charges.
 

Detailed Description

Functions to compute the electric field acting on the induced charges, excluding forces other than the electrostatic ones.

Detailed information about the ICC* method is included in the corresponding header file icc.hpp.

Definition in file icc.cpp.

Function Documentation

◆ force_calc_icc()

static void force_calc_icc ( CellStructure cell_structure,
Coulomb::ShortRangeForceKernel::result_type const coulomb_kernel,
Coulomb::ShortRangeForceCorrectionsKernel::result_type const elc_kernel 
)
static

Calculate the electrostatic forces between source charges (= real charges) and wall charges.

For each electrostatic method, the proper functions for short- and long-range parts are called. Long-range parts are calculated directly, short-range parts need helper functions according to the particle data organisation. This is a modified version of System::System::calculate_forces.

Definition at line 73 of file icc.cpp.

References CellStructure::for_each_ghost_particle(), CellStructure::for_each_local_particle(), get_ptr(), CellStructure::non_bonded_loop(), CellStructure::reset_local_force(), and stream.

Referenced by ICCStar::iteration().