Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: mockingbirdnest/Principia
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 7bb41a421abe
Choose a base ref
...
head repository: mockingbirdnest/Principia
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 3838ec75ea62
Choose a head ref
  • 2 commits
  • 3 files changed
  • 1 contributor

Commits on Oct 30, 2021

  1. Copy the full SHA
    92c98bf View commit details
  2. Merge pull request #3183 from pleroy/OrbitAnalyser

    Convert OrbitAnalyser and its test to DiscreteTraject0ry
    pleroy authored Oct 30, 2021
    Copy the full SHA
    3838ec7 View commit details
Showing with 12 additions and 11 deletions.
  1. +2 −2 ksp_plugin/integrators.cpp
  2. +3 −3 ksp_plugin/integrators.hpp
  3. +7 −6 ksp_plugin/orbit_analyser.cpp
4 changes: 2 additions & 2 deletions ksp_plugin/integrators.cpp
Original file line number Diff line number Diff line change
@@ -26,9 +26,9 @@ using integrators::methods::Quinlan1999Order8A;
using quantities::si::Minute;
using quantities::si::Second;

DiscreteTrajectory<Barycentric>::DownsamplingParameters
DiscreteTrajectorySegment<Barycentric>::DownsamplingParameters
DefaultDownsamplingParameters() {
return DiscreteTrajectory<Barycentric>::DownsamplingParameters{
return DiscreteTrajectorySegment<Barycentric>::DownsamplingParameters{
.max_dense_intervals = 10'000,
.tolerance = 10 * Metre,
};
6 changes: 3 additions & 3 deletions ksp_plugin/integrators.hpp
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#pragma once

#include "ksp_plugin/frames.hpp"
#include "physics/discrete_trajectory.hpp"
#include "physics/discrete_trajectory_segment.hpp"
#include "physics/ephemeris.hpp"
#include "quantities/quantities.hpp"
#include "quantities/si.hpp"
@@ -10,14 +10,14 @@ namespace principia {
namespace ksp_plugin {
namespace internal_integrators {

using physics::DiscreteTrajectory;
using physics::DiscreteTrajectorySegment;
using physics::Ephemeris;
using quantities::Length;
using quantities::si::Metre;
using quantities::si::Milli;

// Parameters for downsampling after fixed-step integration.
DiscreteTrajectory<Barycentric>::DownsamplingParameters
DiscreteTrajectorySegment<Barycentric>::DownsamplingParameters
DefaultDownsamplingParameters();

// Factories for parameters used to control integration.
13 changes: 7 additions & 6 deletions ksp_plugin/orbit_analyser.cpp
Original file line number Diff line number Diff line change
@@ -7,7 +7,7 @@

#include "ksp_plugin/integrators.hpp"
#include "physics/body_centred_non_rotating_dynamic_frame.hpp"
#include "physics/discrete_trajectory.hpp"
#include "physics/discrete_traject0ry.hpp"
#include "physics/kepler_orbit.hpp"

namespace principia {
@@ -19,7 +19,7 @@ using base::MakeStoppableThread;
using geometry::Frame;
using geometry::NonRotating;
using physics::BodyCentredNonRotatingDynamicFrame;
using physics::DiscreteTrajectory;
using physics::DiscreteTraject0ry;
using physics::KeplerOrbit;
using physics::MasslessBody;
using quantities::IsFinite;
@@ -83,8 +83,9 @@ double OrbitAnalyser::progress_of_next_analysis() const {

absl::Status OrbitAnalyser::AnalyseOrbit(Parameters const parameters) {
Analysis analysis{parameters.first_time};
DiscreteTrajectory<Barycentric> trajectory;
trajectory.SetDownsampling(DefaultDownsamplingParameters());
DiscreteTraject0ry<Barycentric> trajectory;
trajectory.segments().front().SetDownsampling(
DefaultDownsamplingParameters());
trajectory.Append(parameters.first_time, parameters.first_degrees_of_freedom);

RotatingBody<Barycentric> const* primary = nullptr;
@@ -107,7 +108,7 @@ absl::Status OrbitAnalyser::AnalyseOrbit(Parameters const parameters) {
}
}
if (primary != nullptr) {
std::vector<not_null<DiscreteTrajectory<Barycentric>*>> trajectories = {
std::vector<not_null<DiscreteTraject0ry<Barycentric>*>> trajectories = {
&trajectory};
auto instance = ephemeris_->StoppableNewInstance(
trajectories,
@@ -139,7 +140,7 @@ absl::Status OrbitAnalyser::AnalyseOrbit(Parameters const parameters) {
// are being computed.

using PrimaryCentred = Frame<enum class PrimaryCentredTag, NonRotating>;
DiscreteTrajectory<PrimaryCentred> primary_centred_trajectory;
DiscreteTraject0ry<PrimaryCentred> primary_centred_trajectory;
BodyCentredNonRotatingDynamicFrame<Barycentric, PrimaryCentred>
body_centred(ephemeris_, primary);
for (auto const& [time, degrees_of_freedom] : trajectory) {