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

Newton solver should not be attached at the phase level when using solve_segments. #845

Open
robfalck opened this issue Oct 26, 2022 · 0 comments

Comments

@robfalck
Copy link
Contributor

Proposed feature.

The solve_segments implementation utilizes a Newton solver at the phase level to resolve the collocation defects as solver residuals. In dymos 1.6.1-dev, this Newton solver is wrapped around the entire Phase. This evaluates all components in the phase when many of them are not necessary to compute during the iteration.

The Radau transcription has an N2 diagram that looks like this:
Radau N2 cycle

The GaussLobatto transcription N2 looks like this:
GaussLobatto N2 cycle

Resolution

Pseudospectral phases should contain a subgroup (state_convergence_group) that evaluates the following systems

  • indep_states
  • state_interp
  • rhs_all (rhs_disc and rhs_col for GaussLobatto)
  • collocation_constraint
  • continuity_constraint

The timeseries system (and the interleave_comp for GaussLobatto) should fall after this state_convergence_group.

If possible, state_convergence_group should promote as much as possible to be "invisible" to the user. That will let us keep the existing connections to the largest extent possible.

The Newton solver used to converge solve_segments should be attached to state_convergence_group rather than the phase.

Example

No response

@robfalck robfalck assigned robfalck and unassigned robfalck Oct 26, 2022
@robfalck robfalck removed their assignment May 31, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant