Introduction
Introduction Statistics Contact Development Disclaimer Help
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;
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.