Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed system #2435

Merged
merged 14 commits into from
Jan 19, 2020
Merged

Closed system #2435

merged 14 commits into from
Jan 19, 2020

Conversation

eggrobin
Copy link
Member

@eggrobin eggrobin commented Jan 5, 2020

No description provided.

// be to multiply the inertia tensor with a pseudovector, we must instead take
// the anticommutator with the bivector: L = Iω becomes L = {I, ω}, and the
// moment of inertia αIα along an axis α becomes ⟨α, {I, α}⟩.
template<typename InertialFrame, typename SystemFrame>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Add comments to explain the purpose of the frames.
  2. Should there be an assert that InertialFrame is inertial?

// Effectively an extension of
// |BarycentreCalculator<DegreesOfFreedom<InertialFrame>, Mass>| that also
// handles rotational motion.
// Note: As a consequence of our separate handling of vectors and bivectors, the
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The fact that you have to explain the gory details of the representation is a clear indication that the form is not the right level of abstraction. This is exactly where InertiaTensor (or a simplified version thereof) would come handy. With the current API there is no abstraction to help diagonalize the tensor to obtain the principal moments and axes.

Copy link
Member Author

@eggrobin eggrobin Jan 6, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As discussed, this abstraction is SymmetricBilinearForm: a symmetric bilinear form over V is only a symmetric bilinear form over V∧V via the anticommutator, and it is obvious in higher dimensions that multiplying a bilinear form over V with an element of V∧V is nonsensical.

I has eigenvalues over V that are not the same as those of {I, _} over V∧V (but the eigenbases are consistent under ∧).

Copy link
Member

@pleroy pleroy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally LG, but left one question.

@pleroy pleroy added the LGTM label Jan 19, 2020
@eggrobin eggrobin merged commit a834b4b into mockingbirdnest:master Jan 19, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants