Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Orekit Orekit
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 92
    • Issues 92
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 15
    • Merge requests 15
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Orekit
  • OrekitOrekit
  • Merge requests
  • !298

Fix issue 924: Numerical noise in ThrustPropulsionModel and tests

  • Review changes

  • Download
  • Email patches
  • Plain diff
Closed Maxime Journot requested to merge issue-924 into develop Sep 14, 2022
  • Overview 4
  • Commits 1
  • Pipelines 1
  • Changes 1

Fixes #924 (closed).

@evanward1 , I put you as reviewer as you opened the issue.
I simply removed the incriminated comments.
There is indeed a numerical difference when doing:

  1. acc = new Vector3D(thrust / s.getMass(), maneuverAttitude.getRotation().applyInverseTo(direction)); (current code)
  2. acc = new Vector3D(1. / s.getMass(), maneuverAttitude.getRotation().applyInverseTo(thrustVector)); (better code?)
    (or the Field equivalent of these)

It's a small difference due to the usage of getNorm() for the module (about 1e-17/18 on the acceleration norm in the tests I have checked).

The thing is, before we changed the maneuvers package it was like (1) and we left it like this.
Mostly because some tests in PolynomialAccelerationTest and HarmonicAccelerationModelTest compare the outputs of propagation to a propagation with an equivalent maneuver.
Since the definition of the forces is given like (1) in PolynomialAcceleration and HarmonicAccelerationModel tests, the differences are all zeros.
If we use (2) in ThrustPropulsionModel, numerical differences appear because of integration of the acceleration during propagation.
(See for example PolynomialAccelerationTest#testEquivalentTangentialManeuver)

Maybe the tolerances are too tight but I don't feel like changing all the tolerances of the tests for this small change.
Tell me what you think.

Assignee
Assign to
Reviewer
Request review from
Time tracking
Source branch: issue-924