org.jcurl.core.impl
Class CurlerDenny

Package class diagram package CurlerDenny
java.lang.Object
  extended by org.jcurl.core.impl.PropModelImpl
      extended by org.jcurl.core.impl.CurlerBase
          extended by org.jcurl.core.impl.CoulombCurler
              extended by org.jcurl.core.impl.CurlerDenny
All Implemented Interfaces:
Serializable, Iterable<Map.Entry<CharSequence,Measure>>, Curler, Factory, PropModel, Strategy

public class CurlerDenny
extends CoulombCurler

Mark Denny's curl-model. Motion of a curling rock acc. to "Curling rock dynamics", Mark Denny, Canadian Journal of Physics, 1988, P. 295-304:

 tau = v0 * (mu * g)
 x(t) := - (b * v0ˆ2 / (4 * e * R * tau)) * (tˆ3 / 3 - tˆ4 / (4 * tau))
 y(t) := v0 * (t - tˆ2 / (2 * tau))
 w(t) := w0 * (1 - t / tau)ˆ(1 / e)
 

with

Integrating w(t) leads to
a(t) = - w0 * e * (tau * ((tau-t)/tau)^(1/e) - t * ((tau-t)/tau)^(1/e) - tau) / (e + 1)

Maxima Solution for the friction coefficients: Starting with the basic equations we first substitute tau:

 tau = v0 * (mu * g)
 x(t) := - (b * v0ˆ2 / (4 * e * R * tau)) * (tˆ3 / 3 - tˆ4 / (4 * tau))
 ratsubst(v0/(mu*g), tau, %);
 y(t) := v0 * (t - tˆ2 / (2 * tau))
 ratsubst(v0/(mu*g), tau, %);
 
which results in
 x(t):=-(4*g*mu*b*tˆ3*v0-3*gˆ2*muˆ2*b*tˆ4)/(48*e*R)
 y(t):=(2*t*v0-g*mu*tˆ2)/2
 
Now as we're interested in the frictions coefficients:
 solve([y(tt)=tee, diff(y(tt),tt)=0, x(tt)=curl], [mu, v0, b]);
 
we get them:
 mu=(2*tee)/(g*ttˆ2)
 v0=(2*tee)/tt
 b=-(12*curl*e*R)/teeˆ2
 

Version:
$Id:SlideDenny.java 378 2007-01-24 01:18:35Z mrohrmoser $
Author:
M. Rohrmoser
See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.jcurl.core.impl.CoulombCurler
g, mu
 
Fields inherited from class org.jcurl.core.impl.PropModelImpl
params
 
Constructor Summary
CurlerDenny()
           
CurlerDenny(double drawToTeeTime, double drawToTeeCurl)
           
 
Method Summary
 CurveRock<RockType.Pos> computeRc(double a0, double v0, double omega0, double sweepFactor)
          Create rock-coordinate curves for running rocks.
 void init(Map<CharSequence,Measure> ice)
           
 void setDrawToTeeCurl(double drawToTeeCurl)
           
 
Methods inherited from class org.jcurl.core.impl.CoulombCurler
computeHackSpeed, getDrawToTeeCurl, getDrawToTeeTime, setDrawToTeeTime
 
Methods inherited from class org.jcurl.core.impl.CurlerBase
computeHackToTee, computeIntervalTime, computeSplitToTee, computeV0ToTee, computeWc, hackRc2Wc, hackRc2Wc
 
Methods inherited from class org.jcurl.core.impl.PropModelImpl
getProp, internalInit, iterator, readResolve
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.jcurl.core.api.PropModel
getProp, iterator
 

Constructor Detail

CurlerDenny

public CurlerDenny()

CurlerDenny

public CurlerDenny(double drawToTeeTime,
                   double drawToTeeCurl)
Parameters:
drawToTeeTime - may be Double.POSITIVE_INFINITY.
drawToTeeCurl - should be > 0
Method Detail

computeRc

public CurveRock<RockType.Pos> computeRc(double a0,
                                         double v0,
                                         double omega0,
                                         double sweepFactor)
Description copied from interface: Curler
Create rock-coordinate curves for running rocks.

Parameters:
a0 - Initial handle angle (RC).
v0 - Initial Speed (RC or WC absolute)
omega0 - Initial angular handle speed (either WC or RC)
Returns:
trajectory (RC)

init

public void init(Map<CharSequence,Measure> ice)

setDrawToTeeCurl

public void setDrawToTeeCurl(double drawToTeeCurl)


Copyright © 2005-2009 jcurl.org. All Rights Reserved.