@Override\r
public Amount<Area> surfaceArea(Amount<Length> regression) {\r
Amount<Length> zero = Amount.valueOf(0, SI.MILLIMETER);\r
+ if ( regression.isLessThan(zero) )\r
+ return Amount.valueOf(0, SI.SQUARE_METRE);\r
\r
//Calculated regressed length\r
Amount<Length> cLength = regressedLength(regression);\r
\r
Amount<Area> ends = (cOD.divide(2).pow(2).times(Math.PI)).minus(cID.divide(2).pow(2).times(Math.PI)).times(2).to(SI.SQUARE_METRE);\r
\r
- Amount<Area> total = inner.times(innerSurfaceInhibited?0:1).plus(outer.times(outerSurfaceInhibited?0:1)).plus(ends.times(numberOfBurningEnds()));\r
+ Amount<Area> total = inner.times(innerSurfaceInhibited?0:1).plus(outer.times(outerSurfaceInhibited?0:1)).plus(ends.times(numberOfBurningEnds(regression)));\r
\r
return total;\r
}\r
public Amount<Volume> volume(Amount<Length> regression) {\r
Amount<Length> zero = Amount.valueOf(0, SI.MILLIMETER);\r
\r
+ if ( regression.isLessThan(zero) )\r
+ regression = zero;\r
+ \r
//Calculated regressed length\r
Amount<Length> cLength = regressedLength(regression);\r
\r
\r
Amount<Length> axial = null;\r
\r
- if ( numberOfBurningEnds() != 0 )\r
- axial = getLength().divide(numberOfBurningEnds());\r
+ if ( numberOfBurningEnds(Amount.valueOf(0, SI.MILLIMETER)) != 0 )\r
+ axial = getLength().divide(numberOfBurningEnds(Amount.valueOf(0, SI.MILLIMETER)));\r
\r
if ( axial == null )\r
return radial;\r
\r
@Override\r
public java.awt.geom.Area getCrossSection(Amount<Length> regression){\r
+ Amount<Length> zero = Amount.valueOf(0, SI.MILLIMETER);\r
+ if ( regression.isLessThan(zero) )\r
+ regression = zero;\r
double rmm = regression.doubleValue(SI.MILLIMETER);\r
double oDmm = oD.doubleValue(SI.MILLIMETER);\r
double iDmm = iD.doubleValue(SI.MILLIMETER);\r
}\r
\r
public java.awt.geom.Area getSideView(Amount<Length> regression){\r
+ Amount<Length> zero = Amount.valueOf(0, SI.MILLIMETER);\r
+ if ( regression.isLessThan(zero) )\r
+ regression = zero;\r
double rmm = regression.doubleValue(SI.MILLIMETER);\r
double oDmm = oD.doubleValue(SI.MILLIMETER);\r
double iDmm = iD.doubleValue(SI.MILLIMETER);\r