| tChanged name of force sum to F instead of N - sphere - GPU-based 3D discrete e… | |
| git clone git://src.adamsgaard.dk/sphere | |
| Log | |
| Files | |
| Refs | |
| LICENSE | |
| --- | |
| commit c3c603cccf305f9764fc3c3179bfdb9976e531b3 | |
| parent 56390347e098fcaf5b75899e0501283f20352d6f | |
| Author: Anders Damsgaard <[email protected]> | |
| Date: Mon, 3 Sep 2012 14:21:26 +0200 | |
| Changed name of force sum to F instead of N | |
| Diffstat: | |
| M src/contactmodels.cuh | 14 +++++++------- | |
| M src/contactsearch.cuh | 26 +++++++++++++------------- | |
| 2 files changed, 20 insertions(+), 20 deletions(-) | |
| --- | |
| diff --git a/src/contactmodels.cuh b/src/contactmodels.cuh | |
| t@@ -7,7 +7,7 @@ | |
| // Linear viscoelastic contact model for particle-wall interactions | |
| // with tangential friction and rolling resistance | |
| -__device__ Float contactLinear_wall(Float3* N, Float3* T, Float* es_dot, Float… | |
| +__device__ Float contactLinear_wall(Float3* F, Float3* T, Float* es_dot, Float… | |
| unsigned int idx_a, Float radius_a, | |
| Float4* dev_vel_sorted, Float4* dev_angvel… | |
| Float3 n, Float delta, Float wvel) | |
| t@@ -87,7 +87,7 @@ __device__ Float contactLinear_wall(Float3* N, Float3* T, Fl… | |
| }*/ | |
| // Total force from wall | |
| - *N += f_n + f_t; | |
| + *F += f_n + f_t; | |
| // Total torque from wall | |
| *T += -radius_a * cross(n, f_t) + T_res; | |
| t@@ -96,14 +96,14 @@ __device__ Float contactLinear_wall(Float3* N, Float3* T, … | |
| *p += f_n_length / (4.0f * PI * radius_a*radius_a); | |
| // Return force excerted onto the wall | |
| - //return -dot(*N, n); | |
| + //return -dot(*F, n); | |
| return dot(f_n, n); | |
| } | |
| // Linear vicoelastic contact model for particle-particle interactions | |
| // with tangential friction and rolling resistance | |
| -__device__ void contactLinearViscous(Float3* N, Float3* T, Float* es_dot, Floa… | |
| +__device__ void contactLinearViscous(Float3* F, Float3* T, Float* es_dot, Floa… | |
| unsigned int idx_a, unsigned in… | |
| Float4* dev_vel_sorted, | |
| Float4* dev_angvel_sorted, | |
| t@@ -234,7 +234,7 @@ __device__ void contactLinearViscous(Float3* N, Float3* T,… | |
| */ | |
| // Add force components from this collision to total force for particle | |
| - *N += f_n + f_t + f_c; | |
| + *F += f_n + f_t + f_c; | |
| *T += -R_bar * cross(n_ab, f_t) + T_res; | |
| // Pressure excerted onto the particle from this contact | |
| t@@ -244,7 +244,7 @@ __device__ void contactLinearViscous(Float3* N, Float3* T,… | |
| // Linear elastic contact model for particle-particle interactions | |
| -__device__ void contactLinear(Float3* N, Float3* T, | |
| +__device__ void contactLinear(Float3* F, Float3* T, | |
| Float* es_dot, Float* p, | |
| unsigned int idx_a_orig, | |
| unsigned int idx_b_orig, | |
| t@@ -396,7 +396,7 @@ __device__ void contactLinear(Float3* N, Float3* T, | |
| } | |
| // Add force components from this collision to total force for particle | |
| - *N += f_n + f_t + f_c; | |
| + *F += f_n + f_t + f_c; | |
| *T += -R_bar * cross(n_ab, f_t) + T_res; | |
| // Pressure excerted onto the particle from this contact | |
| diff --git a/src/contactsearch.cuh b/src/contactsearch.cuh | |
| t@@ -408,7 +408,7 @@ __global__ void interact(unsigned int* dev_gridParticleInd… | |
| Float p = 0.0f; | |
| // Allocate memory for temporal force/torque vector values | |
| - Float3 N = MAKE_FLOAT3(0.0f, 0.0f, 0.0f); | |
| + Float3 F = MAKE_FLOAT3(0.0f, 0.0f, 0.0f); | |
| Float3 T = MAKE_FLOAT3(0.0f, 0.0f, 0.0f); | |
| // Apply linear elastic, frictional contact model to registered contacts | |
| t@@ -447,7 +447,7 @@ __global__ void interact(unsigned int* dev_gridParticleInd… | |
| if (delta_n < 0.0f) { | |
| //cuPrintf("\nProcessing contact, idx_a_orig = %u, idx_b_orig = %u… | |
| // idx_a_orig, idx_b_orig, i, delta_n); | |
| - /*contactLinearViscous(&N, &T, &es_dot, &p, | |
| + /*contactLinearViscous(&F, &T, &es_dot, &p, | |
| idx_a_orig, idx_b_orig, | |
| dev_vel, | |
| dev_angvel, | |
| t@@ -455,7 +455,7 @@ __global__ void interact(unsigned int* dev_gridParticleInd… | |
| x_ab, x_ab_length, | |
| delta_n, devC_kappa); | |
| dev_delta_t[mempos] = MAKE_FLOAT4(0.0f, 0.0f, 0.0f, 0.0f);*/ | |
| - contactLinear(&N, &T, &es_dot, &p, | |
| + contactLinear(&F, &T, &es_dot, &p, | |
| idx_a_orig, | |
| idx_b_orig, | |
| vel_a, | |
| t@@ -501,7 +501,7 @@ __global__ void interact(unsigned int* dev_gridParticleInd… | |
| for (int x_dim=-1; x_dim<2; ++x_dim) { // x-axis | |
| targetPos = gridPos + make_int3(x_dim, y_dim, z_dim); | |
| overlapsInCell(targetPos, idx_a, x_a, radius_a, | |
| - &N, &T, &es_dot, &p, | |
| + &F, &T, &es_dot, &p, | |
| dev_x_sorted, dev_radius_sorted, | |
| dev_vel_sorted, dev_angvel_sorted, | |
| dev_cellStart, dev_cellEnd, | |
| t@@ -521,7 +521,7 @@ __global__ void interact(unsigned int* dev_gridParticleInd… | |
| delta_w = w_up_nx.w - (x_a.z + radius_a); | |
| w_n = MAKE_FLOAT3(0.0f, 0.0f, -1.0f); | |
| if (delta_w < 0.0f) { | |
| - w_force = contactLinear_wall(&N, &T, &es_dot, &p, idx_a, radius_a, | |
| + w_force = contactLinear_wall(&F, &T, &es_dot, &p, idx_a, radius_a, | |
| dev_vel_sorted, dev_angvel_sorted, | |
| w_n, delta_w, w_up_mvfd.y); | |
| } | |
| t@@ -530,7 +530,7 @@ __global__ void interact(unsigned int* dev_gridParticleInd… | |
| delta_w = x_a.z - radius_a - origo.z; | |
| w_n = MAKE_FLOAT3(0.0f, 0.0f, 1.0f); | |
| if (delta_w < 0.0f) { | |
| - (void)contactLinear_wall(&N, &T, &es_dot, &p, idx_a, radius_a, | |
| + (void)contactLinear_wall(&F, &T, &es_dot, &p, idx_a, radius_a, | |
| dev_vel_sorted, dev_angvel_sorted, | |
| w_n, delta_w, 0.0f); | |
| } | |
| t@@ -542,7 +542,7 @@ __global__ void interact(unsigned int* dev_gridParticleInd… | |
| delta_w = x_a.x - radius_a - origo.x; | |
| w_n = MAKE_FLOAT3(1.0f, 0.0f, 0.0f); | |
| if (delta_w < 0.0f) { | |
| - (void)contactLinear_wall(&N, &T, &es_dot, &p, idx_a, radius_a, | |
| + (void)contactLinear_wall(&F, &T, &es_dot, &p, idx_a, radius_a, | |
| dev_vel_sorted, dev_angvel_sorted, | |
| w_n, delta_w, 0.0f); | |
| } | |
| t@@ -551,7 +551,7 @@ __global__ void interact(unsigned int* dev_gridParticleInd… | |
| delta_w = L.x - (x_a.x + radius_a); | |
| w_n = MAKE_FLOAT3(-1.0f, 0.0f, 0.0f); | |
| if (delta_w < 0.0f) { | |
| - (void)contactLinear_wall(&N, &T, &es_dot, &p, idx_a, radius_a, | |
| + (void)contactLinear_wall(&F, &T, &es_dot, &p, idx_a, radius_a, | |
| dev_vel_sorted, dev_angvel_sorted, | |
| w_n, delta_w, 0.0f); | |
| } | |
| t@@ -560,7 +560,7 @@ __global__ void interact(unsigned int* dev_gridParticleInd… | |
| delta_w = x_a.y - radius_a - origo.y; | |
| w_n = MAKE_FLOAT3(0.0f, 1.0f, 0.0f); | |
| if (delta_w < 0.0f) { | |
| - (void)contactLinear_wall(&N, &T, &es_dot, &p, idx_a, radius_a, | |
| + (void)contactLinear_wall(&F, &T, &es_dot, &p, idx_a, radius_a, | |
| dev_vel_sorted, dev_angvel_sorted, | |
| w_n, delta_w, 0.0f); | |
| } | |
| t@@ -569,7 +569,7 @@ __global__ void interact(unsigned int* dev_gridParticleInd… | |
| delta_w = L.y - (x_a.y + radius_a); | |
| w_n = MAKE_FLOAT3(0.0f, -1.0f, 0.0f); | |
| if (delta_w < 0.0f) { | |
| - (void)contactLinear_wall(&N, &T, &es_dot, &p, idx_a, radius_a, | |
| + (void)contactLinear_wall(&F, &T, &es_dot, &p, idx_a, radius_a, | |
| dev_vel_sorted, dev_angvel_sorted, | |
| w_n, delta_w, 0.0f); | |
| } | |
| t@@ -580,7 +580,7 @@ __global__ void interact(unsigned int* dev_gridParticleInd… | |
| delta_w = x_a.y - radius_a - origo.y; | |
| w_n = MAKE_FLOAT3(0.0f, 1.0f, 0.0f); | |
| if (delta_w < 0.0f) { | |
| - (void)contactLinear_wall(&N, &T, &es_dot, &p, idx_a, radius_a, | |
| + (void)contactLinear_wall(&F, &T, &es_dot, &p, idx_a, radius_a, | |
| dev_vel_sorted, dev_angvel_sorted, | |
| w_n, delta_w, 0.0f); | |
| } | |
| t@@ -589,7 +589,7 @@ __global__ void interact(unsigned int* dev_gridParticleInd… | |
| delta_w = L.y - (x_a.y + radius_a); | |
| w_n = MAKE_FLOAT3(0.0f, -1.0f, 0.0f); | |
| if (delta_w < 0.0f) { | |
| - (void)contactLinear_wall(&N, &T, &es_dot, &p, idx_a, radius_a, | |
| + (void)contactLinear_wall(&F, &T, &es_dot, &p, idx_a, radius_a, | |
| dev_vel_sorted, dev_angvel_sorted, | |
| w_n, delta_w, 0.0f); | |
| } | |
| t@@ -601,7 +601,7 @@ __global__ void interact(unsigned int* dev_gridParticleInd… | |
| // Write force to unsorted position | |
| unsigned int orig_idx = dev_gridParticleIndex[idx_a]; | |
| - dev_force[orig_idx] = MAKE_FLOAT4(N.x, N.y, N.z, 0.0f); | |
| + dev_force[orig_idx] = MAKE_FLOAT4(F.x, F.y, F.z, 0.0f); | |
| dev_torque[orig_idx] = MAKE_FLOAT4(T.x, T.y, T.z, 0.0f); | |
| dev_es_dot[orig_idx] = es_dot; | |
| dev_es[orig_idx] += es_dot * devC_dt; |