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 0x0913CF58>, strokeprofile=<rowingphysics.crew.trapezium instance at 0x0913CF80>, technique=<rowingphysics.crew.technique_meas instance at 0x0913CFA8>, 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.flatrecovery¶ -
dxhandle(vavg, trecovery, time)¶
-
vhandle(vavg, trecovery, time)¶
-
-
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.technique_meas¶ -
vcm(vhandle, strokelength, xhandle)¶
-
vcma(vhandle, strokelength, xhandle)¶
-
vha(vcm, strokelength, xhandle)¶
-
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¶
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.6, 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.constantwatt_ergtempo(watt, crew, erg, timestep=0.03, aantal=5, aantal2=5, tempomin=15, tempomax=45, theconst=1.0, ratio=0.5)¶ 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.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=1.0)¶ 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.ergpowertopower(ergpower, ratio, crew, erg, aantal=5, aantal2=5)¶
-
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.find_ergpower(watt, crew, erg, timestep=0.03, aantal=10, aantal2=10, powermin=100, powermax=400, ratio=0.5)¶
-
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)¶