These libraries can be used with solver which deals with rigid-body motion, such as overInterDyMFoam, waveDyMFoam if you compile the waves2Foam. The main purpose of this serial is to realize the free-running maneuvering motions of ship in OpenFOAM, including self-propulsion, turning, zigzag and coursekeeping.
git clone https://github.com/balabibo/maneuveringLib.git
cd maneuveringLib
./Allwmake- Modified the storage structure of rigidBodyState dictionary. Now you can change the number of Degree of freedom (DoF) when you modify the dynamicMeshDict in
/constantdirectory. - add two solidBody motions
driven3DofMotiondriven2DofMotionin/src/meshTools/solidBodyMotionFunctions. It was modified fromdrivenLinearMotion, and it can realize the following rotation of background mesh region, which is useful for maneuvering motions like turning or zigzag. - add two momentum source methods
oumSourceHOSourcein/src/fvOptions/sources/derived. They are based on blade element momentum theory/open water curve seperately, and you can find details from the reference, it can be used to replace the real propeller as a propulsion device. - add 4 different maneuvering motions, self-propulsion, turning, zigzag and coursekeeping, for ship. First, it utilize the PID controller to adjust the revolution speed of discretized propeller or momentum source in "sailing" mode, and the PID contorller is also applied to control the rudder motion in "coursekeeping" mode. The rudder controller is used to realize "turning" and "zigzag" maneuvering motions.
This serial will be updated continuously in the future. Those modules may have some bugs due to the neglect of author, and if you have any question or suggestion, please feel free to use the "Issues" button.

