rowingphysics package

Submodules

rowingphysics.crew module

class rowingphysics.crew.combirecovery(strokelength, p1=0.95, q1=0.5)
dxhandle(vavg, trecovery, time)
vhandle(vavg, trecovery, time)
class rowingphysics.crew.cosinusrecovery(strokelength, p1=0.95)
dxhandle(vavg, trecovery, time)
vhandle(vavg, trecovery, time)
class rowingphysics.crew.crew(mc=80.0, strokelength=1.4, tempo=30.0, frac=0.5, recprofile=<rowingphysics.crew.sinusrecovery instance at 0x08E2BEB8>, strokeprofile=<rowingphysics.crew.trapezium instance at 0x08E2BEE0>, technique=<rowingphysics.crew.technique_meas instance at 0x08E2BF08>, maxpower=1000.0, maxforce=1000.0)
dxhandle(vavg, trecovery, time)
forceprofile(favg, x)
vcm(vhandle, xhandle)
vcma(vhandle, xhandle)
vha(vcm, xhandle)
vhandle(vavg, trecovery, time)
class rowingphysics.crew.flat
forceprofile(favg, x)
class rowingphysics.crew.flatrecovery
dxhandle(vavg, trecovery, time)
vhandle(vavg, trecovery, time)
class rowingphysics.crew.fromfile(fname='empforce.txt')
forceprofile(favg, x)
class rowingphysics.crew.genericrecovery(strokelength, As=array([ 1.]), ws=array([ 1.]), phis=array([ 0.]))
dxhandle(vavg, trecovery, time)
vhandle(vavg, trecovery, time)
class rowingphysics.crew.realisticrecovery
dxhandle(vavg, trecovery, time)
vhandle(vavg, trecovery, time)
class rowingphysics.crew.sinusrecovery
dxhandle(vavg, trecovery, time)
vhandle(vavg, trecovery, time)
class rowingphysics.crew.sinusrecovery2(strokelength, p1=1.0)
dxhandle(vavg, trecovery, time)
vhandle(vavg, trecovery, time)
class rowingphysics.crew.strongbegin(frac=0.5)
forceprofile(favg, x)
class rowingphysics.crew.strongend(frac=0.5)
forceprofile(favg, x)
class rowingphysics.crew.strongmiddle(frac=0.5)
forceprofile(favg, x)
maxforce(favg)
class rowingphysics.crew.strongmiddle2(frac=0.5)
forceprofile(favg, x)
class rowingphysics.crew.technique_meas
vcm(vhandle, strokelength, xhandle)
vcma(vhandle, strokelength, xhandle)
vha(vcm, strokelength, xhandle)
class rowingphysics.crew.trapezium(h1=1.0, h2=1.0, x1=0.25, x2=0.75)
forceprofile(favg, x)
class rowingphysics.crew.trapezium2(h1=1.0, h2=1.0, x1=0.25, x2=0.75, h0=0.5)
forceprofile(favg, x)
class rowingphysics.crew.trianglerecovery(x1=0.3)
dxhandle(vavg, trecovery, time)
vhandle(vavg, trecovery, time)

rowingphysics.erg module

class rowingphysics.erg.erg(drag=0.0004, inertia=0.1001, cord=1.2, r=0.014, cordlength=1.0)

rowingphysics.rigging module

class rowingphysics.rigging.rigging(lin=0.9, mb=14, lscull=2.885, span=1.6, spread=0.88, roworscull='scull', catchangle=-0.93, bladearea=0.0822, bladelength=0.46, Nrowers=1)
bladearea
buitenhand
dcatch
oarangle(x)
overlap
spread

rowingphysics.row_functions module

rowingphysics.row_functions.blade_force(oarangle, rigging, vb, fblade, doplot=0)
rowingphysics.row_functions.d_recovery(dt, v, vc, dvc, mc, mb, alef)
rowingphysics.row_functions.d_stroke(dt, v, vc, dvc, mc, mb, alef, F)
rowingphysics.row_functions.de_footboard(mc, mb, vs1, vs2)
rowingphysics.row_functions.drag_eq(displacement, velo, alfaref=3.5, doprint=0, constantdrag=0)
rowingphysics.row_functions.vboat(mc, mb, vc)
rowingphysics.row_functions.vhandle(v, lin, lout, mc, mb)

rowingphysics.rowingphysics module

rowingphysics.rowingphysics.atkinsoncalc(F, crew, rigging, v0=4.3801, dt=0.03, doplot=1, doprint=0, timewise=0, constantdrag=0)
rowingphysics.rowingphysics.constantratio(ratio, crew, rigging, timestep=0.03, aantal=5, aantal2=5, Fmin=100, Fmax=400, catchacceler=5, windv=0, dowind=1)

Finds the force, power and speed needed to achieve a certain drive/recovery ratio

rowingphysics.rowingphysics.constantrecovery(trecovery, crew, rigging, timestep=0.03, aantal=5, aantal2=5, Fmin=100, Fmax=400, windv=0, dowind=1)

Finds the force, power and average boat speed to row a given stroke rate with a recovery duration of trecovery seconds

rowingphysics.rowingphysics.constantvelo(velo, crew, rigging, timestep=0.03, aantal=5, aantal2=5, Fmin=100, Fmax=400, catchacceler=5, dowind=1, windv=0)

Returns the force and power needed to achieve average boat speed of velo

rowingphysics.rowingphysics.constantvelofast(velo, crew, rigging, timestep=0.03, aantal=5, aantal2=5, Fmin=100, Fmax=400, catchacceler=5, windv=0, dowind=1)

Returns the force and power needed to achieve average boat speed of velo

Cuts a few corners to speed up the calculation

rowingphysics.rowingphysics.constantwatt(watt, crew, rigging, timestep=0.03, aantal=5, aantal2=5, Fmin=50, Fmax=1000, catchacceler=5, windv=0, dowind=1)

Returns force, average speed given an input power in watt

rowingphysics.rowingphysics.constantwatt_erg(watt, crew, erg, timestep=0.03, aantal=5, aantal2=5, ratiomin=0.4, ratiomax=0.8, theconst=1.0)

Returns drive/recovery ratio, force given an input power (watt)

The power is the total power (not only what the erg display shows)

rowingphysics.rowingphysics.constantwatt_ergdisplay(watt, crew, erg, timestep=0.03, aantal=10, aantal2=10, ratiomin=0.3, ratiomax=0.8, theconst=0.0, catchacceler=5)

Returns drive/recovery ratio given an input power (watt)

rowingphysics.rowingphysics.constantwattfast(watt, crew, rigging, timestep=0.03, aantal=5, aantal2=5, Fmin=50, Fmax=1000, catchacceler=5, windv=0, dowind=1)

Returns force, average speed given an input power in watt

rowingphysics.rowingphysics.drag_eight()

Plots the drag force of an eight

rowingphysics.rowingphysics.drag_pair()

Plots the drag force of a pair

rowingphysics.rowingphysics.drag_skif()

Plots the drag of a single as a function of boat speed

rowingphysics.rowingphysics.empirical(datafile, vavg, crew, rigging, tstroke, trecovery, doplot=1)

Reads in empirical acceleration data to be compared with acceleration plot

rowingphysics.rowingphysics.energybalance(F, crew, rigging, v0=4.3801, dt=0.03, doplot=1, doprint=0, timewise=0, index_offset=1, empirical=0, empt0=0, vb0=0, catchacceler=5.0, emptype='acceler', windv=0, dowind=1)

calculates one stroke with average handle force as input slide velocity and stroke/recovery ratio are calculated knows about slip, lift, drag. Plots energy balance.

windv is wind speed in m/s. Positive values are tailwind.

rowingphysics.rowingphysics.energybalance_erg(ratio, crew, erg, w0=4.3801, dt=0.03, doplot=1, doprint=0, theconst=0.1)

calculates one stroke with ratio as input, using force profile in time domain

rowingphysics.rowingphysics.energybalance_erg_old(F, crew, erg, w0=4.3801, dt=0.03, doplot=1, doprint=0, timewise=0, theconst=1.0)
rowingphysics.rowingphysics.energybalance_old(F, crew, rigging, v0=4.3801, dt=0.03, doplot=1, doprint=0, timewise=0)
rowingphysics.rowingphysics.ergtoboatspeed(min, sec, ratio, crew, rigging, erg)

Calculates boat speed, given an erg split for given crew, boat, erg

rowingphysics.rowingphysics.ergtopower(min, sec, ratio, crew, erg)

Returns total power, erg display power and kinetic power given a split in min, sec

rowingphysics.rowingphysics.main()
rowingphysics.rowingphysics.plotforce(fhandle, rigging, vb, oarangle=0.01)

iterates slip using “real” fulcrum point aantal = nr iterations

rowingphysics.rowingphysics.powertoerg(pw, ratio, crew, erg)

Returns erg power, kinetic power and erg split for a given input power

rowingphysics.rowingphysics.read_obj(filename)
rowingphysics.rowingphysics.stroke(F, crew, rigging, v0, dt, aantal, doplot=0, timewise=0, catchacceler=5, dowind=1, windv=0)

Calculates a few (aantal) strokes and returns parameters averaged over those strokes

rowingphysics.rowingphysics.stroke_atkinson(F, crew, rigging, v0, dt, aantal, timewise=0, constantdrag=0)
rowingphysics.rowingphysics.stroke_erg(ratio, crew, erg, w0, dt, aantal, doplot=0, theconst=0.0)

Calculates a number (aantal) erg strokes and returns parameters averaged over the strokes

rowingphysics.rowingphysics.testbladeforce(fhandle, rigging, vb, oarangle=0.01, aantal=10)

iterates slip using “real” fulcrum point aantal = nr iterations

rowingphysics.rowingphysics.time500mtovavg(minutes, secs)

Calculates velocity from pace in minutes, seconds)

rowingphysics.rowingphysics.vavgto500mtime(vavg)

Calculates 500m time (minutes, seconds) from velocity

rowingphysics.rowingphysics.write_obj(obj, filename)

rowingphysics.rowplots module

rowingphysics.rowplots.atkinson(timestep=0.01, factor=0.45, doplot=1, h1=0.75, h2=1.0, timewise=0, x1=0.02, x2=0.39, bladearea=0.071, lscull=3.05, lin=0.86, strokelength=1.31, constantdrag=0)
rowingphysics.rowplots.catchangleseries(anglemin, anglemax, F, crew, rigging, aantal=30, timestep=0.03)

Plots various plots as a function of catch angle

rowingphysics.rowplots.catchseriesRIM(anglemin, anglemax, F, crew, rigging, aantal=30, timestep=0.03, doplot=1, timewise=0)

Various plots for different catch angles and style

rowingphysics.rowplots.ergtoboat(splits, r, rg, tempos, erg)
rowingphysics.rowplots.forceseries(Forcemin, Forcemax, tempo, crew, rigging, aantal=10, timestep=0.03)
rowingphysics.rowplots.james_hm2min(timestep=0.01, factor=0.86, doplot=1, h1=1.0, h2=0.8, timewise=0, x1=0.03, x2=0.35, bladearea=0.1212)
rowingphysics.rowplots.longlegs(rg, doplot=1, v0=3.962)
rowingphysics.rowplots.plot_blade()

Plots blade lift and drag coefficients vs angle of attack

rowingphysics.rowplots.plot_boatweight_power_constantv(velo, r, rg, aantal=10, timestep=0.01)
rowingphysics.rowplots.plot_catchangle_v_constantwatt(watt, r, rg, aantal=10, timestep=0.03)
rowingphysics.rowplots.plot_inboard_power_constantv(velo, r, rg, aantal=10, timestep=0.03)

Plots power at given boat speed for various values of inboard

rowingphysics.rowplots.plot_ratio_v_constantwatt(watt, r, rg, aantal=10, timestep=0.03)
rowingphysics.rowplots.plot_tempo_power_constantv(velo, r, rg, aantal=10, timestep=0.03, Fmin=50, Fmax=650)

Plots power needed to achieve certain boat speed at various stroke rates

rowingphysics.rowplots.plot_tempo_v_constantwatt(watt, r, rg, aantal=10, timestep=0.03, Fmin=100, Fmax=760, tempomin=20, tempomax=40)

Plots average boat speed at constant power with varying spm

rowingphysics.rowplots.plotforcecurve(F, cr, aantal=50)

Plots different force curves

rowingphysics.rowplots.plotforcecurveRIM(F, cr, aantal=50)

More force curve plots

rowingphysics.rowplots.plotrecstyle(crew, trecovery, aantal=50, empirical=0)

Plots position of handle and CM during recovery

rowingphysics.rowplots.plotrowerforcecurve(F, cr, aantal=50)

Plots the force curve

rowingphysics.rowplots.plotwindeffect(r, rg, aantal=10)
rowingphysics.rowplots.powerseries(powers, r, rg)

Prints boat splits at power values in powers

Example: powerseries([200,250,300],r,rg)

rowingphysics.rowplots.recoverystyleseries(tempomin, tempomax, F, crew, rigging, aantal=30, timestep=0.03, doplot=1, timewise=0)

Various plots with varying recovery style

rowingphysics.rowplots.recoverystyletriangle(tempomin, tempomax, F, crew, rigging, aantal=30, timestep=0.03, doplot=1, timewise=0)
rowingphysics.rowplots.shortlegs(rg, doplot=1, v0=3.997)
rowingphysics.rowplots.styleseries(tempomin, tempomax, F, crew, rigging, aantal=30, timestep=0.03, doplot=1, timewise=0)

Power velocity curve for various rowing styles

rowingphysics.rowplots.styleseriesRIM(tempomin, tempomax, F, crew, rigging, aantal=30, timestep=0.03, doplot=1, timewise=0)

Various plots for different stroke rates and rowing styles

rowingphysics.rowplots.styleseriesforce(Fmin, Fmax, crew, rigging, aantal=30, timestep=0.03, doplot=1, timewise=0)

Plots various plots for varying forces

rowingphysics.rowplots.tempopower(r, rg, tp, pw)
rowingphysics.rowplots.tempopowererg(r, rg, erg, tp, pwd, theconst=0.0)
rowingphysics.rowplots.temposeries(tempomin, tempomax, F, crew, rigging, aantal=30, timestep=0.03)

Various plots as a function of spm, fixed force

rowingphysics.rowplots.temposeriesvaughan(tempomin, tempomax, F, crew, rigging, aantal=30, timestep=0.03)

plot maximum, minimum and average boat speed in a range of spm

rowingphysics.rowplots.timeinterpol(v, r, rg)

rowingphysics.srnumerical module

rowingphysics.srnumerical.sr_interpol1(x, y, ytarget, doplot=0, factor=10)
rowingphysics.srnumerical.sr_interpol2(x, y, ytarget, doplot=0, factor=10)

Module contents

rowingphysics.joke()