Skip to content

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

@robfalck

Description

@robfalck

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions