@@ -29,7 +29,8 @@ Struct for storing the solution of the [solve!](@ref) function. Must contain all
2929- `moment_unrefined_dist`::MVector{U, Float64}: Averaged moments for unrefined sections [Nm]
3030- `cl_unrefined_dist`::MVector{U, Float64}: Averaged lift coefficients for unrefined sections [-]
3131- `cd_unrefined_dist`::MVector{U, Float64}: Averaged drag coefficients for unrefined sections [-]
32- - `cm_unrefined_dist`::MVector{U, Float64}: Averaged moment coefficients for unrefined sections [-]
32+ - `cm_unrefined_dist`::MVector{U, Float64}: Averaged airfoil moment coefficients for unrefined sections [-]
33+ - `moment_coeff_unrefined_dist`::MVector{U, Float64}: Summed `moment_frac`-referenced pitching-moment coefficient per unrefined section [-]
3334- `alpha_unrefined_dist`::MVector{U, Float64}: Averaged angles of attack for unrefined sections [rad]
3435- `solver_status`::SolverStatus: enum, see [SolverStatus](@ref)
3536"""
@@ -65,6 +66,7 @@ Struct for storing the solution of the [solve!](@ref) function. Must contain all
6566 cl_unrefined_dist:: MVector{U, T} = zeros (MVector{U, T})
6667 cd_unrefined_dist:: MVector{U, T} = zeros (MVector{U, T})
6768 cm_unrefined_dist:: MVector{U, T} = zeros (MVector{U, T})
69+ moment_coeff_unrefined_dist:: MVector{U, T} = zeros (MVector{U, T})
6870 alpha_unrefined_dist:: MVector{U, T} = zeros (MVector{U, T})
6971 x_airf_unrefined_dist:: Vector{MVector{3, T}} = [zeros (MVector{3 , T}) for _ in 1 : U]
7072 y_airf_unrefined_dist:: Vector{MVector{3, T}} = [zeros (MVector{3 , T}) for _ in 1 : U]
@@ -418,6 +420,7 @@ function solve!(solver::Solver{P, U, T}, body_aero::BodyAerodynamics, gamma_dist
418420 cl_unrefined_dist = solver. sol. cl_unrefined_dist
419421 cd_unrefined_dist = solver. sol. cd_unrefined_dist
420422 cm_unrefined_dist = solver. sol. cm_unrefined_dist
423+ moment_coeff_unrefined_dist = solver. sol. moment_coeff_unrefined_dist
421424 alpha_unrefined_dist = solver. sol. alpha_unrefined_dist
422425 x_airf_unrefined_dist = solver. sol. x_airf_unrefined_dist
423426 y_airf_unrefined_dist = solver. sol. y_airf_unrefined_dist
@@ -431,6 +434,7 @@ function solve!(solver::Solver{P, U, T}, body_aero::BodyAerodynamics, gamma_dist
431434 cl_unrefined_dist .= 0.0
432435 cd_unrefined_dist .= 0.0
433436 cm_unrefined_dist .= 0.0
437+ moment_coeff_unrefined_dist .= 0.0
434438 alpha_unrefined_dist .= 0.0
435439 for i in eachindex (x_airf_unrefined_dist)
436440 x_airf_unrefined_dist[i] .= 0.0
@@ -457,6 +461,7 @@ function solve!(solver::Solver{P, U, T}, body_aero::BodyAerodynamics, gamma_dist
457461 cl_unrefined_dist[target_unrefined_idx] += solver. sol. cl_dist[panel_idx]
458462 cd_unrefined_dist[target_unrefined_idx] += solver. sol. cd_dist[panel_idx]
459463 cm_unrefined_dist[target_unrefined_idx] += solver. sol. cm_dist[panel_idx]
464+ moment_coeff_unrefined_dist[target_unrefined_idx] += solver. sol. moment_coeff_dist[panel_idx]
460465 alpha_unrefined_dist[target_unrefined_idx] += solver. sol. alpha_dist[panel_idx]
461466
462467 # Accumulate geometry
@@ -471,7 +476,11 @@ function solve!(solver::Solver{P, U, T}, body_aero::BodyAerodynamics, gamma_dist
471476 panel_idx += 1
472477 end
473478
474- # Average coefficients and geometry (width stays summed)
479+ # Average coefficients and geometry. width and
480+ # moment_coeff_unrefined_dist stay summed: the latter is an
481+ # extensive per-panel contribution to the wing moment
482+ # coefficient, so a group's total moment is the sum over its
483+ # sections, not the mean.
475484 for i in 1 : wing. n_unrefined_sections
476485 target_unrefined_idx = unrefined_idx + i - 1
477486 if unrefined_section_counts[i] > 0
0 commit comments