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

Feature/gravity field variation output #674

Open
wants to merge 3,928 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
3928 commits
Select commit Hold shift + click to select a range
6e1a734
Slightly reworked auto-tabulated-ephemeris creation for tudatpy compa…
DominicDirkx Jan 14, 2022
1e84562
Merging
DominicDirkx Jan 17, 2022
8dee660
Merging
DominicDirkx Jan 17, 2022
afc2112
Corrected missile datcom unit test
DominicDirkx Jan 17, 2022
f3215c2
Corrected missile datcom unit test
DominicDirkx Jan 17, 2022
572e537
Merge pull request #43 from tudat-team/feature/automatic_tabulated_ep…
DominicDirkx Jan 17, 2022
b2cb59d
Merge pull request #43 from tudat-team/feature/automatic_tabulated_ep…
DominicDirkx Jan 17, 2022
c6bd28f
Added additional two-way Doppler interface
DominicDirkx Jan 18, 2022
ca17a04
Added additional two-way Doppler interface
DominicDirkx Jan 18, 2022
10ae85b
extended createTabulatedObservationSimulationSettingsList options
jo11he Jan 19, 2022
9236633
extended createTabulatedObservationSimulationSettingsList options
jo11he Jan 19, 2022
dbbd353
Merge pull request #45 from tudat-team/develop
DominicDirkx Jan 20, 2022
170b5ef
Merge pull request #45 from tudat-team/develop
DominicDirkx Jan 20, 2022
49be41a
Adding (untested) custom dependent variable
DominicDirkx Jan 20, 2022
379e0ba
Adding (untested) custom dependent variable
DominicDirkx Jan 20, 2022
6b3540c
Fix spelling error
DominicDirkx Jan 20, 2022
ca72943
Fix spelling error
DominicDirkx Jan 20, 2022
ae4ed06
Added additional error output
DominicDirkx Jan 20, 2022
bf63122
Added additional error output
DominicDirkx Jan 20, 2022
2ffb1fc
Added error checking when retrieving body state and/or rotation
DominicDirkx Jan 21, 2022
6ec11f3
Added error checking when retrieving body state and/or rotation
DominicDirkx Jan 21, 2022
4fd889b
Merge
DominicDirkx Jan 21, 2022
7b2dcf1
Merge
DominicDirkx Jan 21, 2022
a1a4138
Merging bias error output
DominicDirkx Jan 21, 2022
48c99bb
Merging bias error output
DominicDirkx Jan 21, 2022
2a4bb40
Merge remote-tracking branch 'origin/develop' into develop
FilippoOggionni Jan 21, 2022
1c2bc73
Merge pull request #48 from tudat-team/feature/improved_error_output
DominicDirkx Jan 21, 2022
ff470e8
Merge pull request #48 from tudat-team/feature/improved_error_output
DominicDirkx Jan 21, 2022
aa20369
final changes to cpp
jo11he Jan 21, 2022
02b6fd8
final changes to cpp
jo11he Jan 21, 2022
6ecc253
Merge pull request #49 from tudat-team/refactor/estimation_exposure
jo11he Jan 22, 2022
f31e986
Merge pull request #49 from tudat-team/refactor/estimation_exposure
jo11he Jan 22, 2022
109b516
Merge pull request #50 from tudat-team/develop
DominicDirkx Jan 24, 2022
bbfb2cf
Adding test for custom dependent variable
DominicDirkx Jan 24, 2022
8bba66f
Adding test for custom dependent variable
DominicDirkx Jan 24, 2022
7c3b320
Merge pull request #52 from tudat-team/feature/new_dependent_variables
DominicDirkx Jan 24, 2022
a201064
Merge pull request #52 from tudat-team/feature/new_dependent_variables
DominicDirkx Jan 24, 2022
3d82763
Added various minor points of functionality to add/suppress warnings/…
DominicDirkx Jan 25, 2022
78919a7
Added various minor points of functionality to add/suppress warnings/…
DominicDirkx Jan 25, 2022
e9e769a
Added correction to prevent infinite loop in integrator
DominicDirkx Jan 25, 2022
b71c177
Added correction to prevent infinite loop in integrator
DominicDirkx Jan 25, 2022
2e4c4ae
Added extra function for constant aerodynamic orientation
DominicDirkx Jan 25, 2022
7954a31
Added extra function for constant aerodynamic orientation
DominicDirkx Jan 25, 2022
14a6960
Corrected bug in polar motion partials
DominicDirkx Jan 27, 2022
b73925c
Corrected bug in polar motion partials
DominicDirkx Jan 27, 2022
e3cc6ad
Merged low-thrust refactor into develop
DominicDirkx Jan 28, 2022
17caf4c
Turns out Delta V for spherical shaping also works :)
DominicDirkx Jan 28, 2022
1e7974c
Added entries to CMakeLists
DominicDirkx Jan 28, 2022
4634864
Update LICENSE
DominicDirkx Jan 31, 2022
e797eee
Fixed issue, should run all tests
DominicDirkx Jan 31, 2022
b3775af
Fixed issue, should run all tests
DominicDirkx Jan 31, 2022
a9b22df
Modified dependen variable unit test; reoved test output
DominicDirkx Feb 1, 2022
029b5b5
Modified dependen variable unit test; reoved test output
DominicDirkx Feb 1, 2022
4a73915
Fix working for single body, not yet for multiple bodies
DominicDirkx Feb 1, 2022
cb17fb3
Fix working for single body, not yet for multiple bodies
DominicDirkx Feb 1, 2022
1d028d3
Fixed bug for multiple bodies
DominicDirkx Feb 1, 2022
e3585de
Fixed bug for multiple bodies
DominicDirkx Feb 1, 2022
f8bae91
Merge pull request #53 from tudat-team/feature/central_acceleration_s…
DominicDirkx Feb 1, 2022
0421e13
Merge pull request #53 from tudat-team/feature/central_acceleration_s…
DominicDirkx Feb 1, 2022
e4c0ac6
First implementation, with ill-placed unit test
DominicDirkx Feb 2, 2022
c258298
First implementation, with ill-placed unit test
DominicDirkx Feb 2, 2022
3ad5fee
Added some flexibility to NRLMSISE
DominicDirkx Feb 2, 2022
ec5f734
Added link end id integers to observation collection
DominicDirkx Feb 3, 2022
def2892
Merging
DominicDirkx Feb 3, 2022
2b0e478
Added fix when setting viability settings
DominicDirkx Feb 4, 2022
f6c8cf4
Added fix when setting viability settings
DominicDirkx Feb 4, 2022
0d03983
Merge pull request #56 from tudat-team/develop
DominicDirkx Feb 4, 2022
639dd83
Added better error output, as per issue #57
DominicDirkx Feb 9, 2022
a9da39a
Added better error output, as per issue #57
DominicDirkx Feb 9, 2022
d2d8132
Generalized and improved propagator error output
DominicDirkx Feb 9, 2022
8ecb2bc
Generalized and improved propagator error output
DominicDirkx Feb 9, 2022
3f60abb
Merge pull request #59 from tudat-team/feature/mass_propagation_bug_fix
gaffarelj Feb 9, 2022
ebb72e7
Merge pull request #59 from tudat-team/feature/mass_propagation_bug_fix
gaffarelj Feb 9, 2022
3396371
Added test of new functionality
DominicDirkx Feb 12, 2022
307a0db
Added test of new functionality
DominicDirkx Feb 12, 2022
7b88d8a
Merge pull request #62 from tudat-team/feature/station_angle_calculat…
DominicDirkx Feb 12, 2022
d9ae815
Merge pull request #62 from tudat-team/feature/station_angle_calculat…
DominicDirkx Feb 12, 2022
ed8f54a
Merge pull request #63 from tudat-team/develop
DominicDirkx Feb 12, 2022
8c829c7
Merged latest version of develop
DominicDirkx Feb 14, 2022
454ab77
Merge pull request #64 from tudat-team/feature/nrlmsise_update
DominicDirkx Feb 14, 2022
88917de
Working on refactoring SphericalShapingLeg (not finished)
MiguelAvillez Feb 15, 2022
af9b0ef
Add .deepsource.toml
deepsourcebot Feb 16, 2022
21f1422
Removed `.deepsource.toml`
geoffreygarrett Feb 17, 2022
ca5ad45
Setup of `rever`
geoffreygarrett Feb 17, 2022
9eed553
`rever` setup
geoffreygarrett Feb 17, 2022
85f82df
Merge branch 'develop' of https://github.com/tudat-team/tudat into de…
geoffreygarrett Feb 17, 2022
20c5197
Added possibility to print what is in the state vector (true by default)
gaffarelj Feb 19, 2022
53470f6
Switched order of state data and dep var print input
gaffarelj Feb 20, 2022
8df4af9
Moved print of state vector content to a separate function
gaffarelj Feb 20, 2022
778a513
Merge pull request #68 from tudat-team/feature/print-state-data
gaffarelj Feb 21, 2022
dabb5a4
Added error output to several functions; fixed compile error
DominicDirkx Feb 21, 2022
2d2fe3b
Merging develop branches
DominicDirkx Feb 21, 2022
0045ee6
Removing external directory
DominicDirkx Feb 21, 2022
326a7b0
Adding cerr error output when getting state size of custom state; put…
DominicDirkx Feb 21, 2022
09cc966
Fixing Linux compile issue
DominicDirkx Feb 21, 2022
55ae95a
Fixing another Linux compile issue
DominicDirkx Feb 21, 2022
e844ad7
Added include statement stdexcept to selected files
DominicDirkx Feb 21, 2022
c97c3aa
Disabled TabulatedAtmosphere test (it produces a build error on OSX)
gaffarelj Feb 21, 2022
bfe5657
Removing external directory (again...)
gaffarelj Feb 21, 2022
3f18d34
Merged develop
DominicDirkx Feb 24, 2022
276a3a6
Added warning output to parameters
DominicDirkx Feb 24, 2022
b1c4478
Further work on SphericalShapingLeg refactor
MiguelAvillez Feb 25, 2022
b1ce313
Merge branch 'develop' of https://github.com/tudat-team/tudat into de…
FilippoOggionni Feb 26, 2022
6a7033e
Several minor exposure updates
DominicDirkx Mar 3, 2022
a588e64
Added useful error output to SH component saving; correct PPN beta pa…
DominicDirkx Mar 4, 2022
62f07d5
Merge pull request #71 from tudat-team/feature/estimate_update
DominicDirkx Mar 4, 2022
11a861a
Refactoring MGA-DSM: changed nodes names, created leg input enum, ref…
MiguelAvillez Mar 4, 2022
4a54bf8
Had forgot to remove cout's from MGA-DSM
MiguelAvillez Mar 4, 2022
02b699b
Refactored evaluation of transfer trajectory + other minor changes
MiguelAvillez Mar 4, 2022
33d2ed2
Created 3 new node types; for one computeNode was not implemented
MiguelAvillez Mar 6, 2022
d9cc53e
Added auto CI support
geoffreygarrett Mar 7, 2022
3db466b
Added `fix_git.sh` for posterity [CI]
geoffreygarrett Mar 7, 2022
90619db
Bump version: 2.9.0 → 2.9.1.dev0
Delfi-C3 Mar 7, 2022
7febff5
Improved error output; addition of manual flight conditions creation
DominicDirkx Mar 7, 2022
ab07885
Adding unit test for new functionality
DominicDirkx Mar 7, 2022
6c5621c
Adding warnings when no state derivative models are provided
DominicDirkx Mar 7, 2022
59c8c1b
Merge pull request #74 from tudat-team/feature/po_updates
DominicDirkx Mar 8, 2022
f4b5082
Updated version to `2.10.5` to account for manual changes made on fee…
geoffreygarrett Mar 8, 2022
61746b8
Force [CI]
geoffreygarrett Mar 8, 2022
b77f733
Bump version: 2.10.5 → 2.10.6.dev0
Delfi-C3 Mar 8, 2022
c22e560
Spherical shaping leg settings
MiguelAvillez Mar 8, 2022
1640f51
Refactoring functions to deal with new node types
MiguelAvillez Mar 8, 2022
d2157fa
Error checking for SH gravity fields
DominicDirkx Mar 9, 2022
cab6160
Added linter to workflows
geoffreygarrett Mar 9, 2022
52e85f6
Updated repo name for linter
geoffreygarrett Mar 9, 2022
dc150ac
Checkout source repo first
geoffreygarrett Mar 9, 2022
e8bbb08
Trying another linter
geoffreygarrett Mar 9, 2022
acd1c5f
Demo stle with `llvm`
geoffreygarrett Mar 9, 2022
95fddd0
Attempt at fixing linter
geoffreygarrett Mar 9, 2022
bbf1b44
Adding new nodes/legs to functions that deal with parameters definition
MiguelAvillez Mar 9, 2022
b9b0f0b
Bump version: 2.10.6.dev0 → 2.10.6.dev1
Delfi-C3 Mar 10, 2022
fc5f64f
Bump version: 2.10.6.dev1 → 2.10.6.dev2
Delfi-C3 Mar 11, 2022
bcdd622
Bump version: 2.10.6.dev2 → 2.10.6.dev3
Delfi-C3 Mar 12, 2022
4b2ee6d
Fixed small bug in termination details for variational equations; unt…
DominicDirkx Mar 12, 2022
9e8560d
Working on MGA-SphericalShaping unit tests + small corrections
MiguelAvillez Mar 12, 2022
bf41f92
Bump version: 2.10.6.dev3 → 2.10.6.dev4
Delfi-C3 Mar 13, 2022
587850a
Added error checking for spice and dynamics state derivative input times
DominicDirkx Mar 14, 2022
cdc8858
Merged
DominicDirkx Mar 14, 2022
1a1ea80
Change some runtime_error to invalid_argument + new SPICE err conditions
gaffarelj Mar 14, 2022
8cfd89f
Added more flexible SH coefficient loading
DominicDirkx Mar 14, 2022
cd34b50
Merged
DominicDirkx Mar 14, 2022
6da580f
Bump version: 2.10.6.dev4 → 2.10.6.dev5
Delfi-C3 Mar 15, 2022
6c55d6c
Removef isinf commands
DominicDirkx Mar 15, 2022
781afd1
Merged local version
DominicDirkx Mar 15, 2022
a7e8b8a
Merged current develop version
DominicDirkx Mar 15, 2022
c8a7873
Added tests of termination reasons in variational equations solver
DominicDirkx Mar 15, 2022
03bb368
Merge pull request #79 from tudat-team/feature/termination_condition_…
DominicDirkx Mar 15, 2022
9c14cf0
MGA+SphericalShaping unit tests... working :)
MiguelAvillez Mar 15, 2022
ca3a43b
Bump version: 2.10.6.dev5 → 2.10.6.dev6
Delfi-C3 Mar 16, 2022
ebb7256
Correcting detail of termination reason
DominicDirkx Mar 16, 2022
a526542
Merging
DominicDirkx Mar 16, 2022
0ff009c
Merging
DominicDirkx Mar 16, 2022
eac3416
Facilitated access and modification of solar activity data in NRLMSISE
DominicDirkx Mar 16, 2022
4d9210e
Small corrections
MiguelAvillez Mar 16, 2022
17a0b00
Bump version: 2.10.6.dev6 → 2.10.6.dev7
Delfi-C3 Mar 17, 2022
b366899
Added `utils::data` module [CI]
geoffreygarrett Mar 17, 2022
ae37c4b
Merge branch 'develop' of https://github.com/tudat-team/tudat into de…
geoffreygarrett Mar 17, 2022
3bc546e
Correct CMakeLists.txt copyright [CI]
geoffreygarrett Mar 17, 2022
7d43fec
Bump version: 2.10.6.dev7 → 2.10.6.dev8
Delfi-C3 Mar 17, 2022
5efe8e2
Added `utils::data::download_file` feature [CI]
geoffreygarrett Mar 17, 2022
eadb627
Bump version: 2.10.6.dev8 → 2.10.6.dev9
Delfi-C3 Mar 17, 2022
7139aec
Bump version: 2.10.6.dev9 → 2.10.6.dev10
Delfi-C3 Mar 18, 2022
a39085e
Fixed `download_file` cache logic
geoffreygarrett Mar 18, 2022
0e25a27
Merge branch 'develop' of github.com:tudat-team/tudat into HEAD
Delfi-C3 Mar 18, 2022
b1beb8e
Disabling linter
geoffreygarrett Mar 18, 2022
32a5d51
Fixed issue #26
DominicDirkx Mar 19, 2022
2fd22e1
Merge remote-tracking branch 'origin/develop' into develop
DominicDirkx Mar 19, 2022
dac4d65
Added unit test for dependent variable; removed terminal output
DominicDirkx Mar 19, 2022
95aabc7
Functions to retrieve thrust acceleration history implemented and tested
MiguelAvillez Mar 20, 2022
48b74f1
Spherical shaping unit test: testing both constructors
MiguelAvillez Mar 20, 2022
e96361c
Updated factory functions for creating node and leg settings
MiguelAvillez Mar 20, 2022
57bb767
Added overload for factory functions that create node and leg settings
MiguelAvillez Mar 20, 2022
0ffe24f
Backward propagation of gravity assist (tested)
MiguelAvillez Mar 23, 2022
0f8cceb
New swingby node type + renaming some variables
MiguelAvillez Mar 23, 2022
fb10f91
Fixed function to print paramters
MiguelAvillez Mar 24, 2022
317426a
Spherical shaping: converting number of revolutions from leg setting …
MiguelAvillez Mar 27, 2022
1b6c84c
Small update to leg parameter description
MiguelAvillez Mar 27, 2022
2caf91e
Correcting functions signatures
MiguelAvillez Mar 27, 2022
f2535f4
Added clear function for local inclination methods
DominicDirkx Mar 28, 2022
105ccf4
Gravity assist now suports infinite periapsis radius
MiguelAvillez Mar 30, 2022
c19d518
Testing [CI]
DominicDirkx Mar 31, 2022
afebb65
Bump version: 2.10.6.dev10 → 2.10.6.dev11
Delfi-C3 Mar 31, 2022
7fd63d5
Added function to print the RK Butcher tableau + coefficient name
gaffarelj Mar 31, 2022
171368d
Added forward Euler and RK4 coefficients + name of all coefficients
gaffarelj Mar 31, 2022
3bf5845
Bump version: 2.10.6.dev11 → 2.10.6.dev12
Delfi-C3 Apr 1, 2022
1a49410
Split RK coefficients into two enums (fixed step or not)
gaffarelj Apr 1, 2022
f41869c
Added general fixed-step RK integrator
gaffarelj Apr 1, 2022
bdd5d38
Hodographic shaping refactor: renaming, simplifying some functions
MiguelAvillez Apr 3, 2022
4e16f74
Hodographic shaping refactor: converter revolutions to leg parameter,…
MiguelAvillez Apr 3, 2022
243c6a8
Combined RK coefficients in1 enum, print Butcher tableau in sep funcion
gaffarelj Apr 4, 2022
be991f4
Test adding RKF_8 fixed step integrator
gaffarelj Apr 7, 2022
29a4398
Added additional weight function
DominicDirkx Apr 11, 2022
5e8a13f
Hodographic shaping: some more small corrections
MiguelAvillez Apr 11, 2022
58bd7bc
Hodographic shaping: arrival and departure velocity as functions
MiguelAvillez Apr 11, 2022
4dc761e
Hodographic shaping: converting unit tests
MiguelAvillez Apr 11, 2022
e6aedc2
Hodographic shaping: small corrections
MiguelAvillez Apr 11, 2022
3343d0c
Added boolean in coefficient set (if made for fixed step integration)
gaffarelj Apr 12, 2022
e78af06
Added option to use variable step coeffs for fixed step integration
gaffarelj Apr 12, 2022
4f8c275
Added methods to create fixed step RK integrator
gaffarelj Apr 12, 2022
26927ce
MGA + hodographic shaping: implemented, tested single leg
MiguelAvillez Apr 12, 2022
a336815
Put CoefficientSets enum directly in numerical_integrators (+ renamed…
gaffarelj Apr 13, 2022
8eec593
Added new integrator (+coefficients) names to json interface
gaffarelj Apr 13, 2022
0879b0e
Merged
DominicDirkx Apr 13, 2022
2afa3f0
Fixed bug reported in #85
DominicDirkx Apr 13, 2022
ec3d6ec
Added 8 new fixed step integrators
gaffarelj Apr 13, 2022
343d77e
Raise error if fixed step coefficient used for variable step integration
gaffarelj Apr 13, 2022
37bffb0
Replaced hard coded Euler and RK4 integ by inherits of fixed step integ
gaffarelj Apr 13, 2022
b8d35e8
Bump version: 2.10.6.dev12 → 2.10.6.dev13
Delfi-C3 Apr 14, 2022
3e8e7d5
Added function to get link end names to observation collection
DominicDirkx Apr 14, 2022
e3b9d31
Fix issue with the name link ends
cfortunylombra Apr 20, 2022
551e9fb
MGA+hodographic shaping: fixed code for leg with free parameters (tes…
MiguelAvillez Apr 20, 2022
be3c077
Adding references to gravity assist comments
MiguelAvillez Apr 20, 2022
b3e862c
Let user choose higher/lower order directly for fixed integ
gaffarelj Apr 21, 2022
95d4c7e
Added 7 new RK coefficient sets with embedded methods
gaffarelj Apr 23, 2022
b7530c8
Multiple hodographic shaping legs test
MiguelAvillez Apr 23, 2022
9223911
Mixed high/low thrust legs test
MiguelAvillez Apr 25, 2022
a080a7e
Hodographic shaping test with free parameters
MiguelAvillez Apr 25, 2022
1a9d218
Spherical shaping: removed old class from unit test
MiguelAvillez Apr 26, 2022
754eaf9
Removing old spherical shaping class
MiguelAvillez Apr 26, 2022
13e79d5
Hodographic shaping: removing old class from unit tests
MiguelAvillez Apr 26, 2022
0309157
Re-adding code removed in a previous commit to spherical shaping test
MiguelAvillez Apr 26, 2022
834ad91
Removing old hodographic shaping class
MiguelAvillez Apr 26, 2022
cceddce
Removing ShapeBasedMethod from cmake
MiguelAvillez Apr 26, 2022
1c3f3c2
Small change in cmake - low thrust
MiguelAvillez Apr 26, 2022
0f0dc37
Cleaning up hodgraphic shaping test
MiguelAvillez Apr 26, 2022
d045a58
Merge branch 'feature/minor_estimation_fixex' into develop
DominicDirkx Apr 28, 2022
c45ad89
Merge remote-tracking branch 'carlos-origin/name_link_ends_fix' into …
DominicDirkx Apr 28, 2022
0a1e788
Merge branch 'feature/nrlmsise_update' into develop
DominicDirkx Apr 28, 2022
ef4d07d
Removing unneeded files
DominicDirkx Apr 28, 2022
cd6b62d
Merge branch 'feature/po_updates' into develop
DominicDirkx Apr 28, 2022
f2f39ac
Added error output based on wrong use of code
DominicDirkx May 3, 2022
11081c1
Bug fixes and error check
DominicDirkx May 3, 2022
cf1322d
Merge pull request #1 from DominicDirkx/feature/low_thrust_leg_refact…
MiguelAvillez May 3, 2022
2df4141
Hodographic shaping trajectory factory function; removing superfluous…
MiguelAvillez May 3, 2022
2f9329b
Removing empty example file
MiguelAvillez May 3, 2022
030005a
Fixed RKF12, Heun_Euler, RKF89 and RKF1412 coefficients
gaffarelj May 4, 2022
32a4e8c
Update to MGA transfer factory functions
MiguelAvillez May 4, 2022
1cc366d
Error checking
MiguelAvillez May 4, 2022
baf4e2a
Updated tests to use new coefficient sets enum (out of RKCoeff struct)
gaffarelj May 5, 2022
c235c47
Merging
DominicDirkx May 5, 2022
e96eb59
Slight modification to tests
DominicDirkx May 5, 2022
2e08e37
Functions to get TNW and RSW accelerations for MGA transfers
MiguelAvillez May 21, 2022
95af3a0
Merge pull request #93 from MiguelAvillez/feature/low_thrust_leg_refa…
DominicDirkx May 23, 2022
20cef0a
Minor update to integrator to reduce rounding errors
DominicDirkx May 23, 2022
d305197
Bump version: 2.10.6.dev13 → 2.10.6.dev14
Delfi-C3 May 24, 2022
2e256d3
Modifications to unit tests
DominicDirkx May 24, 2022
68b8ce8
Small updates to RK4 integrator
DominicDirkx May 24, 2022
83d5b13
Merge pull request #99 from tudat-team/feature/fixed_step_integrators…
DominicDirkx May 24, 2022
b49fb51
Added output of variation in SH coefficients
DominicDirkx May 24, 2022
78e1687
Added factory functions for new dependent variable
DominicDirkx May 24, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Added forward Euler and RK4 coefficients + name of all coefficients
  • Loading branch information
gaffarelj committed Mar 31, 2022
commit 171368d27e48a9703deb742cd73de113abb486b3
87 changes: 86 additions & 1 deletion src/math/integrators/rungeKuttaCoefficients.cpp
Original file line number Diff line number Diff line change
@@ -27,6 +27,62 @@ namespace tudat
namespace numerical_integrators
{

//! Initialize forward Euler coefficients.
void initializeForwardEulerCoefficients( RungeKuttaCoefficients& forwardEulerCoefficients )
{
// Define characteristics of coefficient set.
forwardEulerCoefficients.lowerOrder = 1;
forwardEulerCoefficients.higherOrder = 1;

// Define a-coefficients for the forward Euler method of order 1 and with 1 stage.
forwardEulerCoefficients.aCoefficients = Eigen::MatrixXd::Zero( 1, 1 );

// Define c-coefficients for the forward Euler method of order 1 and with 1 stage.
forwardEulerCoefficients.cCoefficients = Eigen::VectorXd::Zero( 1 );

// Define b-coefficients for the forward Euler method of order 1 and with 1 stage.
forwardEulerCoefficients.bCoefficients = Eigen::MatrixXd::Zero( 1, 1 );
forwardEulerCoefficients.bCoefficients( 0, 0 ) = 1.0;

// Set the name of these coefficients.
forwardEulerCoefficients.name = "Forward Euler";
}

//! Initialize RK4 coefficients.
void initializeRungeKutta4Coefficients( RungeKuttaCoefficients&
rungeKutta4Coefficients )
{
// Define characteristics of coefficient set.
rungeKutta4Coefficients.lowerOrder = 4;
rungeKutta4Coefficients.higherOrder = 4;

// Define a-coefficients for the Runge-Kutta method of order 4 and with 4 stages.
rungeKutta4Coefficients.aCoefficients = Eigen::MatrixXd::Zero( 4, 4 );
rungeKutta4Coefficients.aCoefficients( 1, 0 ) = 1.0 / 2.0;

rungeKutta4Coefficients.aCoefficients( 2, 1 ) = 1.0 / 2.0;

rungeKutta4Coefficients.aCoefficients( 3, 2 ) = 1.0;


// Define c-coefficients for the Runge-Kutta method of order 4 and with 4 stages.
rungeKutta4Coefficients.cCoefficients = Eigen::VectorXd::Zero( 4 );
rungeKutta4Coefficients.cCoefficients( 1 ) = 1.0 / 2.0;
rungeKutta4Coefficients.cCoefficients( 2 ) = 1.0 / 2.0;
rungeKutta4Coefficients.cCoefficients( 3 ) = 1.0;


// Define b-coefficients for the Runge-Kutta method of order 4 and with 4 stages.
rungeKutta4Coefficients.bCoefficients = Eigen::MatrixXd::Zero( 1, 4 );
rungeKutta4Coefficients.bCoefficients( 0, 0 ) = 1.0 / 6.0;
rungeKutta4Coefficients.bCoefficients( 0, 1 ) = 1.0 / 3.0;
rungeKutta4Coefficients.bCoefficients( 0, 2 ) = 1.0 / 3.0;
rungeKutta4Coefficients.bCoefficients( 0, 3 ) = 1.0 / 6.0;

// Set the name of these coefficients.
rungeKutta4Coefficients.name = "Runge-Kutta 4";
}

//! Initialize RKF45 coefficients.
void initializeRungeKuttaFehlberg45Coefficients( RungeKuttaCoefficients&
rungeKuttaFehlberg45Coefficients )
@@ -85,6 +141,9 @@ void initializeRungeKuttaFehlberg45Coefficients( RungeKuttaCoefficients&
rungeKuttaFehlberg45Coefficients.bCoefficients( 1, 3 ) = 28561.0 / 56430.0;
rungeKuttaFehlberg45Coefficients.bCoefficients( 1, 4 ) = -9.0 / 50.0;
rungeKuttaFehlberg45Coefficients.bCoefficients( 1, 5 ) = 2.0 / 55.0;

// Set the name of these coefficients.
rungeKuttaFehlberg45Coefficients.name = "Runge-Kutta-Fehlberg 4/5";
}

//! Initialize RKF56 coefficients.
@@ -158,6 +217,9 @@ void initializeRungeKuttaFehlberg56Coefficients( RungeKuttaCoefficients&
rungeKuttaFehlberg56Coefficients.bCoefficients( 1, 4 ) = 125.0 / 768.0;
rungeKuttaFehlberg56Coefficients.bCoefficients( 1, 6 ) = 5.0 / 66.0;
rungeKuttaFehlberg56Coefficients.bCoefficients( 1, 7 ) = 5.0 / 66.0;

// Set the name of these coefficients.
rungeKuttaFehlberg56Coefficients.name = "Runge-Kutta-Fehlberg 5/6";
}

//! Initialize RKF78 coefficients.
@@ -281,6 +343,9 @@ void initializeRungeKuttaFehlberg78Coefficients( RungeKuttaCoefficients&
rungeKuttaFehlberg78Coefficients.bCoefficients( 1, 11 ) = 41.0 / 840.0;
rungeKuttaFehlberg78Coefficients.bCoefficients( 1, 12 ) =
rungeKuttaFehlberg78Coefficients.bCoefficients( 1, 11 );

// Set the name of these coefficients.
rungeKuttaFehlberg78Coefficients.name = "Runge-Kutta-Fehlberg 7/8";
}

//! Initialize RK87 (Dormand and Prince) coefficients.
@@ -409,19 +474,39 @@ void initializerungeKutta87DormandPrinceCoefficients(
rungeKutta87DormandPrinceCoefficients.bCoefficients( 1, 10 ) = 118820643.0 / 751138087.0;
rungeKutta87DormandPrinceCoefficients.bCoefficients( 1, 11 ) = -528747749.0 / 2220607170.0;
rungeKutta87DormandPrinceCoefficients.bCoefficients( 1, 12 ) = 1.0 / 4.0;

// Set the name of these coefficients.
rungeKutta87DormandPrinceCoefficients.name = "Runge-Kutta 8/7 Dormand-Prince";

}

//! Get coefficients for a specified coefficient set
const RungeKuttaCoefficients& RungeKuttaCoefficients::get(
RungeKuttaCoefficients::CoefficientSets coefficientSet )
{
static RungeKuttaCoefficients rungeKuttaFehlberg45Coefficients,
static RungeKuttaCoefficients forwardEulerCoefficients,
rungeKutta4Coefficients,
rungeKuttaFehlberg45Coefficients,
rungeKuttaFehlberg56Coefficients,
rungeKuttaFehlberg78Coefficients,
rungeKutta87DormandPrinceCoefficients;

switch ( coefficientSet )
{
case forwardEuler:
if ( forwardEulerCoefficients.higherOrder != 1 )
{
initializeForwardEulerCoefficients( forwardEulerCoefficients );
}
return forwardEulerCoefficients;

case rungeKutta4:
if ( rungeKutta4Coefficients.higherOrder != 4 )
{
initializeRungeKutta4Coefficients( rungeKutta4Coefficients );
}
return rungeKutta4Coefficients;

case rungeKuttaFehlberg45:
if ( rungeKuttaFehlberg45Coefficients.higherOrder != 5 )
{