Skip to content

Commit 4834c46

Browse files
docs(engine): add and update docstrings for structs, fields, and constructors
1 parent eccf5ba commit 4834c46

1 file changed

Lines changed: 120 additions & 15 deletions

File tree

src/Engine.jl

Lines changed: 120 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -68,13 +68,35 @@ $(TYPEDFIELDS)
6868
struct 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
175197
end
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+
"""
189206
struct 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
204240
end
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+
"""
206249
struct 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)
231300
end
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+
"""
233338
function 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

Comments
 (0)