}\r
\r
public Amount<Length> webThickness() {\r
- if ( innerSurfaceInhibited && outerSurfaceInhibited ){\r
- return oD; //TODO gotta move this to the end\r
- }\r
+ \r
+ Amount<Length> axial = null;\r
+ if ( numberOfBurningEnds(Amount.valueOf(0, SI.MILLIMETER)) != 0 )\r
+ axial = getLength().divide(numberOfBurningEnds(Amount.valueOf(0, SI.MILLIMETER)));\r
\r
Amount<Length> radial = null;\r
- if ( !innerSurfaceInhibited && !outerSurfaceInhibited )\r
+ if ( !innerSurfaceInhibited && !outerSurfaceInhibited ){\r
radial = oD.minus(iD).divide(4); //Outer and inner exposed\r
- else if ( !innerSurfaceInhibited || !outerSurfaceInhibited )\r
+ } else if ( !innerSurfaceInhibited || !outerSurfaceInhibited ){\r
radial = oD.minus(iD).divide(2); //Outer or inner exposed\r
+ } else if ( innerSurfaceInhibited && outerSurfaceInhibited ){\r
+ return axial;\r
+ } \r
\r
- Amount<Length> axial = null;\r
- \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
assertApproximate(g.webThickness(), Amount.valueOf("50mm"));\r
}\r
+ \r
+ @Test\r
+ public void testWebThicknessSkinny2Ends() throws PropertyVetoException {\r
+ CoredCylindricalGrain g = new CoredCylindricalGrain();\r
+ \r
+ //thin and long\r
+ g.setLength(Amount.valueOf(100, SI.MILLIMETER));\r
+ g.setOD(Amount.valueOf(30, SI.MILLIMETER));\r
+ g.setID(Amount.valueOf(10, SI.MILLIMETER));\r
+ g.setInnerSurfaceInhibited(true);\r
+ g.setOuterSurfaceInhibited(true);\r
+ \r
+ assertApproximate(g.webThickness(), Amount.valueOf("50mm"));\r
\r
+ }\r
+ \r
+ @Test\r
+ public void testWebThicknessSkinny1End() throws PropertyVetoException {\r
+ CoredCylindricalGrain g = new CoredCylindricalGrain();\r
+ \r
+ //thin and long\r
+ g.setLength(Amount.valueOf(100, SI.MILLIMETER));\r
+ g.setOD(Amount.valueOf(30, SI.MILLIMETER));\r
+ g.setID(Amount.valueOf(10, SI.MILLIMETER));\r
+ g.setInnerSurfaceInhibited(true);\r
+ g.setOuterSurfaceInhibited(true);\r
+ g.setForeEndInhibited(true);\r
+ \r
+ assertApproximate(g.webThickness(), Amount.valueOf("100mm"));\r
+\r
+ }\r
+\r
+ @Test\r
+ public void testWebThicknessFat2Ends() throws PropertyVetoException {\r
+ CoredCylindricalGrain g = new CoredCylindricalGrain();\r
+ \r
+ g.setLength(Amount.valueOf(100, SI.MILLIMETER));\r
+ g.setOD(Amount.valueOf(60, SI.MILLIMETER));\r
+ g.setID(Amount.valueOf(20, SI.MILLIMETER));\r
+ g.setInnerSurfaceInhibited(true);\r
+ g.setOuterSurfaceInhibited(true);\r
+ \r
+ assertApproximate(g.webThickness(), Amount.valueOf("50mm"));\r
+\r
+ }\r
+ \r
+ @Test\r
+ public void testWebThicknessFat1End() throws PropertyVetoException {\r
+ CoredCylindricalGrain g = new CoredCylindricalGrain();\r
+ \r
+ g.setLength(Amount.valueOf(20, SI.MILLIMETER));\r
+ g.setOD(Amount.valueOf(60, SI.MILLIMETER));\r
+ g.setID(Amount.valueOf(20, SI.MILLIMETER));\r
+ g.setInnerSurfaceInhibited(true);\r
+ g.setOuterSurfaceInhibited(true);\r
+ g.setForeEndInhibited(true);\r
+ \r
+ assertApproximate(g.webThickness(), Amount.valueOf("20mm"));\r
+\r
+ }\r
+ \r
@Test\r
public void testVolume() throws PropertyVetoException {\r
CoredCylindricalGrain g = new CoredCylindricalGrain();\r