Private API

This page lists non-exported (internal) symbols of CTModelsJSON, CTModelsJLD, CTModels.Serialization.


From CTModelsJSON

_MATRIX_FIELDS [Constant]

CTModelsJSON._MATRIX_FIELDSConstant

Solution fields that are always serialized as Matrix{Float64} and must be converted to Vector{Vector} for JSON3.

_OPTIONAL_MATRIX_FIELDS [Constant]

_apply_over_grid [Function]

_convert_matrices_for_json! [Function]

CTModelsJSON._convert_matrices_for_json!Function

Convert Matrix fields to Vector{Vector} for JSON3 export.

JSON3 flattens Matrix{Float64} into 1D arrays, losing the 2D structure. This function converts all matrix fields to Vector{Vector} format to preserve dimensions.

_deserialize_infos [Function]

CTModelsJSON._deserialize_infosFunction

Convert Dict{String,Any} back to Dict{Symbol,Any} after JSON deserialization. Uses symbol_keys metadata to restore Symbol types where they were originally present.

_deserialize_value [Function]

_json_to_matrix [Function]

CTModelsJSON._json_to_matrixFunction

Convert a JSON field (Vector{Vector} via stack) to Matrix{Float64}.

JSON exports matrices as Vector{Vector}. After stack(blob[field]; dims=1), we get either a Matrix (multi-D) or Vector (1D). This normalizes to Matrix.

Arguments

  • blob_field: JSON array field (Vector of Vectors)

Returns

  • Matrix{Float64}: (ntimepoints, n_dim)

_json_to_optional_matrix [Function]

CTModelsJSON._json_to_optional_matrixFunction

Convert an optional JSON field to Matrix{Float64} or nothing.

Arguments

  • blob_field: JSON array field or nothing

Returns

  • Matrix{Float64} or nothing

_serialize_infos [Function]

CTModelsJSON._serialize_infosFunction

Convert Dict{Symbol,Any} to Dict{String,Any} for JSON serialization. Only serializes JSON-compatible types (numbers, strings, bools, arrays, dicts). Returns a tuple: (serializeddict, symbolkeys) where symbol_keys tracks which values were Symbols.

_serialize_value [Function]

CTModelsJSON._serialize_valueFunction

Serialize a single value to JSON-compatible format. Returns a tuple: (serializedvalue, symbolpaths) where symbol_paths tracks Symbol locations.


From CTModels.Serialization

_extract_time_vector [Function]

CTModels.Serialization._extract_time_vectorFunction
_extract_time_vector(time_data) -> Any

Extract time vector from various data formats.

Arguments

  • time_data: Time data in various formats (Vector, Matrix, etc.)

Returns

  • Vector{Float64}: Time vector

Notes

  • Handles both Vector{Float64} and Matrix{Float64} (single column) formats
  • Used by JSON and JLD2 importers to normalize time grid data

See also: _reconstruct_solution_from_data.

_reconstruct_solution_from_data [Function]

CTModels.Serialization._reconstruct_solution_from_dataFunction
_reconstruct_solution_from_data(
    ocp,
    data;
    infos
) -> CTModels.Solutions.Solution{TimeGridModelType, TimesModelType, StateModelType, ControlModelType, VariableModelType, ModelType, CostateModelType, Float64, DualModelType, CTModels.Solutions.SolverInfos{Any, Dict{Symbol, Any}}} where {TimeGridModelType<:CTModels.Solutions.AbstractTimeGridModel, TimesModelType<:CTModels.Components.AbstractTimesModel, StateModelType<:CTModels.Components.AbstractStateModel, ControlModelType<:CTModels.Components.AbstractControlModel, VariableModelType<:CTModels.Components.AbstractVariableModel, ModelType<:CTModels.Models.AbstractModel, CostateModelType<:Function, DualModelType<:CTModels.Solutions.AbstractDualModel}

Reconstruct a solution from imported data, detecting the format (single vs multiple time grids).

Duals and control_interpolation are read from data. Only infos is accepted as a keyword argument because its deserialization is format-specific (JSON restores Symbol types).

Arguments

  • ocp: The optimal control problem model
  • data: Dictionary containing the imported solution data, including all dual fields and control_interpolation

Keyword Arguments

  • infos: Solver information dictionary (Dict{Symbol,Any}). Passed explicitly because JSON deserialization must restore Symbol types before calling this helper.

Returns

  • Solution: Reconstructed solution with appropriate time grid model

Notes

  • If time_grid_state key exists, assumes multiple time grid format
  • Otherwise, uses the current unified format (single time_grid key)

Example

julia> sol = _reconstruct_solution_from_data(ocp, data; infos=infos)

See also: _extract_time_vector.