![]() |
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 <Kokkos_Core.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>
Include dependency graph for elc.cpp: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 159 of file elc.cpp.
Referenced by setup_PoQ(), and setup_PQ().
|
static |
Definition at line 165 of file elc.cpp.
Referenced by setup_PoQ(), and setup_PQ().
|
static |
Definition at line 176 of file elc.cpp.
Referenced by walberla::PoissonSolverFFT< FloatType, Architecture >::add_charge_to_field(), walberla::LBWalberlaImpl< FloatType, Architecture >::add_forces_at_pos(), walberla::LBWalberlaImpl< FloatType, Architecture >::add_to_storage(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::add_to_storage(), assign_charges(), assign_forces(), walberla::BoundaryHandling< FloatType, ValueType, BoundaryClass >::block_dims(), walberla::EKReactionImplIndexed< Architecture >::boundary_update(), walberla::BoundaryHandling< FloatType, ValueType, 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< Architecture >::EKReactionImplIndexed(), walberla::pystencils::Dirichlet_double_precision::fillFromFlagField(), walberla::pystencils::Dirichlet_double_precision_CUDA::fillFromFlagField(), walberla::pystencils::Dirichlet_single_precision::fillFromFlagField(), walberla::pystencils::Dirichlet_single_precision_CUDA::fillFromFlagField(), walberla::pystencils::FixedFlux_double_precision::fillFromFlagField(), walberla::pystencils::FixedFlux_double_precision_CUDA::fillFromFlagField(), walberla::pystencils::FixedFlux_single_precision::fillFromFlagField(), walberla::pystencils::FixedFlux_single_precision_CUDA::fillFromFlagField(), walberla::lbm::DynamicUBBDoublePrecision::fillFromFlagField(), walberla::lbm::DynamicUBBDoublePrecisionCUDA::fillFromFlagField(), walberla::lbm::DynamicUBBSinglePrecision::fillFromFlagField(), walberla::lbm::DynamicUBBSinglePrecisionCUDA::fillFromFlagField(), walberla::lbm::DynamicUBBDoublePrecision::fillFromFlagField(), walberla::lbm::DynamicUBBDoublePrecisionCUDA::fillFromFlagField(), walberla::lbm::DynamicUBBSinglePrecision::fillFromFlagField(), walberla::lbm::DynamicUBBSinglePrecisionCUDA::fillFromFlagField(), walberla::pystencils::ReactionKernelIndexed_1_double_precision::fillFromFlagField(), walberla::pystencils::ReactionKernelIndexed_1_double_precision_CUDA::fillFromFlagField(), walberla::pystencils::ReactionKernelIndexed_1_single_precision::fillFromFlagField(), walberla::pystencils::ReactionKernelIndexed_1_single_precision_CUDA::fillFromFlagField(), walberla::pystencils::ReactionKernelIndexed_2_double_precision::fillFromFlagField(), walberla::pystencils::ReactionKernelIndexed_2_double_precision_CUDA::fillFromFlagField(), walberla::pystencils::ReactionKernelIndexed_2_single_precision::fillFromFlagField(), walberla::pystencils::ReactionKernelIndexed_2_single_precision_CUDA::fillFromFlagField(), walberla::pystencils::ReactionKernelIndexed_3_double_precision::fillFromFlagField(), walberla::pystencils::ReactionKernelIndexed_3_double_precision_CUDA::fillFromFlagField(), walberla::pystencils::ReactionKernelIndexed_3_single_precision::fillFromFlagField(), walberla::pystencils::ReactionKernelIndexed_3_single_precision_CUDA::fillFromFlagField(), walberla::pystencils::ReactionKernelIndexed_4_double_precision::fillFromFlagField(), walberla::pystencils::ReactionKernelIndexed_4_double_precision_CUDA::fillFromFlagField(), walberla::pystencils::ReactionKernelIndexed_4_single_precision::fillFromFlagField(), walberla::pystencils::ReactionKernelIndexed_4_single_precision_CUDA::fillFromFlagField(), walberla::pystencils::ReactionKernelIndexed_5_double_precision::fillFromFlagField(), walberla::pystencils::ReactionKernelIndexed_5_double_precision_CUDA::fillFromFlagField(), walberla::pystencils::ReactionKernelIndexed_5_single_precision::fillFromFlagField(), walberla::pystencils::ReactionKernelIndexed_5_single_precision_CUDA::fillFromFlagField(), walberla::get_block(), walberla::get_block_and_cell(), LatticeWalberla::get_block_corner(), walberla::get_block_extended(), walberla::get_block_interval(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_boundary_force(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_boundary_force_from_shape(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_densities_at_pos(), walberla::BoundaryHandling< FloatType, ValueType, BoundaryClass >::get_force_vector(), walberla::BoundaryHandling< FloatType, ValueType, BoundaryClass >::get_index_vector(), LatticeWalberla::get_local_domain(), walberla::get_max_corner(), walberla::get_min_corner(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_momentum(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_pressure_tensor(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_slice_density(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_slice_density(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_slice_flux_vector(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_slice_is_boundary(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_slice_last_applied_force(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_slice_population(), walberla::PoissonSolverFFT< FloatType, Architecture >::get_slice_potential(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_slice_pressure_tensor(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_slice_velocity(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_slice_velocity_at_boundary(), walberla::BoundaryHandling< FloatType, ValueType, BoundaryClass >::get_total_force(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_velocities_at_pos(), walberla::lbm::DynamicUBBDoublePrecision::getForce(), walberla::lbm::DynamicUBBDoublePrecisionCUDA::getForce(), walberla::lbm::DynamicUBBSinglePrecision::getForce(), walberla::lbm::DynamicUBBSinglePrecisionCUDA::getForce(), walberla::lbm::DynamicUBBDoublePrecision::getForceVector(), walberla::lbm::DynamicUBBDoublePrecisionCUDA::getForceVector(), walberla::lbm::DynamicUBBSinglePrecision::getForceVector(), walberla::lbm::DynamicUBBSinglePrecisionCUDA::getForceVector(), walberla::lbm::DynamicUBBDoublePrecision::getIndexVector(), walberla::lbm::DynamicUBBDoublePrecisionCUDA::getIndexVector(), walberla::lbm::DynamicUBBSinglePrecision::getIndexVector(), walberla::lbm::DynamicUBBSinglePrecisionCUDA::getIndexVector(), 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::DynamicUBBDoublePrecision::inner(), walberla::lbm::DynamicUBBSinglePrecision::inner(), walberla::pystencils::Dirichlet_double_precision_CUDA::inner(), walberla::pystencils::Dirichlet_single_precision_CUDA::inner(), walberla::pystencils::FixedFlux_double_precision_CUDA::inner(), walberla::pystencils::FixedFlux_single_precision_CUDA::inner(), walberla::pystencils::ReactionKernelIndexed_1_double_precision_CUDA::inner(), walberla::pystencils::ReactionKernelIndexed_1_single_precision_CUDA::inner(), walberla::pystencils::ReactionKernelIndexed_2_double_precision_CUDA::inner(), walberla::pystencils::ReactionKernelIndexed_2_single_precision_CUDA::inner(), walberla::pystencils::ReactionKernelIndexed_3_double_precision_CUDA::inner(), walberla::pystencils::ReactionKernelIndexed_3_single_precision_CUDA::inner(), walberla::pystencils::ReactionKernelIndexed_4_double_precision_CUDA::inner(), walberla::pystencils::ReactionKernelIndexed_4_single_precision_CUDA::inner(), walberla::pystencils::ReactionKernelIndexed_5_double_precision_CUDA::inner(), walberla::pystencils::ReactionKernelIndexed_5_single_precision_CUDA::inner(), walberla::lbm::DynamicUBBDoublePrecisionCUDA::inner(), walberla::lbm::DynamicUBBSinglePrecisionCUDA::inner(), LatticeWalberla::LatticeWalberla(), walberla::LBWalberlaImpl< FloatType, Architecture >::LBWalberlaImpl(), walberla::LBWalberlaImpl< FloatType, Architecture >::make_density_interpolation_kernel(), walberla::LBWalberlaImpl< FloatType, Architecture >::make_force_interpolation_kernel(), walberla::LBWalberlaImpl< FloatType, Architecture >::make_velocity_interpolation_kernel(), walberla::BoundaryHandling< FloatType, ValueType, 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::lbm::DynamicUBBDoublePrecision::operator()(), walberla::lbm::DynamicUBBSinglePrecision::operator()(), walberla::pystencils::InitialPDFsSetterDoublePrecision::operator()(), walberla::pystencils::InitialPDFsSetterSinglePrecision::operator()(), walberla::pystencils::StreamCollideSweepLeesEdwardsDoublePrecision::operator()(), walberla::pystencils::StreamCollideSweepLeesEdwardsDoublePrecisionAVX::operator()(), walberla::pystencils::StreamCollideSweepLeesEdwardsSinglePrecision::operator()(), walberla::pystencils::StreamCollideSweepLeesEdwardsSinglePrecisionAVX::operator()(), walberla::pystencils::StreamCollideSweepThermalizedDoublePrecision::operator()(), walberla::pystencils::StreamCollideSweepThermalizedDoublePrecisionAVX::operator()(), walberla::pystencils::StreamCollideSweepThermalizedSinglePrecision::operator()(), walberla::pystencils::StreamCollideSweepThermalizedSinglePrecisionAVX::operator()(), walberla::pystencils::UpdateVelFromPDFDoublePrecision::operator()(), walberla::pystencils::UpdateVelFromPDFDoublePrecisionAVX::operator()(), walberla::pystencils::UpdateVelFromPDFSinglePrecision::operator()(), walberla::pystencils::UpdateVelFromPDFSinglePrecisionAVX::operator()(), walberla::InterpolateAndShiftAtBoundary< FieldType, FloatType >::operator()(), walberla::ResetForce< PdfField, ForceField >::operator()(), walberla::pystencils::AdvectiveFluxKernel_double_precision_CUDA::operator()(), walberla::pystencils::AdvectiveFluxKernel_single_precision_CUDA::operator()(), walberla::pystencils::ContinuityKernel_double_precision_CUDA::operator()(), walberla::pystencils::ContinuityKernel_single_precision_CUDA::operator()(), walberla::pystencils::DiffusiveFluxKernel_double_precision_CUDA::operator()(), walberla::pystencils::DiffusiveFluxKernel_single_precision_CUDA::operator()(), walberla::pystencils::DiffusiveFluxKernelThermalized_double_precision_CUDA::operator()(), walberla::pystencils::DiffusiveFluxKernelThermalized_single_precision_CUDA::operator()(), walberla::pystencils::DiffusiveFluxKernelWithElectrostatic_double_precision_CUDA::operator()(), walberla::pystencils::DiffusiveFluxKernelWithElectrostatic_single_precision_CUDA::operator()(), walberla::pystencils::DiffusiveFluxKernelWithElectrostaticThermalized_double_precision_CUDA::operator()(), walberla::pystencils::DiffusiveFluxKernelWithElectrostaticThermalized_single_precision_CUDA::operator()(), walberla::pystencils::Dirichlet_double_precision_CUDA::operator()(), walberla::pystencils::Dirichlet_single_precision_CUDA::operator()(), walberla::pystencils::FixedFlux_double_precision_CUDA::operator()(), walberla::pystencils::FixedFlux_single_precision_CUDA::operator()(), walberla::pystencils::FrictionCouplingKernel_double_precision_CUDA::operator()(), walberla::pystencils::FrictionCouplingKernel_single_precision_CUDA::operator()(), walberla::pystencils::ReactionKernelBulk_1_double_precision_CUDA::operator()(), walberla::pystencils::ReactionKernelBulk_1_single_precision_CUDA::operator()(), walberla::pystencils::ReactionKernelBulk_2_double_precision_CUDA::operator()(), walberla::pystencils::ReactionKernelBulk_2_single_precision_CUDA::operator()(), walberla::pystencils::ReactionKernelBulk_3_double_precision_CUDA::operator()(), walberla::pystencils::ReactionKernelBulk_3_single_precision_CUDA::operator()(), walberla::pystencils::ReactionKernelBulk_4_double_precision_CUDA::operator()(), walberla::pystencils::ReactionKernelBulk_4_single_precision_CUDA::operator()(), walberla::pystencils::ReactionKernelBulk_5_double_precision_CUDA::operator()(), walberla::pystencils::ReactionKernelBulk_5_single_precision_CUDA::operator()(), walberla::pystencils::ReactionKernelIndexed_1_double_precision_CUDA::operator()(), walberla::pystencils::ReactionKernelIndexed_1_single_precision_CUDA::operator()(), walberla::pystencils::ReactionKernelIndexed_2_double_precision_CUDA::operator()(), walberla::pystencils::ReactionKernelIndexed_2_single_precision_CUDA::operator()(), walberla::pystencils::ReactionKernelIndexed_3_double_precision_CUDA::operator()(), walberla::pystencils::ReactionKernelIndexed_3_single_precision_CUDA::operator()(), walberla::pystencils::ReactionKernelIndexed_4_double_precision_CUDA::operator()(), walberla::pystencils::ReactionKernelIndexed_4_single_precision_CUDA::operator()(), walberla::pystencils::ReactionKernelIndexed_5_double_precision_CUDA::operator()(), walberla::pystencils::ReactionKernelIndexed_5_single_precision_CUDA::operator()(), walberla::lbm::DynamicUBBDoublePrecisionCUDA::operator()(), walberla::lbm::DynamicUBBSinglePrecisionCUDA::operator()(), walberla::pystencils::InitialPDFsSetterDoublePrecisionCUDA::operator()(), walberla::pystencils::InitialPDFsSetterSinglePrecisionCUDA::operator()(), walberla::pystencils::StreamCollideSweepLeesEdwardsDoublePrecisionCUDA::operator()(), walberla::pystencils::StreamCollideSweepLeesEdwardsSinglePrecisionCUDA::operator()(), walberla::pystencils::StreamCollideSweepThermalizedDoublePrecisionCUDA::operator()(), walberla::pystencils::StreamCollideSweepThermalizedSinglePrecisionCUDA::operator()(), walberla::pystencils::UpdateVelFromPDFDoublePrecisionCUDA::operator()(), walberla::pystencils::UpdateVelFromPDFSinglePrecisionCUDA::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::DynamicUBBDoublePrecision::outer(), walberla::lbm::DynamicUBBSinglePrecision::outer(), walberla::pystencils::Dirichlet_double_precision_CUDA::outer(), walberla::pystencils::Dirichlet_single_precision_CUDA::outer(), walberla::pystencils::FixedFlux_double_precision_CUDA::outer(), walberla::pystencils::FixedFlux_single_precision_CUDA::outer(), walberla::pystencils::ReactionKernelIndexed_1_double_precision_CUDA::outer(), walberla::pystencils::ReactionKernelIndexed_1_single_precision_CUDA::outer(), walberla::pystencils::ReactionKernelIndexed_2_double_precision_CUDA::outer(), walberla::pystencils::ReactionKernelIndexed_2_single_precision_CUDA::outer(), walberla::pystencils::ReactionKernelIndexed_3_double_precision_CUDA::outer(), walberla::pystencils::ReactionKernelIndexed_3_single_precision_CUDA::outer(), walberla::pystencils::ReactionKernelIndexed_4_double_precision_CUDA::outer(), walberla::pystencils::ReactionKernelIndexed_4_single_precision_CUDA::outer(), walberla::pystencils::ReactionKernelIndexed_5_double_precision_CUDA::outer(), walberla::pystencils::ReactionKernelIndexed_5_single_precision_CUDA::outer(), walberla::lbm::DynamicUBBDoublePrecisionCUDA::outer(), walberla::lbm::DynamicUBBSinglePrecisionCUDA::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< Architecture >::perform_reaction(), walberla::EKReactionImplIndexed< Architecture >::perform_reaction(), walberla::PoissonSolverFFT< FloatType, Architecture >::PoissonSolverFFT(), walberla::PoissonSolverFFT< FloatType, Architecture >::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::lbm::DynamicUBBDoublePrecision::run(), walberla::lbm::DynamicUBBSinglePrecision::run(), walberla::pystencils::InitialPDFsSetterDoublePrecision::run(), walberla::pystencils::InitialPDFsSetterSinglePrecision::run(), walberla::pystencils::StreamCollideSweepLeesEdwardsDoublePrecision::run(), walberla::pystencils::StreamCollideSweepLeesEdwardsDoublePrecisionAVX::run(), walberla::pystencils::StreamCollideSweepLeesEdwardsSinglePrecision::run(), walberla::pystencils::StreamCollideSweepLeesEdwardsSinglePrecisionAVX::run(), walberla::pystencils::StreamCollideSweepThermalizedDoublePrecision::run(), walberla::pystencils::StreamCollideSweepThermalizedDoublePrecisionAVX::run(), walberla::pystencils::StreamCollideSweepThermalizedSinglePrecision::run(), walberla::pystencils::StreamCollideSweepThermalizedSinglePrecisionAVX::run(), walberla::pystencils::UpdateVelFromPDFDoublePrecision::run(), walberla::pystencils::UpdateVelFromPDFDoublePrecisionAVX::run(), walberla::pystencils::UpdateVelFromPDFSinglePrecision::run(), walberla::pystencils::UpdateVelFromPDFSinglePrecisionAVX::run(), walberla::pystencils::AdvectiveFluxKernel_double_precision_CUDA::run(), walberla::pystencils::AdvectiveFluxKernel_single_precision_CUDA::run(), walberla::pystencils::ContinuityKernel_double_precision_CUDA::run(), walberla::pystencils::ContinuityKernel_single_precision_CUDA::run(), walberla::pystencils::DiffusiveFluxKernel_double_precision_CUDA::run(), walberla::pystencils::DiffusiveFluxKernel_single_precision_CUDA::run(), walberla::pystencils::DiffusiveFluxKernelThermalized_double_precision_CUDA::run(), walberla::pystencils::DiffusiveFluxKernelThermalized_single_precision_CUDA::run(), walberla::pystencils::DiffusiveFluxKernelWithElectrostatic_double_precision_CUDA::run(), walberla::pystencils::DiffusiveFluxKernelWithElectrostatic_single_precision_CUDA::run(), walberla::pystencils::DiffusiveFluxKernelWithElectrostaticThermalized_double_precision_CUDA::run(), walberla::pystencils::DiffusiveFluxKernelWithElectrostaticThermalized_single_precision_CUDA::run(), walberla::pystencils::Dirichlet_double_precision_CUDA::run(), walberla::pystencils::Dirichlet_single_precision_CUDA::run(), walberla::pystencils::FixedFlux_double_precision_CUDA::run(), walberla::pystencils::FixedFlux_single_precision_CUDA::run(), walberla::pystencils::FrictionCouplingKernel_double_precision_CUDA::run(), walberla::pystencils::FrictionCouplingKernel_single_precision_CUDA::run(), walberla::pystencils::ReactionKernelBulk_1_double_precision_CUDA::run(), walberla::pystencils::ReactionKernelBulk_1_single_precision_CUDA::run(), walberla::pystencils::ReactionKernelBulk_2_double_precision_CUDA::run(), walberla::pystencils::ReactionKernelBulk_2_single_precision_CUDA::run(), walberla::pystencils::ReactionKernelBulk_3_double_precision_CUDA::run(), walberla::pystencils::ReactionKernelBulk_3_single_precision_CUDA::run(), walberla::pystencils::ReactionKernelBulk_4_double_precision_CUDA::run(), walberla::pystencils::ReactionKernelBulk_4_single_precision_CUDA::run(), walberla::pystencils::ReactionKernelBulk_5_double_precision_CUDA::run(), walberla::pystencils::ReactionKernelBulk_5_single_precision_CUDA::run(), walberla::pystencils::ReactionKernelIndexed_1_double_precision_CUDA::run(), walberla::pystencils::ReactionKernelIndexed_1_single_precision_CUDA::run(), walberla::pystencils::ReactionKernelIndexed_2_double_precision_CUDA::run(), walberla::pystencils::ReactionKernelIndexed_2_single_precision_CUDA::run(), walberla::pystencils::ReactionKernelIndexed_3_double_precision_CUDA::run(), walberla::pystencils::ReactionKernelIndexed_3_single_precision_CUDA::run(), walberla::pystencils::ReactionKernelIndexed_4_double_precision_CUDA::run(), walberla::pystencils::ReactionKernelIndexed_4_single_precision_CUDA::run(), walberla::pystencils::ReactionKernelIndexed_5_double_precision_CUDA::run(), walberla::pystencils::ReactionKernelIndexed_5_single_precision_CUDA::run(), walberla::lbm::DynamicUBBDoublePrecisionCUDA::run(), walberla::lbm::DynamicUBBSinglePrecisionCUDA::run(), walberla::pystencils::InitialPDFsSetterDoublePrecisionCUDA::run(), walberla::pystencils::InitialPDFsSetterSinglePrecisionCUDA::run(), walberla::pystencils::StreamCollideSweepLeesEdwardsDoublePrecisionCUDA::run(), walberla::pystencils::StreamCollideSweepLeesEdwardsSinglePrecisionCUDA::run(), walberla::pystencils::StreamCollideSweepThermalizedDoublePrecisionCUDA::run(), walberla::pystencils::StreamCollideSweepThermalizedSinglePrecisionCUDA::run(), walberla::pystencils::UpdateVelFromPDFDoublePrecisionCUDA::run(), walberla::pystencils::UpdateVelFromPDFSinglePrecisionCUDA::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::InitialPDFsSetterDoublePrecision::runOnCellInterval(), walberla::pystencils::InitialPDFsSetterSinglePrecision::runOnCellInterval(), walberla::pystencils::StreamCollideSweepLeesEdwardsDoublePrecision::runOnCellInterval(), walberla::pystencils::StreamCollideSweepLeesEdwardsDoublePrecisionAVX::runOnCellInterval(), walberla::pystencils::StreamCollideSweepLeesEdwardsSinglePrecision::runOnCellInterval(), walberla::pystencils::StreamCollideSweepLeesEdwardsSinglePrecisionAVX::runOnCellInterval(), walberla::pystencils::StreamCollideSweepThermalizedDoublePrecision::runOnCellInterval(), walberla::pystencils::StreamCollideSweepThermalizedDoublePrecisionAVX::runOnCellInterval(), walberla::pystencils::StreamCollideSweepThermalizedSinglePrecision::runOnCellInterval(), walberla::pystencils::StreamCollideSweepThermalizedSinglePrecisionAVX::runOnCellInterval(), walberla::pystencils::UpdateVelFromPDFDoublePrecision::runOnCellInterval(), walberla::pystencils::UpdateVelFromPDFDoublePrecisionAVX::runOnCellInterval(), walberla::pystencils::UpdateVelFromPDFSinglePrecision::runOnCellInterval(), walberla::pystencils::UpdateVelFromPDFSinglePrecisionAVX::runOnCellInterval(), walberla::pystencils::AdvectiveFluxKernel_double_precision_CUDA::runOnCellInterval(), walberla::pystencils::AdvectiveFluxKernel_single_precision_CUDA::runOnCellInterval(), walberla::pystencils::ContinuityKernel_double_precision_CUDA::runOnCellInterval(), walberla::pystencils::ContinuityKernel_single_precision_CUDA::runOnCellInterval(), walberla::pystencils::DiffusiveFluxKernel_double_precision_CUDA::runOnCellInterval(), walberla::pystencils::DiffusiveFluxKernel_single_precision_CUDA::runOnCellInterval(), walberla::pystencils::DiffusiveFluxKernelThermalized_double_precision_CUDA::runOnCellInterval(), walberla::pystencils::DiffusiveFluxKernelThermalized_single_precision_CUDA::runOnCellInterval(), walberla::pystencils::DiffusiveFluxKernelWithElectrostatic_double_precision_CUDA::runOnCellInterval(), walberla::pystencils::DiffusiveFluxKernelWithElectrostatic_single_precision_CUDA::runOnCellInterval(), walberla::pystencils::DiffusiveFluxKernelWithElectrostaticThermalized_double_precision_CUDA::runOnCellInterval(), walberla::pystencils::DiffusiveFluxKernelWithElectrostaticThermalized_single_precision_CUDA::runOnCellInterval(), walberla::pystencils::FrictionCouplingKernel_double_precision_CUDA::runOnCellInterval(), walberla::pystencils::FrictionCouplingKernel_single_precision_CUDA::runOnCellInterval(), walberla::pystencils::ReactionKernelBulk_1_double_precision_CUDA::runOnCellInterval(), walberla::pystencils::ReactionKernelBulk_1_single_precision_CUDA::runOnCellInterval(), walberla::pystencils::ReactionKernelBulk_2_double_precision_CUDA::runOnCellInterval(), walberla::pystencils::ReactionKernelBulk_2_single_precision_CUDA::runOnCellInterval(), walberla::pystencils::ReactionKernelBulk_3_double_precision_CUDA::runOnCellInterval(), walberla::pystencils::ReactionKernelBulk_3_single_precision_CUDA::runOnCellInterval(), walberla::pystencils::ReactionKernelBulk_4_double_precision_CUDA::runOnCellInterval(), walberla::pystencils::ReactionKernelBulk_4_single_precision_CUDA::runOnCellInterval(), walberla::pystencils::ReactionKernelBulk_5_double_precision_CUDA::runOnCellInterval(), walberla::pystencils::ReactionKernelBulk_5_single_precision_CUDA::runOnCellInterval(), walberla::pystencils::InitialPDFsSetterDoublePrecisionCUDA::runOnCellInterval(), walberla::pystencils::InitialPDFsSetterSinglePrecisionCUDA::runOnCellInterval(), walberla::pystencils::StreamCollideSweepLeesEdwardsDoublePrecisionCUDA::runOnCellInterval(), walberla::pystencils::StreamCollideSweepLeesEdwardsSinglePrecisionCUDA::runOnCellInterval(), walberla::pystencils::StreamCollideSweepThermalizedDoublePrecisionCUDA::runOnCellInterval(), walberla::pystencils::StreamCollideSweepThermalizedSinglePrecisionCUDA::runOnCellInterval(), walberla::pystencils::UpdateVelFromPDFDoublePrecisionCUDA::runOnCellInterval(), walberla::pystencils::UpdateVelFromPDFSinglePrecisionCUDA::runOnCellInterval(), walberla::set_boundary_from_grid(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::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(), walberla::LBWalberlaImpl< FloatType, Architecture >::set_slice_velocity_at_boundary(), 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::PoissonSolverFFT< FloatType, Architecture >::solve(), 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 111 of file elc.cpp.
References ParticleRange::size().
|
static |
Definition at line 982 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 1118 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 CoulombP3MHeffte< FloatType, Architecture, FFTConfig >::long_range_kernel(), and CoulombP3MHeffte< FloatType, Architecture, FFTConfig >::long_range_pressure().
|
static |
Definition at line 149 of file elc.cpp.
Referenced by setup_PoQ(), and setup_PQ().
|
static |
Definition at line 154 of file elc.cpp.
Referenced by distribute().
|
static |
Definition at line 180 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 1158 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 131 of file elc.cpp.
References BoxGeometry::length(), BoxGeometry::length_inv(), scxcache, and scycache.
|
static |
Definition at line 171 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 508 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 648 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 87 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 85 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 96 of file elc.cpp.
Referenced by prepare_sc_cache(), setup_PoQ(), and setup_PQ().
|
static |
Definition at line 97 of file elc.cpp.
Referenced by prepare_sc_cache(), setup_PoQ(), and setup_PQ().