@@ -797,52 +797,53 @@ end
797797# ============================================================================== #
798798
799799"""
800- _serialize_solution(sol::Solution)::Dict{String, Any}
800+ $(TYPEDSIGNATURES)
801801
802- Sérialise une solution en données discrètes pour export (JLD2, JSON, etc.).
803- Utilise les getters publics pour accéder aux champs de la solution.
802+ Serialize a solution into discrete data for export (JLD2, JSON, etc.).
804803
805- Cette fonction extrait toutes les données d'une solution et les convertit en format
806- sérialisable (matrices, vecteurs, scalaires ). Les fonctions sont discrétisées sur
807- la grille temporelle .
804+ Extracts all data from a solution and converts it into a serializable format
805+ (matrices, vectors, scalars ). Functions are discretized on the time grid.
806+ Uses public getters to access solution fields .
808807
809808# Arguments
810- - `sol::Solution`: Solution à sérialiser
809+ - `sol::Solution`: Solution to serialize.
811810
812811# Returns
813- - `Dict{String, Any}`: Dictionnaire contenant toutes les données discrètes :
814- - `"time_grid"`: Grille temporelle
815- - `"state"`, `"control"`, `"costate"`: Matrices discrétisées
816- - `"variable"`: Vecteur de variables
817- - `"objective"`: Valeur scalaire
818- - Fonctions duales discrétisées (peuvent être `nothing`)
819- - Duals de boundary et variable (vecteurs )
820- - Informations du solveur
812+ - `Dict{String, Any}`: Dictionary containing all discrete data :
813+ - `"time_grid"`: Time grid
814+ - `"state"`, `"control"`, `"costate"`: Discretized matrices
815+ - `"variable"`: Variable vector
816+ - `"objective"`: Scalar value
817+ - Discretized dual functions (can be `nothing`)
818+ - Boundary and variable duals (vectors )
819+ - Solver information
821820
822821# Notes
823- - Les fonctions sont discrétisées via `_discretize_function`
824- - Les duals `nothing` sont préservés comme `nothing`
825- - Compatible avec `build_solution` pour reconstruction
822+ - Functions are discretized via `_discretize_function`.
823+ - `nothing` duals are preserved as `nothing`.
824+ - Compatible with `build_solution` for reconstruction.
826825
827826# Example
828827```julia
829828sol = solve(ocp)
830829data = CTModels._serialize_solution(sol)
831830# Reconstruction
832831sol_reconstructed = CTModels.build_solution(
833- ocp, data["time_grid"], data["state"], data["control"],
834- data["variable"], data["costate"];
832+ ocp, data["time_grid"], data["state"], data["control"],
833+ data["variable"], data["costate"];
835834 objective=data["objective"], ...
836835)
837836```
837+
838+ See also: [`build_solution`](@ref), [`_discretize_function`](@ref)
838839"""
839840function _serialize_solution (sol:: Solution ):: Dict{String, Any}
840- # Utiliser les getters publics
841+ # Use public getters
841842 T = time_grid (sol)
842843 dim_x = state_dimension (sol)
843844 dim_u = control_dimension (sol)
844845
845- # Discrétiser les fonctions principales
846+ # Discretize main functions
846847 return Dict (
847848 " time_grid" => T,
848849 " state" => _discretize_function (state (sol), T, dim_x),
@@ -851,19 +852,19 @@ function _serialize_solution(sol::Solution)::Dict{String, Any}
851852 " variable" => variable (sol),
852853 " objective" => objective (sol),
853854
854- # Discrétiser les fonctions duales (peuvent être nothing)
855+ # Discretize dual functions (can be nothing)
855856 " path_constraints_dual" => _discretize_dual (path_constraints_dual (sol), T),
856857 " state_constraints_lb_dual" => _discretize_dual (state_constraints_lb_dual (sol), T),
857858 " state_constraints_ub_dual" => _discretize_dual (state_constraints_ub_dual (sol), T),
858859 " control_constraints_lb_dual" => _discretize_dual (control_constraints_lb_dual (sol), T),
859860 " control_constraints_ub_dual" => _discretize_dual (control_constraints_ub_dual (sol), T),
860861
861- # Duals de boundary et variable (vecteurs, pas fonctions )
862+ # Boundary and variable duals (vectors, not functions )
862863 " boundary_constraints_dual" => boundary_constraints_dual (sol),
863864 " variable_constraints_lb_dual" => variable_constraints_lb_dual (sol),
864865 " variable_constraints_ub_dual" => variable_constraints_ub_dual (sol),
865866
866- # Infos solver
867+ # Solver info
867868 " iterations" => iterations (sol),
868869 " message" => message (sol),
869870 " status" => status (sol),
0 commit comments