浮体粒子集模块
核实浮体的加速度求解、速度、位移更新公式
浮体刚体粒子集数据结构
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | public | :: | istart |
浮体粒子集的索引 |
|||
| integer, | public | :: | iend |
浮体粒子集的索引 |
|||
| real(kind=rk), | public | :: | mass(2) |
浮体质量、转动惯量Izz |
|||
| real(kind=rk), | public | :: | loc(2) |
浮体质心 |
|||
| real(kind=rk), | public | :: | vel(2) |
浮体速度 |
|||
| real(kind=rk), | public | :: | acc(2) |
浮体加速度 |
|||
| real(kind=rk), | public | :: | ang_vel |
浮体角速度 |
|||
| real(kind=rk), | public | :: | ang_acc |
浮体角加速度 |
| procedure , public , :: update_particle_step Subroutine | |
| procedure , public , :: update_particle_init Subroutine | |
| procedure , public , :: get_acc Subroutine | |
| procedure , public , :: init Subroutine |
简单叉乘, 2 维叉乘
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=rk), | intent(in), | dimension(2) | :: | a | ||
| real(kind=rk), | intent(in), | dimension(2) | :: | b |
简单叉乘 2, @tocheck \( \omega \cdot r \)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=rk), | intent(in) | :: | a | |||
| real(kind=rk), | intent(in), | dimension(2) | :: | b |
初始化浮体的质量、质心、转动惯量、速度、角速度
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(float_object_type), | intent(inout) | :: | self |
浮体粒子集 |
||
| type(particle_type), | intent(in) | :: | particle |
区域 |
||
| integer, | intent(in) | :: | istart |
浮体粒子集的索引 |
||
| integer, | intent(in) | :: | iend |
浮体粒子集的索引 |
获取浮体受力,更新浮体的加速度
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(float_object_type), | intent(inout) | :: | self |
浮体粒子集 |
||
| type(particle_type), | intent(in) | :: | particles |
区域 |
初始化leapfrog算法,基于加速度,推进速度半步长
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(float_object_type), | intent(inout) | :: | self |
浮体粒子集 |
||
| type(particle_type), | intent(inout) | :: | particles |
区域 |
||
| real(kind=rk), | intent(in) | :: | dt |
时间步长 |
更新粒子, 速度比位移、加速度快半步长
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(float_object_type), | intent(inout) | :: | self |
浮体粒子集 |
||
| type(particle_type), | intent(inout) | :: | particles |
区域 |
||
| real(kind=rk), | intent(in) | :: | dt |
时间步长 |