Outputs
The output tuple contains many items. The post_process
function docstring lists them. The purpose of showing this function here is not for you to manually run the fuction, but simply rather for you to see what the available outputs are.
DuctAPE.post_process
— Functionpost_process(
solver_options,
converged_states,
prepost_containers,
solve_container_caching,
solve_parameter_cache_vector,
solve_parameter_cache_dims,
operating_point,
reference_parameters,
boundary_layer_options,
A_bb_LU,
idmaps,
problem_dimensions,
multipoint_index;
write_outputs=options.write_outputs,
outfile=options.outfile,
checkoutfileexists=options.checkoutfileexists,
output_tuple_name=options.output_tuple_name,
verbose=options.verbose,
)
Post-process a converged nonlinear solve solution.
Arguments
solver_options::SolverOptionsType
: A SolverOptionsType object (also used for dispatch)converged_states::Vector{Float}
: the converged state variablesprepost_containers::NamedTuple
: the named tuple containing pre-allocated containers for the pre- and post-processing intermediate calculationssolve_container_cache::NamedTuple
: the cache and dimensions for intermediate values in the residual calculationsolve_parameter_cache_vector::Vector{Float}
: the applicably typed cache vector for the solve parameterssolve_parameter_cache_dims::NamedTuple
: the dimensions of the solver parametersoperating_point::OperatingPoint
: the operating point being analyzedreference_parameters::ReferenceParameters
: a ReferenceParameters objectBoundaryLayerOptions::BoundaryLayerOptions
: a BoundaryLayerOptions objectA_bb_LU::LinearAlgebra.LU
: LinearAlgebra LU factorization of the LHS matrixairfoils::Vector{AFType}
: A matrix of airfoil types associated with each of the blade elementsidmaps::NamedTuple
: A named tuple containing index mapping used in bookkeeping throughout solve and post-processproblem_dimensions::ProblemDimensions
: A ProblemDimensions object
Keyword Arguments
multipoint_index::Vector{Int}
: a one-dimensional vector containing the index of which multipoint analysis operating point is being analyzed.write_outputs=options.write_outputs::Vector{Bool}
: a vector with the same length as number of multipoints indicating if the outputs should be saved.outfile=options.outfile::Vector{String}
: a vector of file paths/names for where outputs should be writtencheckoutfileexists=options.checkoutfileexists::Bool
: a flag for whether existing files should be checked for or if blind overwriting is okay.output_tuple_name=options.output_tuple_name::Vector{String}
: the variable name(s) of the named tuple of outputs to be written.verbose::Bool=false
: flag to print verbose statements
Returns
outs::NamedTuple
: A named tuple containing all the output values including
Extended help
Full Outputs Information: Each for any level of these outputs with sub-levels, the higher level is a NamedTuple comprised of the of items listed below it. For example: outs.bodies.boundary_layers.stagnation_indices
bodies::NamedTuple
: NamedTuple containing outputs related to the duct and center bodypanel_strengths::Vector{Float}
: body vortex panel strengthsinviscid_thrust::Vector{Float}
: dimensional force in positive axial direction for duct and center body.body_force_coefficient::Vector{Float}
: force coefficients associated with dimensional inviscid thrust componentsviscous_drag::Vector{Float}
: dimensional force in negative axial direction for duct and center body (note: zero if boundary layer is turned off, and center body is always zero since no drag method is yet implemented for the center body)thrust_comp::Vector{Float}
:inviscid_thrust
.-viscous_drag
total_thrust::Float
: sum(thrust_comp
)induced_efficiency::Vector{Float}
: body-induced propulsive efficiencycp_in::Vector{Float}
: inside pressure distribution for all bodiescp_out::Vector{Float}
: inside pressure distribution for all bodiescp_casing_in::Vector{Float}
: inside pressure distribution for duct casingcp_casing_out::Vector{Float}
: outside pressure distribution for duct casingcasing_zpts::Vector{Float}
: axial component of casing control pointscp_nacelle_in::Vector{Float}
: inside pressure distribution for duct nacellecp_nacelle_out::Vector{Float}
: inside pressure distribution for duct nacellenacelle_zpts::Vector{Float}
: axial component of nacelle control pointscp_center_body_in::Vector{Float}
: inside pressure distribution for center bodiescp_center_body_out::Vector{Float}
: inside pressure distribution for center bodiescenter_body_zpts::Vector{Float}
: axial components of center body control pointsVtot_in::Matrix{Float}
: total inner surface velocity distribution for all bodies. row 1 is vz, row 2 is vr, columns are control points.Vtot_out::Matrix{Float}
: total outer surface velocity distribution for all bodies. row 1 is vz, row 2 is vr, columns are control points.Vtot_prejump::Matrix{Float}
: total surface velocity distribution before velocity jumps terms are applied for all bodies. row 1 is vz, row 2 is vr, columns are control points.vtot_body::Vector{Float}
: body-induced velocity on the body surfacesvtot_jump::Vector{Float}
: velocity due to jump terms in Fredholm equationvtot_wake::Vector{Float}
: wake-induced velocity on the body surfacesvtot_rotors::Vector{Float}
: rotor-induced velocity on the body surfacesVtan_in::Vector{Float}
: inner surface tangential velocity distribution for all bodiesVtan_out::Vector{Float}
: outer surface tangential velocity distribution for all bodiesvtan_casing_in::Vector{Float}
: inner surface tangential velocity distribution for duct casingvtan_casing_out::Vector{Float}
: outer surface tangential velocity distribution for duct casingvtan_nacelle_in::Vector{Float}
: inner surface tangential velocity distribution for duct nacellevtan_nacelle_out::Vector{Float}
: outer surface tangential velocity distribution for duct nacellevtan_center_body_in::Vector{Float}
: inner surface tangential velocity distribution for center bodyvtan_center_body_out::Vector{Float}
: outer surface tangential velocity distribution for center bodiesboundary_layers::NamedTuple
: NamedTuple containing information from the boundary layer solve (ifmodel_drag
inboundary_layer_options
was set to true).stagnation_indices::Vector{Int}
: indices surrounding stagnation pointupper_initial_states::Vector{Float}
: upper side initial statesupper_solved_states::Matrix{Float}
: upper side solved statesupper_solved_steps::Vector{Float}
: final steps associated with upper side solved stateslower_initial_states::Vector{Float}
: lower side initial stateslower_solved_states::Matrix{Float}
: lower side solved stateslower_solved_steps::Vector{Float}
: final steps associated with lower side solved statessurface_length_upper::Vector{Float}
: cumulative panel lengths on upper sidesurface_length_lower::Vector{Float}
: cumulative panel lengths on lower sidestag_point::Float
: curve length at which stagnation point is locatedsplit_ratio::Float
: ratio of lower to total surface lengthseparation_point_ratio_upper::Float
: ratio of upper side separation point location relative to upper side surface lengthseparation_point_ratio_lower::Float
: ratio of lower side separation point location relative to lower side surface lengthcdc_upper::Float
: drag coefficient times chord length for upper sidecdc_lower::Float
: drag coefficient times chord length for lower sidevtdotpv::Vector{Float}
: dot product of tangential velocity and panel vector for ductboundary_layer_functions_lower::NamedTuple
: NamedTuple of functions generated for use in boundary layer solution. For Head's method these are:edge_velocity::FLOWMath.Akima
: spline of surface velocity relative to surface lengthedge_acceleration::FLOWMath.Akima
: spline of derivatives ofedge_velocity
relative to surface lengthedge_density::FLOWMath.Akima
: spline of density relative to surface length (constant for Head's method)edge_viscosity::FLOWMath.Akima
: spline of viscosity relative to surface length (constant for Head's method)
boundary_layer_functions_upper::NamedTuple
: same asboundary_layer_functions_lower
but for upper side.
rotors::NamedTuple
: NamedTuple of items related to rotor(s)circulation::Matrix{Float}
: blade element circulation valuespanel_strengths::Matrix{Float}
: balde source panel strengthsefficiency::Vector{Float}
: rotor efficiencyinviscid_thrust::Vector{Float}
: inviscid componenets of rotor thrustinviscid_thrust_dist::Matrix{Float}
: inviscid thrust component for each blade elementviscous_thrust::Vector{Float}
: viscous componenets of rotor thrustviscous_thrust_dist::Martix{Float}
: viscous trhust component for each blade elementthrust::Vector{Float}
: total rotor thrustsCT::Vector{Float}
: rotor thrust coefficientsinviscid_torque::Vector{Float}
: inviscid components of rotor torqueinviscid_torque_dist::Matrix{Float}
:inviscid torque component for each blade elementviscous_torque::Vector{Float}
: viscous components of rotor torqueviscous_torque_dist::Matrix{Float}
: viscous torque component for each blade elementtorque::Vector{Float}
: total rotor torquesCQ::Vector{Float}
: rotor torque coefficientsinviscid_power::Vector{Float}
: inviscid components of rotor powerinviscid_power_dist::Matrix{Float}
: inviscid power component for each blade elementviscous_power::Vector{Float}
: viscous components of rotor powerviscous_power_dist::Matrix{Float}
: viscous power component for each blade elementpower::Vector{Float}
: total rotor powersCP::Vector{Float}
: rotor power coefficientscl::Matrix{Float}
: lift coefficient values for each blade elementcd::Matrix{Float}
: drag coefficient values for each blade elementalpha::Matrix{Float}
: angle of attack values for each blade elementbeta1::Matrix{Float}
: inflow angle values for each blade elementblade_normal_force_per_unit_span::Matrix{Float}
: normal force per unit span values for each blade elementblade_tangential_force_per_unit_span::Matrix{Float}
: tangential force per unit span values for each blade element
wake::NamedTuple
: NamedTuple containing items related to the wakepanel_strengths::Vector{Float}
: wake vortex panel strengths
totals::NamedTuple
: NamedTuple containing total system valuesthrust::Vector{Float}
: total system thrusttorque::Vector{Float}
: total system torquepower::Vector{Float}
: total system powerCT::Float
: total system thrust coefficientCQ::Float
: total system torque coefficientCP::Float
: total system power coefficienttotal_efficiency::Vector{Float}
: total propulsive efficiencyideal_efficiency::Vector{Float}
: ideal propulsive efficiency
intermediate_solve_values::NamedTuple
: NamedTuple containing items used inside the solver at their converged values.vz_rotor::Matrix{Float}
: axial velocity induced on rotor blade elementsvtheta_rotor::Matrix{Float}
: swirl velocity induced on rotor blade elementsreynolds::Matrix{Float}
: Reynolds numbers at each blade elementmach::Matrix{Float}
: Mach numbers at each blade elementCz_rotor::Matrix{Float}
: absolute frame axial velocity at rotor blade elementsCtheta_rotor::Matrix{Float}
: absolute frame swirl velocity at rotor blade elementsCmag_rotor::Matrix{Float}
: absolute frame meridional velocity at rotor blade elementsGamma_tilde::Matrix{Float}
: net circulation of upstream and current blade elementsH_tilde::Matrix{Float}
: net enthalpy of upstream and current blade elementsdeltaGamma2::Matrix{Float}
: squared circulation changes between adjacent blade elementsdeltaH::Matrix{Float}
: enthalpy changes between adjacent blade elementsvz_wake::Vector{Float}
: axial velocity induced on wake control pointsvr_wake::Vector{Float}
: radial velocity induced on wake control ointsCm_wake::Vector{Float}
: absolute frame meridional velocity at wake control pointsCm_avg::Vector{Float}
: absolute frame meridional velocity at wake panel nodes
reference_values::NamedTuple
: NamedTuple containing items used in computing coefficient valuesVinf::Float
: Freestream velocity used in coefficient definitionsVref::Float
: Reference velocity used in coefficient definitions
Returning the Pre-process Objects
Sometimes, it may be desireable to return the pre-process objects, including:
panels
which is a named tuple containing the body, rotor, and wake panel objectsivb
which are the unit induced velocities on the body panelssolve_parameter_tuple
which contains all of the solver parametersblade_elements
which contains all of the blade element geometry and airfoil informationlinsys
which contains all the linear system objects for the panel methodidmaps
which contains all the index mapping used throughout the solve and post-process.
In this case, we can use the return_inputs
keyword argument when calling the analyze
function to return a named tuple containing those pre-process objects.
outs, ins, success_flag = dt.analyze(
ducted_rotor, operating_point, reference_parameters; return_inputs=true
)