![]() |
ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
|
#include "config/config.hpp"#include "magnetostatics/dipolar_direct_sum_gpu_cuda.cuh"#include "cuda/utils.cuh"#include <thrust/device_ptr.h>#include <thrust/reduce.h>#include <cuda.h>Go to the source code of this file.
Functions | |
| __device__ float | scalar_product (float const *a, float const *b) |
| __device__ void | vector_product (float const *a, float const *b, float *out) |
| __device__ void | get_mi_vector_dds (float res[3], float const a[3], float const b[3], float const box_l[3], int const periodic[3]) |
| __device__ void | dipole_ia_force (float const pf, float const dr[3], float const *const dip1, float const *const dip2, float *const f1, float *const torque1, float *const torque2, float *const dip_fld1, float *const dip_fld2) |
| __device__ float | dipole_ia_energy (float pf, float const *r1, float const *r2, float const *dip1, float const *dip2, float box_l[3], int periodic[3]) |
| __global__ void | DipolarDirectSum_kernel_force (float const pf, unsigned int n, float const *const pos, float const *const dip, float *dip_fld, float *const f, float *const torque, float const box_l[3], int const periodic[3], int const n_replicas) |
| __device__ void | dds_sumReduction (float *input, float *sum) |
| __global__ void | DipolarDirectSum_kernel_energy (float pf, unsigned int n, float const *const pos, float const *const dip, float box_l[3], int periodic[3], float *energySum) |
| void | copy_box_data (float **box_l_gpu, int **periodic_gpu, float const *box_l, int const *periodic) |
| void | DipolarDirectSum_kernel_wrapper_force (float k, unsigned int n, float const *const pos, float const *const dip, float *dip_fld, float *f, float *torque, float box_l[3], int periodic[3], int n_replicas) |
| void | DipolarDirectSum_kernel_wrapper_energy (float k, unsigned int n, float const *const pos, float const *const dip, float box_l[3], int periodic[3], float *E) |
|
inline |
Definition at line 336 of file dipolar_direct_sum_gpu_cuda.cu.
References cuda_safe_mem.
Referenced by DipolarDirectSum_kernel_wrapper_energy(), and DipolarDirectSum_kernel_wrapper_force().
| __device__ void dds_sumReduction | ( | float * | input, |
| float * | sum | ||
| ) |
Definition at line 288 of file dipolar_direct_sum_gpu_cuda.cu.
Referenced by DipolarDirectSum_kernel_energy().
| __global__ void DipolarDirectSum_kernel_energy | ( | float | pf, |
| unsigned int | n, | ||
| float const *const | pos, | ||
| float const *const | dip, | ||
| float | box_l[3], | ||
| int | periodic[3], | ||
| float * | energySum | ||
| ) |
Definition at line 304 of file dipolar_direct_sum_gpu_cuda.cu.
References dds_sumReduction(), and dipole_ia_energy().
Referenced by DipolarDirectSum_kernel_wrapper_energy().
| __global__ void DipolarDirectSum_kernel_force | ( | float const | pf, |
| unsigned int | n, | ||
| float const *const | pos, | ||
| float const *const | dip, | ||
| float * | dip_fld, | ||
| float *const | f, | ||
| float *const | torque, | ||
| float const | box_l[3], | ||
| int const | periodic[3], | ||
| int const | n_replicas | ||
| ) |
Definition at line 156 of file dipolar_direct_sum_gpu_cuda.cu.
References dipole_ia_force(), and get_mi_vector_dds().
Referenced by DipolarDirectSum_kernel_wrapper_force().
| void DipolarDirectSum_kernel_wrapper_energy | ( | float | k, |
| unsigned int | n, | ||
| float const *const | pos, | ||
| float const *const | dip, | ||
| float | box_l[3], | ||
| int | periodic[3], | ||
| float * | E | ||
| ) |
Definition at line 379 of file dipolar_direct_sum_gpu_cuda.cu.
References block(), copy_box_data(), cuda_safe_mem, DipolarDirectSum_kernel_energy(), and KERNELCALL_shared.
Referenced by DipolarDirectSumGpu::long_range_energy().
| void DipolarDirectSum_kernel_wrapper_force | ( | float | k, |
| unsigned int | n, | ||
| float const *const | pos, | ||
| float const *const | dip, | ||
| float * | dip_fld, | ||
| float * | f, | ||
| float * | torque, | ||
| float | box_l[3], | ||
| int | periodic[3], | ||
| int | n_replicas | ||
| ) |
Definition at line 347 of file dipolar_direct_sum_gpu_cuda.cu.
References block(), copy_box_data(), DipolarDirectSum_kernel_force(), and KERNELCALL.
Referenced by DipolarDirectSumGpu::add_long_range_forces().
| __device__ float dipole_ia_energy | ( | float | pf, |
| float const * | r1, | ||
| float const * | r2, | ||
| float const * | dip1, | ||
| float const * | dip2, | ||
| float | box_l[3], | ||
| int | periodic[3] | ||
| ) |
Definition at line 130 of file dipolar_direct_sum_gpu_cuda.cu.
References get_mi_vector_dds(), and scalar_product().
Referenced by DipolarDirectSum_kernel_energy().
| __device__ void dipole_ia_force | ( | float const | pf, |
| float const | dr[3], | ||
| float const *const | dip1, | ||
| float const *const | dip2, | ||
| float *const | f1, | ||
| float *const | torque1, | ||
| float *const | torque2, | ||
| float *const | dip_fld1, | ||
| float *const | dip_fld2 | ||
| ) |
Definition at line 59 of file dipolar_direct_sum_gpu_cuda.cu.
References scalar_product(), and vector_product().
Referenced by DipolarDirectSum_kernel_force().
|
inline |
Definition at line 49 of file dipolar_direct_sum_gpu_cuda.cu.
Referenced by DipolarDirectSum_kernel_force(), and dipole_ia_energy().
|
inline |
Definition at line 38 of file dipolar_direct_sum_gpu_cuda.cu.
Referenced by dipole_ia_energy(), and dipole_ia_force().
|
inline |
Definition at line 42 of file dipolar_direct_sum_gpu_cuda.cu.
Referenced by DipolarLayerCorrection::add_force_corrections(), DipolarDirectSum::add_long_range_forces(), angular_momentum(), calc_dihedral_angle(), IBMTribend::calc_forces(), calc_opposing_force(), Shapes::Rhomboid::calculate_dist(), dipolar_force_corrections(), dipole_ia_force(), draw_polymer_positions(), Observables::BondDihedrals::evaluate(), Constraints::HomogeneousMagneticField::force(), TabulatedDihedralBond::forces(), DihedralBond::forces(), gb_pair_force(), IBMTribend::initialize(), anonymous_namespace{dp3m_heffte.impl.hpp}::AssignTorques< cao >::operator()(), DipolarP3M::pair_force(), pair_force(), stoner_wohlfarth_main(), DipolarScafacosImpl::update_particle_forces(), velocity(), and vs_relative_back_transfer_forces_and_torques().