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 pf, float const *r1, float const *r2, float const *dip1, float const *dip2, float *f1, float *torque1, float *torque2, float box_l[3], int periodic[3]) |
__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 pf, unsigned int n, float *pos, float *dip, float *f, float *torque, float box_l[3], int periodic[3]) |
__device__ void | dds_sumReduction (float *input, float *sum) |
__global__ void | DipolarDirectSum_kernel_energy (float pf, unsigned int n, float *pos, float *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 *pos, float *dip, float *f, float *torque, float box_l[3], int periodic[3]) |
void | DipolarDirectSum_kernel_wrapper_energy (float k, unsigned int n, float *pos, float *dip, float box_l[3], int periodic[3], float *E) |
|
inline |
Definition at line 236 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 189 of file dipolar_direct_sum_gpu_cuda.cu.
Referenced by DipolarDirectSum_kernel_energy().
__global__ void DipolarDirectSum_kernel_energy | ( | float | pf, |
unsigned int | n, | ||
float * | pos, | ||
float * | dip, | ||
float | box_l[3], | ||
int | periodic[3], | ||
float * | energySum | ||
) |
Definition at line 205 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 | pf, |
unsigned int | n, | ||
float * | pos, | ||
float * | dip, | ||
float * | f, | ||
float * | torque, | ||
float | box_l[3], | ||
int | periodic[3] | ||
) |
Definition at line 137 of file dipolar_direct_sum_gpu_cuda.cu.
References dipole_ia_force().
Referenced by DipolarDirectSum_kernel_wrapper_force().
void DipolarDirectSum_kernel_wrapper_energy | ( | float | k, |
unsigned int | n, | ||
float * | pos, | ||
float * | dip, | ||
float | box_l[3], | ||
int | periodic[3], | ||
float * | E | ||
) |
Definition at line 276 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 * | pos, | ||
float * | dip, | ||
float * | f, | ||
float * | torque, | ||
float | box_l[3], | ||
int | periodic[3] | ||
) |
Definition at line 247 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 112 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 | pf, |
float const * | r1, | ||
float const * | r2, | ||
float const * | dip1, | ||
float const * | dip2, | ||
float * | f1, | ||
float * | torque1, | ||
float * | torque2, | ||
float | box_l[3], | ||
int | periodic[3] | ||
) |
Definition at line 59 of file dipolar_direct_sum_gpu_cuda.cu.
References get_mi_vector_dds(), 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 dipole_ia_energy(), and dipole_ia_force().
|
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.cpp}::AssignTorques< cao >::operator()(), DipolarP3M::pair_force(), pair_force(), DipolarScafacosImpl::update_particle_forces(), velocity(), and vs_relative_back_transfer_forces_and_torques().