Public API

This page lists exported symbols of CTFlows.MultiPhase.


From CTFlows.MultiPhase

CTFlows.MultiPhase [Module]

CTFlows.MultiPhaseModule
MultiPhase

Multi-phase flow concatenation and sequential integration.

This module provides types and operators for concatenating flows with switching times and optional jumps, implementing exact sequential integration.

AnyMultiPhaseFlow [Struct]

MultiPhaseFlow [Struct]

CTFlows.MultiPhase.MultiPhaseFlowType
struct MultiPhaseFlow{TD<:CTBase.Traits.TimeDependence, VD<:CTBase.Traits.VariableDependence, D<:CTBase.Traits.AbstractDynamicsTrait, FS<:Tuple, ST<:(Vector{<:Real}), J<:(Vector)} <: CTFlows.Flows.AbstractFlow{TD<:CTBase.Traits.TimeDependence, VD<:CTBase.Traits.VariableDependence, D<:CTBase.Traits.AbstractDynamicsTrait}

Concrete multi-phase flow combining multiple flows of the same dynamics family with switching times and optional jumps.

The dynamics axis is encoded in D, following the same pattern as Flow:

  • D = StateDynamics → state multi-phase flow (alias MultiPhaseStateFlow)
  • D = HamiltonianDynamics → Hamiltonian multi-phase flow (alias MultiPhaseHamiltonianFlow)

flows is a heterogeneous tuple, lifting the previous homogeneous-S/I constraint: phases may wrap systems and integrators of different concrete types.

Type Parameters

  • TD <: TimeDependence: Time dependence trait (Autonomous or NonAutonomous)
  • VD <: VariableDependence: Variable dependence trait (Fixed or NonFixed)
  • D <: AbstractDynamicsTrait: Dynamics trait (StateDynamics or HamiltonianDynamics)
  • FS <: Tuple: Tuple of AbstractFlow{TD,VD,D} (heterogeneous allowed)
  • ST <: Vector{<:Real}: Type of the switching times vector
  • J <: Vector{<:Any}: Type of the jumps vector

Fields

  • flows::FS: Tuple of flows for each phase
  • switching_times::ST: Switching times between phases
  • jumps::J: Optional jump functions applied at switching times

See also: CTFlows.MultiPhase.MultiPhaseStateFlow, CTFlows.MultiPhase.MultiPhaseHamiltonianFlow, CTFlows.Flows.Flow.

MultiPhaseHamiltonianFlow [Struct]

MultiPhaseStateFlow [Struct]

get_flow [Function]

get_flows [Function]

CTFlows.MultiPhase.get_flowsFunction
get_flows(f::CTFlows.Flows.AbstractFlow) -> Tuple

Get the flows from a single-phase flow as a 1-tuple.

get_flows(mpf::CTFlows.MultiPhase.MultiPhaseFlow) -> Tuple

Get the flows tuple from a multi-phase flow.

get_jump [Function]

CTFlows.MultiPhase.get_jumpFunction
get_jump(
    mpf::CTFlows.MultiPhase.MultiPhaseFlow,
    i::Int64
) -> Any

Return the jump function at a specific phase boundary.

Arguments

  • mpf::MultiPhaseFlow: The multi-phase flow.
  • i::Int: Phase index (1-based). Returns the jump applied after phase i.

Returns

  • Union{Nothing, Function, Tuple}: The jump function, or nothing if no jump is defined.

See also: CTFlows.MultiPhase.n_phases, CTFlows.MultiPhase.get_flow.

get_jumps [Function]

CTFlows.MultiPhase.get_jumpsFunction
get_jumps(_::CTFlows.Flows.AbstractFlow) -> Vector

Get the jumps from a single-phase flow (empty vector).

get_jumps(mpf::CTFlows.MultiPhase.MultiPhaseFlow) -> Vector

Get the jumps from a multi-phase flow.

get_switching_time [Function]

get_switching_times [Function]

CTFlows.MultiPhase.get_switching_timesFunction
get_switching_times(
    _::CTFlows.Flows.AbstractFlow
) -> Vector{<:Real}

Get the switching times from a single-phase flow (empty vector).

get_switching_times(
    mpf::CTFlows.MultiPhase.MultiPhaseFlow
) -> Vector{<:Real}

Get the switching times from a multi-phase flow.

n_phases [Function]