ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
|
#include "config/config.hpp"
#include "electrostatics/elc.hpp"
#include "electrostatics/coulomb.hpp"
#include "electrostatics/p3m.hpp"
#include "BoxGeometry.hpp"
#include "Particle.hpp"
#include "ParticlePropertyIterator.hpp"
#include "ParticleRange.hpp"
#include "cell_system/CellStructure.hpp"
#include "communication.hpp"
#include "errorhandling.hpp"
#include "system/System.hpp"
#include <utils/Vector.hpp>
#include <utils/math/sqr.hpp>
#include <boost/mpi/collectives/all_reduce.hpp>
#include <boost/range/combine.hpp>
#include <algorithm>
#include <cassert>
#include <cmath>
#include <cstddef>
#include <functional>
#include <numbers>
#include <variant>
#include <vector>
Go to the source code of this file.
Classes | |
struct | SCCache |
structure for caching sin and cos values More... | |
struct | ImageSum |
Macros | |
Product decomposition data organization | |
For the cell blocks it is assumed that the lower blocks part is in the lower half. This has to have positive sign, so that has to be first. | |
#define | POQESP 0 |
#define | POQECP 1 |
#define | POQESM 2 |
#define | POQECM 3 |
#define | PQESSP 0 |
#define | PQESCP 1 |
#define | PQECSP 2 |
#define | PQECCP 3 |
#define | PQESSM 4 |
#define | PQESCM 5 |
#define | PQECSM 6 |
#define | PQECCM 7 |
Enumerations | |
enum class | PoQ : int { P , Q } |
ELC axes (x and y directions) More... | |
enum class | ChargeProtocol : int { REAL , IMAGE , BOTH } |
ELC charge sum/assign protocol: real charges, image charges, or both. More... | |
Functions | |
template<std::size_t dir> | |
static std::vector< SCCache > | calc_sc_cache (ParticleRange const &particles, std::size_t n_freq, double u) |
Calculate cached sin/cos values for one direction. | |
static std::pair< std::size_t, std::size_t > | prepare_sc_cache (ParticleRange const &particles, BoxGeometry const &box_geo, double far_cut) |
static void | clear_vec (double *pdc, std::size_t size) |
static void | copy_vec (double *pdc_d, double const *pdc_s, std::size_t size) |
static void | add_vec (double *pdc_d, double const *pdc_s1, double const *pdc_s2, std::size_t size) |
static void | addscale_vec (double *pdc_d, double scale, double const *pdc_s1, double const *pdc_s2, std::size_t size) |
static void | scale_vec (double scale, double *pdc, std::size_t size) |
static double * | block (double *p, std::size_t index, std::size_t size) |
static void | distribute (std::size_t size) |
static auto | calc_total_charge (CellStructure const &cell_structure) |
template<ChargeProtocol protocol, typename combined_ranges > | |
void | charge_assign (elc_data const &elc, CoulombP3M &solver, combined_ranges const &p_q_pos_range) |
template<ChargeProtocol protocol, typename combined_range > | |
void | modify_p3m_sums (elc_data const &elc, CoulombP3M &solver, combined_range const &p_q_pos_range) |
q=0 or p=0 per frequency code | |
template<PoQ axis> | |
void | setup_PoQ (elc_data const &elc, double prefactor, std::size_t index, double omega, ParticleRange const &particles, BoxGeometry const &box_geo) |
template<PoQ axis> | |
void | add_PoQ_force (ParticleRange const &particles) |
static double | PoQ_energy (double omega, std::size_t n_part) |
p,q <> 0 per frequency code | |
static void | setup_PQ (elc_data const &elc, double prefactor, std::size_t index_p, std::size_t index_q, double omega, ParticleRange const &particles, BoxGeometry const &box_geo) |
static void | add_PQ_force (std::size_t index_p, std::size_t index_q, double omega, ParticleRange const &particles, BoxGeometry const &box_geo) |
static double | PQ_energy (double omega, std::size_t n_part) |
Variables | |
static std::vector< double > | partblk |
temporary buffers for product decomposition | |
static double | gblcblk [8] |
collected data from the other cells | |
static std::vector< SCCache > | scxcache |
Cached sin/cos values along the x-axis and y-axis. | |
static std::vector< SCCache > | scycache |
|
strong |
|
strong |
void add_PoQ_force | ( | ParticleRange const & | particles | ) |
|
static |
|
static |
Definition at line 155 of file elc.cpp.
Referenced by setup_PoQ(), and setup_PQ().
|
static |
Definition at line 161 of file elc.cpp.
Referenced by setup_PoQ(), and setup_PQ().
|
static |
Definition at line 172 of file elc.cpp.
Referenced by walberla::FFT< FloatType >::add_charge_to_field(), walberla::LBWalberlaImpl< FloatType, Architecture >::add_forces_at_pos(), walberla::LBWalberlaImpl< FloatType, Architecture >::add_to_storage(), assign_charges(), assign_forces(), walberla::BoundaryHandling< T, BoundaryClass >::block_dims(), walberla::EKReactionImplIndexed::boundary_update(), walberla::BoundaryHandling< T, BoundaryClass >::BoundaryHandling(), Utils::Interpolation::bspline_3d(), Utils::Interpolation::bspline_3d_gradient(), fft::anonymous_namespace{fft.cpp}::calc_send_block(), cuda_check_errors_exit(), DipolarDirectSum_kernel_wrapper_energy(), DipolarDirectSum_kernel_wrapper_force(), walberla::EKReactionImplIndexed::EKReactionImplIndexed(), walberla::pystencils::Dirichlet_double_precision::fillFromFlagField(), walberla::pystencils::Dirichlet_single_precision::fillFromFlagField(), walberla::pystencils::FixedFlux_double_precision::fillFromFlagField(), walberla::pystencils::FixedFlux_single_precision::fillFromFlagField(), walberla::lbm::Dynamic_UBB_double_precision::fillFromFlagField(), walberla::lbm::Dynamic_UBB_double_precisionCUDA::fillFromFlagField(), walberla::lbm::Dynamic_UBB_single_precision::fillFromFlagField(), walberla::lbm::Dynamic_UBB_single_precisionCUDA::fillFromFlagField(), walberla::pystencils::ReactionKernelIndexed_1_double_precision::fillFromFlagField(), walberla::pystencils::ReactionKernelIndexed_1_single_precision::fillFromFlagField(), walberla::pystencils::ReactionKernelIndexed_2_double_precision::fillFromFlagField(), walberla::pystencils::ReactionKernelIndexed_2_single_precision::fillFromFlagField(), walberla::pystencils::ReactionKernelIndexed_3_double_precision::fillFromFlagField(), walberla::pystencils::ReactionKernelIndexed_3_single_precision::fillFromFlagField(), walberla::pystencils::ReactionKernelIndexed_4_double_precision::fillFromFlagField(), walberla::pystencils::ReactionKernelIndexed_4_single_precision::fillFromFlagField(), walberla::pystencils::ReactionKernelIndexed_5_double_precision::fillFromFlagField(), walberla::pystencils::ReactionKernelIndexed_5_single_precision::fillFromFlagField(), walberla::get_block(), walberla::get_block_and_cell(), walberla::get_block_extended(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_momentum(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_pressure_tensor(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_slice_density(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_slice_density(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_slice_last_applied_force(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_slice_population(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_slice_pressure_tensor(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_slice_velocity(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_velocities_at_pos(), walberla::pystencils::Dirichlet_double_precision::inner(), walberla::pystencils::Dirichlet_single_precision::inner(), walberla::pystencils::FixedFlux_double_precision::inner(), walberla::pystencils::FixedFlux_single_precision::inner(), walberla::pystencils::ReactionKernelIndexed_1_double_precision::inner(), walberla::pystencils::ReactionKernelIndexed_1_single_precision::inner(), walberla::pystencils::ReactionKernelIndexed_2_double_precision::inner(), walberla::pystencils::ReactionKernelIndexed_2_single_precision::inner(), walberla::pystencils::ReactionKernelIndexed_3_double_precision::inner(), walberla::pystencils::ReactionKernelIndexed_3_single_precision::inner(), walberla::pystencils::ReactionKernelIndexed_4_double_precision::inner(), walberla::pystencils::ReactionKernelIndexed_4_single_precision::inner(), walberla::pystencils::ReactionKernelIndexed_5_double_precision::inner(), walberla::pystencils::ReactionKernelIndexed_5_single_precision::inner(), walberla::lbm::Dynamic_UBB_double_precision::inner(), walberla::lbm::Dynamic_UBB_single_precision::inner(), walberla::lbm::Dynamic_UBB_double_precisionCUDA::inner(), walberla::lbm::Dynamic_UBB_single_precisionCUDA::inner(), LatticeWalberla::LatticeWalberla(), walberla::BoundaryHandling< T, BoundaryClass >::operator()(), walberla::pystencils::AdvectiveFluxKernel_double_precision::operator()(), walberla::pystencils::AdvectiveFluxKernel_single_precision::operator()(), walberla::pystencils::ContinuityKernel_double_precision::operator()(), walberla::pystencils::ContinuityKernel_single_precision::operator()(), walberla::pystencils::DiffusiveFluxKernel_double_precision::operator()(), walberla::pystencils::DiffusiveFluxKernel_single_precision::operator()(), walberla::pystencils::DiffusiveFluxKernelThermalized_double_precision::operator()(), walberla::pystencils::DiffusiveFluxKernelThermalized_single_precision::operator()(), walberla::pystencils::DiffusiveFluxKernelWithElectrostatic_double_precision::operator()(), walberla::pystencils::DiffusiveFluxKernelWithElectrostatic_single_precision::operator()(), walberla::pystencils::DiffusiveFluxKernelWithElectrostaticThermalized_double_precision::operator()(), walberla::pystencils::DiffusiveFluxKernelWithElectrostaticThermalized_single_precision::operator()(), walberla::pystencils::Dirichlet_double_precision::operator()(), walberla::pystencils::Dirichlet_single_precision::operator()(), walberla::pystencils::FixedFlux_double_precision::operator()(), walberla::pystencils::FixedFlux_single_precision::operator()(), walberla::pystencils::FrictionCouplingKernel_double_precision::operator()(), walberla::pystencils::FrictionCouplingKernel_single_precision::operator()(), walberla::pystencils::ReactionKernelBulk_1_double_precision::operator()(), walberla::pystencils::ReactionKernelBulk_1_single_precision::operator()(), walberla::pystencils::ReactionKernelBulk_2_double_precision::operator()(), walberla::pystencils::ReactionKernelBulk_2_single_precision::operator()(), walberla::pystencils::ReactionKernelBulk_3_double_precision::operator()(), walberla::pystencils::ReactionKernelBulk_3_single_precision::operator()(), walberla::pystencils::ReactionKernelBulk_4_double_precision::operator()(), walberla::pystencils::ReactionKernelBulk_4_single_precision::operator()(), walberla::pystencils::ReactionKernelBulk_5_double_precision::operator()(), walberla::pystencils::ReactionKernelBulk_5_single_precision::operator()(), walberla::pystencils::ReactionKernelIndexed_1_double_precision::operator()(), walberla::pystencils::ReactionKernelIndexed_1_single_precision::operator()(), walberla::pystencils::ReactionKernelIndexed_2_double_precision::operator()(), walberla::pystencils::ReactionKernelIndexed_2_single_precision::operator()(), walberla::pystencils::ReactionKernelIndexed_3_double_precision::operator()(), walberla::pystencils::ReactionKernelIndexed_3_single_precision::operator()(), walberla::pystencils::ReactionKernelIndexed_4_double_precision::operator()(), walberla::pystencils::ReactionKernelIndexed_4_single_precision::operator()(), walberla::pystencils::ReactionKernelIndexed_5_double_precision::operator()(), walberla::pystencils::ReactionKernelIndexed_5_single_precision::operator()(), walberla::pystencils::CollideSweepDoublePrecisionLeesEdwards::operator()(), walberla::pystencils::CollideSweepDoublePrecisionLeesEdwardsAVX::operator()(), walberla::pystencils::CollideSweepDoublePrecisionThermalized::operator()(), walberla::pystencils::CollideSweepDoublePrecisionThermalizedAVX::operator()(), walberla::pystencils::CollideSweepSinglePrecisionLeesEdwards::operator()(), walberla::pystencils::CollideSweepSinglePrecisionLeesEdwardsAVX::operator()(), walberla::pystencils::CollideSweepSinglePrecisionThermalized::operator()(), walberla::pystencils::CollideSweepSinglePrecisionThermalizedAVX::operator()(), walberla::lbm::Dynamic_UBB_double_precision::operator()(), walberla::lbm::Dynamic_UBB_single_precision::operator()(), walberla::pystencils::InitialPDFsSetterDoublePrecision::operator()(), walberla::pystencils::InitialPDFsSetterSinglePrecision::operator()(), walberla::pystencils::StreamSweepDoublePrecision::operator()(), walberla::pystencils::StreamSweepDoublePrecisionAVX::operator()(), walberla::pystencils::StreamSweepSinglePrecision::operator()(), walberla::pystencils::StreamSweepSinglePrecisionAVX::operator()(), walberla::InterpolateAndShiftAtBoundary< FieldType, FloatType >::operator()(), walberla::ResetForce< PdfField, ForceField >::operator()(), walberla::pystencils::CollideSweepDoublePrecisionLeesEdwardsCUDA::operator()(), walberla::pystencils::CollideSweepDoublePrecisionThermalizedCUDA::operator()(), walberla::pystencils::CollideSweepSinglePrecisionLeesEdwardsCUDA::operator()(), walberla::pystencils::CollideSweepSinglePrecisionThermalizedCUDA::operator()(), walberla::lbm::Dynamic_UBB_double_precisionCUDA::operator()(), walberla::lbm::Dynamic_UBB_single_precisionCUDA::operator()(), walberla::pystencils::InitialPDFsSetterDoublePrecisionCUDA::operator()(), walberla::pystencils::InitialPDFsSetterSinglePrecisionCUDA::operator()(), walberla::pystencils::StreamSweepDoublePrecisionCUDA::operator()(), walberla::pystencils::StreamSweepSinglePrecisionCUDA::operator()(), walberla::pystencils::Dirichlet_double_precision::outer(), walberla::pystencils::Dirichlet_single_precision::outer(), walberla::pystencils::FixedFlux_double_precision::outer(), walberla::pystencils::FixedFlux_single_precision::outer(), walberla::pystencils::ReactionKernelIndexed_1_double_precision::outer(), walberla::pystencils::ReactionKernelIndexed_1_single_precision::outer(), walberla::pystencils::ReactionKernelIndexed_2_double_precision::outer(), walberla::pystencils::ReactionKernelIndexed_2_single_precision::outer(), walberla::pystencils::ReactionKernelIndexed_3_double_precision::outer(), walberla::pystencils::ReactionKernelIndexed_3_single_precision::outer(), walberla::pystencils::ReactionKernelIndexed_4_double_precision::outer(), walberla::pystencils::ReactionKernelIndexed_4_single_precision::outer(), walberla::pystencils::ReactionKernelIndexed_5_double_precision::outer(), walberla::pystencils::ReactionKernelIndexed_5_single_precision::outer(), walberla::lbm::Dynamic_UBB_double_precision::outer(), walberla::lbm::Dynamic_UBB_single_precision::outer(), walberla::lbm::Dynamic_UBB_double_precisionCUDA::outer(), walberla::lbm::Dynamic_UBB_single_precisionCUDA::outer(), p3m_gpu_init(), p3m_k_space_error_gpu(), walberla::pystencils::PackInfoPdfDoublePrecision::pack(), walberla::pystencils::PackInfoPdfSinglePrecision::pack(), walberla::pystencils::PackInfoVecDoublePrecision::pack(), walberla::pystencils::PackInfoVecSinglePrecision::pack(), walberla::pystencils::PackInfoPdfDoublePrecisionCUDA::pack(), walberla::pystencils::PackInfoPdfSinglePrecisionCUDA::pack(), walberla::pystencils::PackInfoVecDoublePrecisionCUDA::pack(), walberla::pystencils::PackInfoVecSinglePrecisionCUDA::pack(), walberla::EKReactionImplBulk::perform_reaction(), walberla::EKReactionImplIndexed::perform_reaction(), walberla::FFT< FloatType >::reset_charge_field(), walberla::pystencils::AdvectiveFluxKernel_double_precision::run(), walberla::pystencils::AdvectiveFluxKernel_single_precision::run(), walberla::pystencils::ContinuityKernel_double_precision::run(), walberla::pystencils::ContinuityKernel_single_precision::run(), walberla::pystencils::DiffusiveFluxKernel_double_precision::run(), walberla::pystencils::DiffusiveFluxKernel_single_precision::run(), walberla::pystencils::DiffusiveFluxKernelThermalized_double_precision::run(), walberla::pystencils::DiffusiveFluxKernelThermalized_single_precision::run(), walberla::pystencils::DiffusiveFluxKernelWithElectrostatic_double_precision::run(), walberla::pystencils::DiffusiveFluxKernelWithElectrostatic_single_precision::run(), walberla::pystencils::DiffusiveFluxKernelWithElectrostaticThermalized_double_precision::run(), walberla::pystencils::DiffusiveFluxKernelWithElectrostaticThermalized_single_precision::run(), walberla::pystencils::Dirichlet_double_precision::run(), walberla::pystencils::Dirichlet_single_precision::run(), walberla::pystencils::FixedFlux_double_precision::run(), walberla::pystencils::FixedFlux_single_precision::run(), walberla::pystencils::FrictionCouplingKernel_double_precision::run(), walberla::pystencils::FrictionCouplingKernel_single_precision::run(), walberla::pystencils::ReactionKernelBulk_1_double_precision::run(), walberla::pystencils::ReactionKernelBulk_1_single_precision::run(), walberla::pystencils::ReactionKernelBulk_2_double_precision::run(), walberla::pystencils::ReactionKernelBulk_2_single_precision::run(), walberla::pystencils::ReactionKernelBulk_3_double_precision::run(), walberla::pystencils::ReactionKernelBulk_3_single_precision::run(), walberla::pystencils::ReactionKernelBulk_4_double_precision::run(), walberla::pystencils::ReactionKernelBulk_4_single_precision::run(), walberla::pystencils::ReactionKernelBulk_5_double_precision::run(), walberla::pystencils::ReactionKernelBulk_5_single_precision::run(), walberla::pystencils::ReactionKernelIndexed_1_double_precision::run(), walberla::pystencils::ReactionKernelIndexed_1_single_precision::run(), walberla::pystencils::ReactionKernelIndexed_2_double_precision::run(), walberla::pystencils::ReactionKernelIndexed_2_single_precision::run(), walberla::pystencils::ReactionKernelIndexed_3_double_precision::run(), walberla::pystencils::ReactionKernelIndexed_3_single_precision::run(), walberla::pystencils::ReactionKernelIndexed_4_double_precision::run(), walberla::pystencils::ReactionKernelIndexed_4_single_precision::run(), walberla::pystencils::ReactionKernelIndexed_5_double_precision::run(), walberla::pystencils::ReactionKernelIndexed_5_single_precision::run(), walberla::pystencils::CollideSweepDoublePrecisionLeesEdwards::run(), walberla::pystencils::CollideSweepDoublePrecisionLeesEdwardsAVX::run(), walberla::pystencils::CollideSweepDoublePrecisionThermalized::run(), walberla::pystencils::CollideSweepDoublePrecisionThermalizedAVX::run(), walberla::pystencils::CollideSweepSinglePrecisionLeesEdwards::run(), walberla::pystencils::CollideSweepSinglePrecisionLeesEdwardsAVX::run(), walberla::pystencils::CollideSweepSinglePrecisionThermalized::run(), walberla::pystencils::CollideSweepSinglePrecisionThermalizedAVX::run(), walberla::lbm::Dynamic_UBB_double_precision::run(), walberla::lbm::Dynamic_UBB_single_precision::run(), walberla::pystencils::InitialPDFsSetterDoublePrecision::run(), walberla::pystencils::InitialPDFsSetterSinglePrecision::run(), walberla::pystencils::StreamSweepDoublePrecision::run(), walberla::pystencils::StreamSweepDoublePrecisionAVX::run(), walberla::pystencils::StreamSweepSinglePrecision::run(), walberla::pystencils::StreamSweepSinglePrecisionAVX::run(), walberla::pystencils::CollideSweepDoublePrecisionLeesEdwardsCUDA::run(), walberla::pystencils::CollideSweepDoublePrecisionThermalizedCUDA::run(), walberla::pystencils::CollideSweepSinglePrecisionLeesEdwardsCUDA::run(), walberla::pystencils::CollideSweepSinglePrecisionThermalizedCUDA::run(), walberla::lbm::Dynamic_UBB_double_precisionCUDA::run(), walberla::lbm::Dynamic_UBB_single_precisionCUDA::run(), walberla::pystencils::InitialPDFsSetterDoublePrecisionCUDA::run(), walberla::pystencils::InitialPDFsSetterSinglePrecisionCUDA::run(), walberla::pystencils::StreamSweepDoublePrecisionCUDA::run(), walberla::pystencils::StreamSweepSinglePrecisionCUDA::run(), walberla::pystencils::AdvectiveFluxKernel_double_precision::runOnCellInterval(), walberla::pystencils::AdvectiveFluxKernel_single_precision::runOnCellInterval(), walberla::pystencils::ContinuityKernel_double_precision::runOnCellInterval(), walberla::pystencils::ContinuityKernel_single_precision::runOnCellInterval(), walberla::pystencils::DiffusiveFluxKernel_double_precision::runOnCellInterval(), walberla::pystencils::DiffusiveFluxKernel_single_precision::runOnCellInterval(), walberla::pystencils::DiffusiveFluxKernelThermalized_double_precision::runOnCellInterval(), walberla::pystencils::DiffusiveFluxKernelThermalized_single_precision::runOnCellInterval(), walberla::pystencils::DiffusiveFluxKernelWithElectrostatic_double_precision::runOnCellInterval(), walberla::pystencils::DiffusiveFluxKernelWithElectrostatic_single_precision::runOnCellInterval(), walberla::pystencils::DiffusiveFluxKernelWithElectrostaticThermalized_double_precision::runOnCellInterval(), walberla::pystencils::DiffusiveFluxKernelWithElectrostaticThermalized_single_precision::runOnCellInterval(), walberla::pystencils::FrictionCouplingKernel_double_precision::runOnCellInterval(), walberla::pystencils::FrictionCouplingKernel_single_precision::runOnCellInterval(), walberla::pystencils::ReactionKernelBulk_1_double_precision::runOnCellInterval(), walberla::pystencils::ReactionKernelBulk_1_single_precision::runOnCellInterval(), walberla::pystencils::ReactionKernelBulk_2_double_precision::runOnCellInterval(), walberla::pystencils::ReactionKernelBulk_2_single_precision::runOnCellInterval(), walberla::pystencils::ReactionKernelBulk_3_double_precision::runOnCellInterval(), walberla::pystencils::ReactionKernelBulk_3_single_precision::runOnCellInterval(), walberla::pystencils::ReactionKernelBulk_4_double_precision::runOnCellInterval(), walberla::pystencils::ReactionKernelBulk_4_single_precision::runOnCellInterval(), walberla::pystencils::ReactionKernelBulk_5_double_precision::runOnCellInterval(), walberla::pystencils::ReactionKernelBulk_5_single_precision::runOnCellInterval(), walberla::pystencils::CollideSweepDoublePrecisionLeesEdwards::runOnCellInterval(), walberla::pystencils::CollideSweepDoublePrecisionLeesEdwardsAVX::runOnCellInterval(), walberla::pystencils::CollideSweepDoublePrecisionThermalized::runOnCellInterval(), walberla::pystencils::CollideSweepDoublePrecisionThermalizedAVX::runOnCellInterval(), walberla::pystencils::CollideSweepSinglePrecisionLeesEdwards::runOnCellInterval(), walberla::pystencils::CollideSweepSinglePrecisionLeesEdwardsAVX::runOnCellInterval(), walberla::pystencils::CollideSweepSinglePrecisionThermalized::runOnCellInterval(), walberla::pystencils::CollideSweepSinglePrecisionThermalizedAVX::runOnCellInterval(), walberla::pystencils::InitialPDFsSetterDoublePrecision::runOnCellInterval(), walberla::pystencils::InitialPDFsSetterSinglePrecision::runOnCellInterval(), walberla::pystencils::StreamSweepDoublePrecision::runOnCellInterval(), walberla::pystencils::StreamSweepDoublePrecisionAVX::runOnCellInterval(), walberla::pystencils::StreamSweepSinglePrecision::runOnCellInterval(), walberla::pystencils::StreamSweepSinglePrecisionAVX::runOnCellInterval(), walberla::pystencils::CollideSweepDoublePrecisionLeesEdwardsCUDA::runOnCellInterval(), walberla::pystencils::CollideSweepDoublePrecisionThermalizedCUDA::runOnCellInterval(), walberla::pystencils::CollideSweepSinglePrecisionLeesEdwardsCUDA::runOnCellInterval(), walberla::pystencils::CollideSweepSinglePrecisionThermalizedCUDA::runOnCellInterval(), walberla::pystencils::InitialPDFsSetterDoublePrecisionCUDA::runOnCellInterval(), walberla::pystencils::InitialPDFsSetterSinglePrecisionCUDA::runOnCellInterval(), walberla::pystencils::StreamSweepDoublePrecisionCUDA::runOnCellInterval(), walberla::pystencils::StreamSweepSinglePrecisionCUDA::runOnCellInterval(), walberla::set_boundary_from_grid(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::set_slice_density(), walberla::LBWalberlaImpl< FloatType, Architecture >::set_slice_density(), walberla::LBWalberlaImpl< FloatType, Architecture >::set_slice_last_applied_force(), walberla::LBWalberlaImpl< FloatType, Architecture >::set_slice_population(), walberla::LBWalberlaImpl< FloatType, Architecture >::set_slice_velocity(), setup_PoQ(), setup_PQ(), walberla::pystencils::PackInfoPdfDoublePrecision::size(), walberla::pystencils::PackInfoPdfSinglePrecision::size(), walberla::pystencils::PackInfoVecDoublePrecision::size(), walberla::pystencils::PackInfoVecSinglePrecision::size(), walberla::pystencils::PackInfoPdfDoublePrecisionCUDA::size(), walberla::pystencils::PackInfoPdfSinglePrecisionCUDA::size(), walberla::pystencils::PackInfoVecDoublePrecisionCUDA::size(), walberla::pystencils::PackInfoVecSinglePrecisionCUDA::size(), walberla::pystencils::PackInfoPdfDoublePrecision::unpack(), walberla::pystencils::PackInfoPdfSinglePrecision::unpack(), walberla::pystencils::PackInfoVecDoublePrecision::unpack(), walberla::pystencils::PackInfoVecSinglePrecision::unpack(), walberla::pystencils::PackInfoPdfDoublePrecisionCUDA::unpack(), walberla::pystencils::PackInfoPdfSinglePrecisionCUDA::unpack(), walberla::pystencils::PackInfoVecDoublePrecisionCUDA::unpack(), and walberla::pystencils::PackInfoVecSinglePrecisionCUDA::unpack().
|
static |
Calculate cached sin/cos values for one direction.
dir | Index of the dimension to consider (e.g. 0 for x ...). |
particles | Particle to calculate values for |
n_freq | Number of frequencies to calculate per particle |
u | Inverse box length |
Definition at line 107 of file elc.cpp.
References ParticleRange::size().
|
static |
Definition at line 975 of file elc.cpp.
References comm_cart, CellStructure::local_particles(), and Particle::q().
void charge_assign | ( | elc_data const & | elc, |
CoulombP3M & | solver, | ||
combined_ranges const & | p_q_pos_range | ||
) |
Definition at line 1111 of file elc.cpp.
References CoulombP3M::assign_charge(), BOTH, elc_data::box_h, elc_data::delta_mid_bot, elc_data::delta_mid_top, IMAGE, CoulombP3M::prepare_fft_mesh(), REAL, and elc_data::space_layer.
Referenced by CoulombP3MImpl< FloatType, Architecture >::long_range_kernel(), and CoulombP3MImpl< FloatType, Architecture >::long_range_pressure().
|
static |
Definition at line 145 of file elc.cpp.
Referenced by setup_PoQ(), and setup_PQ().
|
static |
Definition at line 150 of file elc.cpp.
Referenced by distribute().
|
static |
Definition at line 176 of file elc.cpp.
References comm_cart, copy_vec(), and gblcblk.
void modify_p3m_sums | ( | elc_data const & | elc, |
CoulombP3M & | solver, | ||
combined_range const & | p_q_pos_range | ||
) |
Definition at line 1144 of file elc.cpp.
References BOTH, elc_data::box_h, comm_cart, CoulombP3M::count_charged_particles_elc(), elc_data::delta_mid_bot, elc_data::delta_mid_top, IMAGE, REAL, elc_data::space_layer, and Utils::sqr().
|
static |
|
static |
|
static |
Definition at line 127 of file elc.cpp.
References BoxGeometry::length(), BoxGeometry::length_inv(), scxcache, and scycache.
|
static |
Definition at line 167 of file elc.cpp.
Referenced by setup_PoQ(), and setup_PQ().
void setup_PoQ | ( | elc_data const & | elc, |
double | prefactor, | ||
std::size_t | index, | ||
double | omega, | ||
ParticleRange const & | particles, | ||
BoxGeometry const & | box_geo | ||
) |
Definition at line 501 of file elc.cpp.
References add_vec(), addscale_vec(), block(), elc_data::box_h, clear_vec(), elc_data::delta_mid_bot, elc_data::delta_mid_top, elc_data::dielectric_contrast_on, gblcblk, BoxGeometry::length(), BoxGeometry::length_inv(), P, partblk, POQECM, POQECP, POQESM, POQESP, Particle::pos(), Particle::q(), scale_vec(), scxcache, scycache, ParticleRange::size(), and elc_data::space_layer.
|
static |
Definition at line 641 of file elc.cpp.
References add_vec(), addscale_vec(), block(), elc_data::box_h, clear_vec(), elc_data::delta_mid_bot, elc_data::delta_mid_top, elc_data::dielectric_contrast_on, gblcblk, BoxGeometry::length(), BoxGeometry::length_inv(), partblk, Particle::pos(), PQECCM, PQECCP, PQECSM, PQECSP, PQESCM, PQESCP, PQESSM, PQESSP, Particle::q(), scale_vec(), scxcache, scycache, ParticleRange::size(), and elc_data::space_layer.
|
static |
collected data from the other cells
Definition at line 83 of file elc.cpp.
Referenced by add_PoQ_force(), add_PQ_force(), distribute(), PoQ_energy(), PQ_energy(), setup_PoQ(), and setup_PQ().
|
static |
temporary buffers for product decomposition
Definition at line 81 of file elc.cpp.
Referenced by add_PoQ_force(), add_PQ_force(), PoQ_energy(), PQ_energy(), setup_PoQ(), and setup_PQ().
|
static |
Cached sin/cos values along the x-axis and y-axis.
Definition at line 92 of file elc.cpp.
Referenced by prepare_sc_cache(), setup_PoQ(), and setup_PQ().
|
static |
Definition at line 93 of file elc.cpp.
Referenced by prepare_sc_cache(), setup_PoQ(), and setup_PQ().