Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge the espresso head fork to the espresso-ffans #3

Merged
merged 56 commits into from
Nov 15, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
fd096f3
New mode for collision detection: glue to surface. 1st part
RudolfWeeber Sep 7, 2012
665c21a
New collision detectio mode: part 2
RudolfWeeber Sep 7, 2012
fca46b5
More on collision detection "glue to surface" mode
RudolfWeeber Sep 9, 2012
c214742
More on the "glue to surface" collision mode
RudolfWeeber Sep 10, 2012
2e5b72b
Added test case to Makefile.am
RudolfWeeber Sep 10, 2012
ecee9e6
Merge branch 'master' of git://github.com/espressomd/espresso into dy…
RudolfWeeber Sep 17, 2012
4431378
Collision detection "bind centers" mode testcase
RudolfWeeber Sep 17, 2012
552c136
Added blockfile support for vs_relative attribute
RudolfWeeber Sep 18, 2012
7b02d85
three particle binding and parallelization
gizeminci Oct 16, 2014
8d79843
three particle binding and parallelization
gizeminci Oct 16, 2014
323c3cf
Fixes to the collision code
Oct 21, 2014
d2e422d
fixed error handler that suppressed most Tcl errors
Oct 21, 2014
ed9b5a8
More debug output
Oct 21, 2014
ce0e236
some updates
gizeminci Oct 22, 2014
5f3d887
parallel tpb with collision info gathered to all nodes
gizeminci Nov 24, 2014
8839db3
parallel tpb with collision info gathered to all nodes-fixed version
gizeminci Nov 24, 2014
aa2ae37
parallel version of tpb
gizeminci Feb 5, 2015
9d80271
new version with copied bond
gizeminci Mar 16, 2015
0aedf88
MPI_Allgatherv function is defined in mpi.h
gizeminci Mar 19, 2015
ec85d0f
collision detection with mpiall
gizeminci Jun 19, 2015
3568add
Merge branch 'master' of git://github.com/espressomd/espresso
RudolfWeeber Jul 15, 2015
98d8e24
Missing test script for collision-detection-angular
RudolfWeeber Jul 15, 2015
23d1276
Missing files
RudolfWeeber Jul 16, 2015
2158266
Delete fils which don't belong in repo
RudolfWeeber Jul 16, 2015
d75f804
Merge branch 'dyn_bonding_one_vs'
RudolfWeeber Oct 16, 2015
4bdc984
Partial merge of collision method which creates one virtual site into…
RudolfWeeber Oct 19, 2015
ec39563
Collision_detection: Cleanup, bug fixing, test cases and docs for glu…
RudolfWeeber Oct 20, 2015
9b610a4
Merged collision_detection method three_particle_binding
RudolfWeeber Oct 21, 2015
02768c9
Avoid segfault
RudolfWeeber Oct 22, 2015
c267b91
got rid of mpi custom data type for collision_detection
RudolfWeeber Oct 22, 2015
e2c2753
Enabel get_processor_name in mpi_fake
RudolfWeeber Oct 22, 2015
913a30e
Collision_detection: docs, cleanup, testcase
RudolfWeeber Oct 23, 2015
87a1a17
Delete files that didn't belong in repo
RudolfWeeber Oct 26, 2015
da9aad3
Merge branch 'master' of git://github.com/espressomd/espresso into co…
RudolfWeeber Oct 26, 2015
5cadd7a
Memleaks
RudolfWeeber Oct 27, 2015
c0462c5
make_part_type_exist() with uninitialized value in collision_detection
RudolfWeeber Oct 27, 2015
8b9178a
ifdef...
RudolfWeeber Oct 27, 2015
907c825
Remove outdated checking code
RudolfWeeber Oct 27, 2015
42093d5
collision_detection: resort_particles handling
RudolfWeeber Oct 28, 2015
df143f7
Move handle_collisions() to avoid crashes
RudolfWeeber Oct 29, 2015
ce8e7bd
Mem-leak in vs_auto_relate_to
RudolfWeeber Oct 29, 2015
e6c49bf
collision_detection: resort particles less often
RudolfWeeber Oct 29, 2015
6a6bf81
Merge commit 'e6c49' into collision_detection_merge_2015_11_02
RudolfWeeber Nov 2, 2015
9cca9a1
Tentative fix for bug#448
RudolfWeeber Nov 1, 2015
cc48cb5
Collision_detection: Remove old workaround code, make particles to wh…
RudolfWeeber Nov 1, 2015
09ec05f
Get rid of segfault in collision detection
RudolfWeeber Nov 4, 2015
5b2a8d1
Added Bjerrum parameter to the dds-gpu actor.
bogdan-tanygin Nov 6, 2015
0b96d3a
Avoid invalid frees on dipolareDirectSum
RudolfWeeber Nov 10, 2015
13a63f8
testcase for dipolar direct summation methods: Test force/torque/ener…
RudolfWeeber Nov 10, 2015
911b919
Added test case dawaanr-and-dds-gpu to testsuite
RudolfWeeber Nov 10, 2015
d268bbb
Merge pull request #456 from RudolfWeeber/dds-gpu-fix
fweik Nov 10, 2015
b188a77
Added Macro for deprecation warning
rbardak Nov 10, 2015
d319214
Deprecation warnings for undocumented analyze cmds
rbardak Nov 10, 2015
51f6382
Remove stray preprocessor definition
RudolfWeeber Nov 11, 2015
e19a177
Merge pull request #457 from rbardak/analyze
fweik Nov 11, 2015
73ea93e
Merge pull request #451 from RudolfWeeber/collision_detection_merge_2…
fweik Nov 11, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 15 additions & 2 deletions doc/ug/setup.tex
Original file line number Diff line number Diff line change
Expand Up @@ -679,8 +679,10 @@ \section{Creating bonds when particles collide}
\begin{essyntax}
\variant{1} on\_collision
\variant{2} on\_collision off
\variant{4} on\_collision \opt{exception} bind_centers \var{d} \var{bond1}
\variant{5} on\_collision \opt{exception} bind_at_point_of_collision \var{d} \var{bond1} \var{bond2} \var{type}
\variant{3} on\_collision \opt{exception} bind_centers \var{d} \var{bond1}
\variant{4} on\_collision \opt{exception} bind_at_point_of_collision \var{d} \var{bond1} \var{bond2} \var{type}
\variant{5} on\_collision \opt{exception} glue_to_surface \var{d} \var{bond1} \var{bond2} \var{type} \var{type2} \var{type3} \var{type4} \var{d2}
\variant{6} on\_collision \opt{exception} bind_three_particles \var{d} \var{bond1} \var{bond2} \var{res}
\end{essyntax}

With the help of the feature \feature{COLLISION_DETECTION}, bonds
Expand Down Expand Up @@ -728,6 +730,17 @@ \section{Creating bonds when particles collide}
created at the point of collision (if applicable). Be sure not to
define a short-ranged interaction for this particle type, as two
particles will be generated in the same place.

\item \lit{glue_to_surface} is used to fix a particle of type \var{type2} onto the surface of a particle of type \var{type3}.
This is achieved by creating a virtual site (particle type \var{type}) which
is rigidly connected to the particle of \var{type3}. A bond of type
\var{bond2} is then created between the virtual site and the particle
of \var{type}.
Additionally, a bond of type \var{bond1} between the colliding
particles is also created.
After the collision, the particle of type \var{type3} is changed to type \var{type4}.
\item \lit{bind_three_particles} allows for the creating of agglomerates which maintain their shape similarly to those create by the \lit{bind_ad_point_of_collision} method. The present approach works without virtual sites. Instead, for each two-particle collision, the surrounding is searched for a third particle. If one is found, angular bounds are placed on each of the three particles in addition to the distance based bounds between the particle centers. The id of the angular bonds is determined from the angle between the particles. Zero degrees corresponds to bond id \var{bond2}, where as 180 degrees corresponds to bond id \var{bond2} +\var{res}.
this method das not depend on the particles' rotational degrees of freedom being integrated. Virtual sites are also not required, and the method is implemented to run on more than one cpu core.
\end{itemize}

The code can throw an exception (background error) in case two
Expand Down
5 changes: 3 additions & 2 deletions src/core/actor/DipolarDirectSum.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,14 @@ if (dipolarDirectSum)
{
forceActors.remove(dipolarDirectSum);
energyActors.remove(dipolarDirectSum);
free(dipolarDirectSum);
delete(dipolarDirectSum);
dipolarDirectSum=NULL;

}
}


DipolarDirectSum *dipolarDirectSum;
DipolarDirectSum *dipolarDirectSum=0;

#endif

6 changes: 5 additions & 1 deletion src/core/actor/DipolarDirectSum.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
#include "DipolarDirectSum_cuda.hpp"
#include "grid.hpp"
#include "cuda_interface.hpp"
#include "interaction_data.hpp"

#ifndef ACTOR_DIPOLARDIRECTSUM_HPP
#define ACTOR_DIPOLARDIRECTSUM_HPP
Expand All @@ -24,7 +25,10 @@ void DipolarDirectSum_kernel_wrapper_force(dds_float k, int n, float *pos, float
class DipolarDirectSum : public Actor {
public:
DipolarDirectSum(SystemInterface &s) {
if(!s.requestFGpu())

k = coulomb.Dbjerrum;

if(!s.requestFGpu())
std::cerr << "DipolarDirectSum needs access to forces on GPU!" << std::endl;

if(!s.requestRGpu())
Expand Down
7 changes: 3 additions & 4 deletions src/core/actor/DipolarDirectSum_cuda.cu
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ __device__ dds_float dipole_ia_energy(int id,dds_float pf, float* r1, float *r2,
dds_float dr[3];
dds_float _r1[3],_r2[3],_dip1[3],_dip2[3];

for (int i=i=0;i<3;i++)
for (int i=0;i<3;i++)
{
_r1[i]=r1[i];
_r2[i]=r2[i];
Expand Down Expand Up @@ -175,7 +175,6 @@ __global__ void DipolarDirectSum_kernel_force(dds_float pf,

int i = blockIdx.x * blockDim.x + threadIdx.x;


if(i >= n)
return;

Expand Down Expand Up @@ -215,7 +214,7 @@ __global__ void DipolarDirectSum_kernel_force(dds_float pf,

for (int j=i+1;j<n;j++)
{
dipole_ia_force(i,1,pos+3*i,pos+3*j,dip+3*i,dip+3*j,fi,ti,tj,1,box_l,periodic);
dipole_ia_force(i,pf,pos+3*i,pos+3*j,dip+3*i,dip+3*j,fi,ti,tj,1,box_l,periodic);
// printf("%d %d: %f %f %f\n",i,j,fi[0],fi[1],fi[2]);
for (int k=0;k<3;k++)
{
Expand Down Expand Up @@ -285,7 +284,7 @@ __global__ void DipolarDirectSum_kernel_energy(dds_float pf,
// Summation for particle i
for (int j=i+1;j<n;j++)
{
sum+=dipole_ia_energy(i,1,pos+3*i,pos+3*j,dip+3*i,dip+3*j,box_l,periodic);
sum+=dipole_ia_energy(i,pf,pos+3*i,pos+3*j,dip+3*i,dip+3*j,box_l,periodic);
}

// Save per thread result into block shared mem
Expand Down
Loading