Property Estimator
Name | Storage height from storage volume, diameter and length |
---|
Property | Storage Height |
---|
Type | Function |
---|
Function | // Return zero if stored volume is zero
if (Scientific::equals([VST:m3], 0)) return 0.0;
// Return unit height if stored volume equals unit volume
if (Scientific::equals([VST:m3], [V:m3])) return [D:m];
// Return if stored volume is invalid
if ([VST:m3] > [V:m3]) return NULL;
// Solve by Newton's rule
$x = [D:m] / 2;
while (TRUE) {
$y = [L:m] * ([D:m] * [D:m] / 4 * acos(1 - 2 * $x / [D:m]) - ([D:m] / 2 - $x) * sqrt(([D:m] - $x) * $x)) - [VST:m3];
if (Scientific::equals($y, 0)) return $x;
$x = $x - $y / (2 * [L:m] * sqrt(([D:m] - $x) * $x));
}
|
---|
Unit | m |
---|
Validity Conditions | Shape: Cylindrical Horizontal |
---|
Precedence | Auto |
---|
Disabled | No |
---|
Notes | Calculates fill height by using Newton's method of successive approximations (Newton's rule). Volume is only used to check the boundary condition at the beginning. |
---|
Access | Public |
---|
Created: Serkan GIRGIN, 2017/04/19 14:56:12