@@ -68,13 +68,35 @@ $(TYPEDFIELDS)
6868struct LineParametersProblem{T<: Union{Float64,Measurement{Float64}} } <: ProblemDefinition
6969 " The physical cable system to analyze."
7070 system:: LineCableSystem
71- " Operating temperature [°C]."
71+ " Operating temperature \\ [°C\\ ]."
7272 temperature:: T
7373 " Earth properties model."
7474 earth_props:: EarthModel{T}
75- " Frequencies at which to perform the analysis [Hz]."
75+ " Frequencies at which to perform the analysis \\ [Hz\\ ]."
7676 frequencies:: Vector{Float64}
7777
78+ @doc """
79+ $(TYPEDSIGNATURES)
80+
81+ Constructs a [`LineParametersProblem`](@ref) instance.
82+
83+ # Arguments
84+
85+ - `system`: The cable system to analyze ([`LineCableSystem`](@ref)).
86+ - `temperature`: Operating temperature \\ [°C\\ ]. Default: `T₀`.
87+ - `earth_props`: Earth properties model ([`EarthModel`](@ref)).
88+ - `frequencies`: Frequencies for analysis \\ [Hz\\ ]. Default: [`f₀`](@ref).
89+
90+ # Returns
91+
92+ - A [`LineParametersProblem`](@ref) object with validated cable system, temperature, earth model, and frequency vector.
93+
94+ # Examples
95+
96+ ```julia
97+ prob = $(FUNCTIONNAME) (system; temperature=25.0, earth_props=earth, frequencies=[50.0, 60.0, 100.0])
98+ ```
99+ """
78100 function LineParametersProblem (
79101 system:: LineCableSystem ;
80102 temperature:: T = T (T₀),
@@ -174,25 +196,39 @@ struct LineParametersProblem{T<:Union{Float64,Measurement{Float64}}} <: ProblemD
174196 end
175197end
176198
177- # """
178- # $(TYPEDEF)
179-
180- # Formulation base type for defining solver options in the computation framework.
181- # Solver options define execution-related parameters such as output options,
182- # solver command line arguments, and post-processing settings.
199+ """
200+ $(TYPEDEF)
183201
184- # Concrete implementations should define how the solution process is controlled,
185- # including file handling, previewing options, and external tool integration.
186- # """
187- # abstract type FormulationOptions end
202+ Represents the frequency-dependent line parameters (series impedance and shunt admittance matrices) for a cable or line system.
188203
204+ $(TYPEDFIELDS)
205+ """
189206struct LineParameters{T<: Union{Complex{Float64},Complex{Measurement{Float64}}} }
190- " Series impedance matrices [Ω/m] "
207+ " Series impedance matrices \\ [Ω/m\\ ]. "
191208 Z:: Array{T,3}
192- " Shunt admittance matrices [S/m] "
209+ " Shunt admittance matrices \\ [S/m\\ ]. "
193210 Y:: Array{T,3}
194211
195- # Inner constructor with validation
212+ @doc """
213+ $(TYPEDSIGNATURES)
214+
215+ Constructs a [`LineParameters`](@ref) instance.
216+
217+ # Arguments
218+
219+ - `Z`: Series impedance matrices \\ [Ω/m\\ ].
220+ - `Y`: Shunt admittance matrices \\ [S/m\\ ].
221+
222+ # Returns
223+
224+ - A [`LineParameters`](@ref) object with prelocated impedance and admittance matrices.
225+
226+ # Examples
227+
228+ ```julia
229+ params = $(FUNCTIONNAME) (Z, Y)
230+ ```
231+ """
196232 function LineParameters (Z:: Array{T,3} , Y:: Array{T,3} ) where {T<: Union{Complex{Float64},Complex{Measurement{Float64}}} }
197233 # Validate dimensions
198234 size (Z, 1 ) == size (Z, 2 ) || throw (DimensionMismatch (" Z matrix must be square" ))
@@ -203,12 +239,45 @@ struct LineParameters{T<:Union{Complex{Float64},Complex{Measurement{Float64}}}}
203239 end
204240end
205241
242+ """
243+ $(TYPEDEF)
244+
245+ Represents the electromagnetic transient (EMT) formulation set for cable or line systems, containing all required impedance and admittance models for internal and earth effects.
246+
247+ $(TYPEDFIELDS)
248+ """
206249struct EMTFormulation <: AbstractFormulationSet
250+ " Internal impedance formulation."
207251 internal_impedance:: InternalImpedanceFormulation
252+ " Earth impedance formulation."
208253 earth_impedance:: EarthImpedanceFormulation
254+ " Internal admittance formulation."
209255 internal_admittance:: InternalAdmittanceFormulation
256+ " Earth admittance formulation."
210257 earth_admittance:: EarthAdmittanceFormulation
211258
259+ @doc """
260+ $(TYPEDSIGNATURES)
261+
262+ Constructs an [`EMTFormulation`](@ref) instance.
263+
264+ # Arguments
265+
266+ - `internal_impedance`: Internal impedance formulation.
267+ - `earth_impedance`: Earth impedance formulation.
268+ - `internal_admittance`: Internal admittance formulation.
269+ - `earth_admittance`: Earth admittance formulation.
270+
271+ # Returns
272+
273+ - An [`EMTFormulation`](@ref) object containing the specified models.
274+
275+ # Examples
276+
277+ ```julia
278+ emt = $(FUNCTIONNAME) (internal_imp, earth_imp, internal_adm, earth_adm)
279+ ```
280+ """
212281 function EMTFormulation (;
213282 internal_impedance:: InternalImpedanceFormulation = nothing ,
214283 earth_impedance:: EarthImpedanceFormulation = nothing ,
@@ -230,6 +299,42 @@ function FormulationSet(::Val{:EMT}; internal_impedance::InternalImpedanceFormul
230299 internal_admittance, earth_admittance)
231300end
232301
302+ """
303+ $(TYPEDSIGNATURES)
304+
305+ Flattens a hierarchical cable system into 1D arrays of geometric and material properties for each cable component, suitable for matrix-based calculations and parameter extraction.
306+
307+ # Arguments
308+
309+ - `system`: The cable system to flatten ([`LineCableSystem`](@ref)).
310+
311+ # Returns
312+
313+ - Named tuple containing arrays for each geometric and material property:
314+ - `horz`: Horizontal positions \\ [m\\ ]
315+ - `vert`: Vertical positions \\ [m\\ ]
316+ - `r_in`: Internal conductor radii \\ [m\\ ]
317+ - `r_ext`: External conductor radii \\ [m\\ ]
318+ - `r_ins_in`: Internal insulator radii \\ [m\\ ]
319+ - `r_ins_ext`: External insulator radii \\ [m\\ ]
320+ - `rho_cond`: Conductor resistivities \\ [Ω·m\\ ]
321+ - `mu_cond`: Conductor relative permeabilities \\ [dimensionless\\ ]
322+ - `eps_cond`: Conductor relative permittivities \\ [dimensionless\\ ]
323+ - `rho_ins`: Insulator resistivities \\ [Ω·m\\ ]
324+ - `mu_ins`: Insulator relative permeabilities \\ [dimensionless\\ ]
325+ - `eps_ins`: Insulator relative permittivities \\ [dimensionless\\ ]
326+ - `tan_ins`: Insulator loss tangents \\ [dimensionless\\ ]
327+ - `phase_map`: Phase mapping indices \\ [dimensionless\\ ]
328+ - `cable_map`: Cable mapping indices \\ [dimensionless\\ ]
329+
330+ # Examples
331+
332+ ```julia
333+ flat = $(FUNCTIONNAME) (system)
334+ horz = flat.horz # Horizontal positions [m]
335+ rho_cond = flat.rho_cond # Conductor resistivities [Ω·m]
336+ ```
337+ """
233338function flatten_cablesystem (system:: LineCableSystem )
234339 # Count total components
235340 n_components = sum (length (cable. design_data. components) for cable in system. cables)
0 commit comments