Efficiently optimising a kayak hull under constant fluid flows for a customisable compound metric assessing hydrodynamicity, stability, and buoyancy using Gaussian Processes.
- Hull Parameter Constraints
- Forward Speed
- Weighting on sideways stability (i.e. how much do we care about stability when fluid flow is perpendicular to kayak direction)
- Fluid Flow Speed
- Weight of the Kayaker Note: For simplicity we are taking fluid flow speed and kayaker weight as constant, reducing the input dimensions used during acquisition and optimisation of the Gaussian Process.
Optimised hull parameters maximising the quality of the hull by a compound metric taking into account:
- Drag opposite the forward motion of the hull
- Tipping Point
- Total Stability
- Diminishing Stability Point
- Initial Stability (Stiffness)
- Reserve Buoyancy
TODO
TODO
4 simulation models of increasing compute power and fidelity.
All work from a mesh approximation of the hull, with reserve buoyancy calculated directly by the analytic method.
The hybrid and dynamic approaches are theoretically both as accurate / high fidelity as each other, but differ greatly in terms of numerical stability and cost. If doing a multi-fidelity model, the multi-fidelity acquisition function can be balanced based on expected cost and numerical stability.
Ignores fluid flow and calculates:
- Hull mass
- Hull moments of inertia
- Hull Draught
- Reserve Buoyancy
- Righting modment for a given heel angle based on the hull geometry.
Fidelity is low due to non-account of fluid flow. But, still is a good baseline/sanity check, being the most accurate, stable, and efficient for low fluid flows.
Cost is proportional to the accuracy of the mesh.
Numirical Stability is perfect.
Using interFoam with a fixed hull.
- Calculates the analytic results for some heel angle
- Fixes the hull in a fluid at its expected draught in calm water
- Simulates drag and moment forces upon the hull until a rough steady-state is reached
Fidelity is higher as it accounts for fluid flow. But, the hull is fixed so the fluid flow may cause excess buoyancy which is unable to take effect, rresulting in an incorrect steady-state draught.
Cost is proportional to the product of mesh accuracy and the discretisation of the fluid simulation.
Numerical Stability is fine except with high fluid flows, where turbuence may significantly vary and not settle into a steady state.
Iterating the static method.
- Calculate the excess buoyancy in the static method
- Adjust the draught accordingly
- Iterate entire static simulations until negligible buoyancy
- Use drag / moment force results from the final iteration
Fidelity now accounts for excess buoyancy and should be theoretically correct under a steady-state assumption.
Cost is proportional to the product of the iterations, mesh accuracy, and the discretisation of the fluid simulation.
Numerical Stability compounds the possibility of non-convergence of draught (i.e. oscillations) with the inherent Static method instability. Setting hyperparameters carefully alleviates this.
A single dynamic fluid simulation with interDyMFoam accounting for 6DoF transformations of the mesh in the fluid. i.e. like my6DoFFoam.
- Calculate the analytic results for some heel angle
- Place the hull in an initial position based on the analytic results
- Applying a (variable) torque to try stabilise the hull at the desired heel angle. Initial value will be the analytic righting moment.
- Iterate through one simulation until righting moment stabilises
- Calculate hydrodynamicity in final iteration and use stabilised righting moment
Fidelity should be similar to that of the Hybrid method.
Cost is proportional to only the mesh accuracy and fluid discretisation plus the extra cost in running interDyMFoam over interFoam. (This is likely lower than the Hybrid method for high fluid flows)
Numerical Stability is inherently more unstable compared to the static method, and also risks oscillations or total collapse in the righting moment. In particular, stability will be much worse for greater heel angles. Requires even more careful setting of hyperparameters.
For constant hull parameters, learn how the value of the compound output metric (hydrodynamicity, stability, buoyancy) varys over heel angles and fluid flows.
One way to create an acquisition function on this is to run two GPs modelling the hydrodynamicity and stability curves, but determine points to sample on both the curves by an acquisition function on the compound metric directly. Creating an intuitive kernel for this seems difficult, but we could just throw RBF or Matern at it.
Splitting the GP in two (on the hydrodynamicity curve and stability curve) we can get more intuitive results and design more effect acquisition functions and kernels. But there is additional complexity on deciding how to effectively balance the multiple models.
Differing acquisition functions make sense for each part of the compound metric, we wish to optimise all of the following over varying heel angles, each of which will have a differing acquisition function:
- Integral of the stability curve up to the tipping point (force required to capsize from flat)
- Maximum of the stability curve (point of diminishing stability)
- Positive root of the stability curve (tipping point)
- Gradient of the stability curve at zero (stiffness)
- Integral of the hydrodynamic foward drag weighted by small angles heel angle between up to the point of diminishing stability (total drag over 'realistic' heel angles) Then, we wish to integrate each of the above over varying fluid directions, with respect to the weightings given by the user.
Note that reserve buoyancy is modelled as just a constant, we don't need to sample the functions.
These compound acquisition functions are simply balanced in exactly the same ratios that output metric is composed of. i.e. if we care 50% about tipping point and 50% about hydrodynamicity, we would randomly sample 50% of the time from the tipping point acquisition functions and 50% of the time from the hydrodynamicity acquisition function.
TODO: Research if this simple method has mathematical grounding. It seems unlikely as we don't take into account how sure each acquisition function is that it has already optimised its respective output. For example, suppose we have found the tipping point by exploring extreme heel angles, but have not yet found the hydrodynamicity, we would still keep on sampling extreme heel angles when this is no longer needed.
We can either sample from one simulation fidelity or take into account all 4 and estimate cost and numerical stability of each fidelity for improved efficiency. The simulation cost can be estimated and iteratively refined by taking previous results and intuition about the inherent cost and stability of the simulations (noted down above).
The fidelities are NOT linearly related in general. But, for a given fluid flow, a linear relationship should hold proved the hull shape is not super weird. So the join-Gaussian property will be preserved for specified fluid flows. Equally, small variations in fluid flow, especially for calm fluids should be roughly linearly related.
Optimise the hull parameters under the input constraints to maximise the output metric for the given fluid flow (and kayaker weight). The fluid flow to consider are just be determined by the user (i.e. a 'calm' scenario vs a 'white water rafting' scenario).
TODO
TODO Probably not worth doing...