[#2209] Average segment centroids
This commit is contained in:
parent
7aaaf4bce9
commit
ab878a82f0
@ -544,7 +544,7 @@ public abstract class FinSet extends ExternalComponent implements AxialPositiona
|
|||||||
return centerOfMass;
|
return centerOfMass;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Coordinate calculateFilletCrossSection(final double filletRadius, final double bodyRadius){
|
private static Coordinate calculateFilletCrossSection(final double filletRadius, final double bodyRadius) {
|
||||||
final double hypotenuse = filletRadius + bodyRadius;
|
final double hypotenuse = filletRadius + bodyRadius;
|
||||||
final double innerArcAngle = Math.asin(filletRadius / hypotenuse);
|
final double innerArcAngle = Math.asin(filletRadius / hypotenuse);
|
||||||
final double outerArcAngle = Math.acos(filletRadius / hypotenuse);
|
final double outerArcAngle = Math.acos(filletRadius / hypotenuse);
|
||||||
@ -554,17 +554,17 @@ public abstract class FinSet extends ExternalComponent implements AxialPositiona
|
|||||||
- outerArcAngle * filletRadius * filletRadius / 2
|
- outerArcAngle * filletRadius * filletRadius / 2
|
||||||
- innerArcAngle * bodyRadius * bodyRadius / 2);
|
- innerArcAngle * bodyRadius * bodyRadius / 2);
|
||||||
|
|
||||||
if(Double.isNaN(crossSectionArea)) {
|
if (Double.isNaN(crossSectionArea)) {
|
||||||
crossSectionArea = 0.;
|
crossSectionArea = 0.;
|
||||||
}else {
|
} else {
|
||||||
// each fin has a fillet on each side
|
// each fin has a fillet on each side
|
||||||
crossSectionArea *= 2;
|
crossSectionArea *= 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
// heuristic, relTo the body center
|
// heuristic, relTo the body center
|
||||||
double yCentroid = bodyRadius + filletRadius /5;
|
double yCentroid = bodyRadius + filletRadius / 5;
|
||||||
|
|
||||||
return new Coordinate(0,yCentroid,0,crossSectionArea);
|
return new Coordinate(0, yCentroid, 0, crossSectionArea);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -617,7 +617,7 @@ public abstract class FinSet extends ExternalComponent implements AxialPositiona
|
|||||||
|
|
||||||
final Coordinate segmentCentroid = segmentCrossSection.setWeight(segmentVolume);
|
final Coordinate segmentCentroid = segmentCrossSection.setWeight(segmentVolume);
|
||||||
|
|
||||||
filletVolumeCentroid = filletVolumeCentroid.add(segmentCentroid);
|
filletVolumeCentroid = filletVolumeCentroid.average(segmentCentroid);
|
||||||
|
|
||||||
prev = cur;
|
prev = cur;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user