Private API
This page lists non-exported (internal) symbols of CTModelsJSON, CTModelsJLD, CTModels.Serialization.
From CTModelsJSON
_MATRIX_FIELDS [Constant]
CTModelsJSON._MATRIX_FIELDS — Constant
Solution fields that are always serialized as Matrix{Float64} and must be converted to Vector{Vector} for JSON3.
_OPTIONAL_MATRIX_FIELDS [Constant]
CTModelsJSON._OPTIONAL_MATRIX_FIELDS — Constant
Solution fields that may be present (non-empty duals) and require the same Matrix → Vector{Vector} conversion.
_apply_over_grid [Function]
CTModelsJSON._apply_over_grid — Function
Apply a function over a grid (broadcast), or return nothing if input is nothing.
_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_infos — Function
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]
CTModelsJSON._deserialize_value — Function
Deserialize a single value from JSON format. Uses symbol_keys to restore Symbol types at the correct paths.
_json_to_matrix [Function]
CTModelsJSON._json_to_matrix — Function
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_matrix — Function
Convert an optional JSON field to Matrix{Float64} or nothing.
Arguments
blob_field: JSON array field or nothing
Returns
Matrix{Float64}ornothing
_serialize_infos [Function]
CTModelsJSON._serialize_infos — Function
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_value — Function
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_vector — Function
_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_data — Function
_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 modeldata: Dictionary containing the imported solution data, including all dual fields andcontrol_interpolation
Keyword Arguments
infos: Solver information dictionary (Dict{Symbol,Any}). Passed explicitly because JSON deserialization must restoreSymboltypes before calling this helper.
Returns
Solution: Reconstructed solution with appropriate time grid model
Notes
- If
time_grid_statekey exists, assumes multiple time grid format - Otherwise, uses the current unified format (single
time_gridkey)
Example
julia> sol = _reconstruct_solution_from_data(ocp, data; infos=infos)See also: _extract_time_vector.