alec-glisman / Swimming-in-Potential-Flow

Study dynamics of inertial active matter in a potential fluid (irrotational, incompressible).
https://doi.org/10.1017/jfm.2022.946
GNU General Public License v3.0
1 stars 0 forks source link

rungeKutta4: Verify that M_eff is full-rank #5

Closed alec-glisman closed 2 years ago

alec-glisman commented 2 years ago

With the original length 3N tensor quantities, the calculation of M_eff = \Zeta M_total \Zeta resulted in a rank-deficient matrix.

I think this is due to the collinear nature of the bodies. As we approximate the hydrodynamic disturbances as point dipoles, there is no angular kinetic energy associated with rotating about the collinear axis.

I will update the velocity, acceleration, and mass matrix tensor quantities to go from length 3N to 6N and add the intrinsic angular kinetic energy of spheres rotating to fix this issue.

alec-glisman commented 2 years ago

After overhauling the simulation source code according to the specifications in the project Update particle tensors (3N --> 6N, the same issue is still occurring.

Thankfully, the rank deficiency was reduced from 2 to 1. I believe the remaining issue stems from the conversion of angular to quaternion components. Each body has 3 angular components, but 4 quaternion components (with 1 constraint of a unitary norm).

I need to review the Udwadia and Shutte paper on how to add a fictitious entry to the matrix that does not affect energy/force calculations, but aids in tensor inversion. Also, check out my previous notes from discussions with Zhiwei.

I also fixed some bugs in tensor contractions, so the old commits should not be reverted without a significant amount of caution.

alec-glisman commented 2 years ago

After extension from 6N --> 7N tensor quantities, the matrix is full rank and integration can occur without NaN