tAdded energy loss calculation for normal viscous damping, and corrected fricti… | |
git clone git://src.adamsgaard.dk/sphere | |
Log | |
Files | |
Refs | |
LICENSE | |
--- | |
commit fd503b464e23719accae794bba0b3fcf562bd20a | |
parent 973da25351836520b63188d5b3dfdd13b843fb68 | |
Author: Anders Damsgaard <[email protected]> | |
Date: Tue, 9 Oct 2012 13:56:38 +0200 | |
Added energy loss calculation for normal viscous damping, and corrected frictio… | |
Diffstat: | |
M src/contactmodels.cuh | 11 ++++++++++- | |
1 file changed, 10 insertions(+), 1 deletion(-) | |
--- | |
diff --git a/src/contactmodels.cuh b/src/contactmodels.cuh | |
t@@ -324,6 +324,14 @@ __device__ void contactLinear(Float3* F, Float3* T, | |
// Normal force component: Elastic - viscous damping | |
f_n = (-devC_k_n * delta_ab - devC_gamma_n * vel_n_ab) * n_ab; | |
+ // Store energy dissipated in normal viscous component | |
+ // watt = gamma_n * vel_n * dx_n / dt | |
+ // watt = gamma_n * vel_n * vel_n * dt / dt | |
+ // watt = gamma_n * vel_n * vel_n | |
+ // N*m/s = N*s/m * m/s * m/s * s / s | |
+ *ev_dot += devC_gamma_n * vel_n_ab * vel_n_ab; | |
+ | |
+ | |
// Make sure the viscous damping doesn't exceed the elastic component, | |
// i.e. the damping factor doesn't exceed the critical damping, 2*sqrt(m*k_n) | |
if (dot(f_n, n_ab) < 0.0f) | |
t@@ -377,7 +385,8 @@ __device__ void contactLinear(Float3* F, Float3* T, | |
// Shear friction heat production rate: | |
// The energy lost from the tangential spring is dissipated as heat | |
//*es_dot += -dot(vel_t_ab, f_t); | |
- *es_dot += length(delta_t0 - delta_t) * devC_k_t / devC_dt; // Seen in E… | |
+ //*es_dot += length(delta_t0 - delta_t) * devC_k_t / devC_dt; // Seen in… | |
+ *es_dot += length(delta_t0 - delta_t) * f_t / devC_dt; | |
} else { // Static case | |