Skip to content

Outputs

Jeremiah Goates edited this page Aug 3, 2023 · 20 revisions

MachLine can be configured to produce several different outputs once the flow solution has been computed. These outputs are specified in the Output section of the input file. There are essentially four types of output from MachLine: body results, control point results, wake results, and slice results. Each are discussed in the following sections.

Body Results

MachLine will output singularity strengths, velocities, pressures, etc. on the surface of the body being analyzed. If the mesh is being mirrored and the freestream flow is not symmetric with the mesh, then the calculated results on the mirrored half of the mesh may also be exported.

The following data are contained in the body vtk file (if the solver ran successfully and depending on input options):

Label Type Explanation
Phi_u Point Total potential on the upper surface of the body.
convex Point Whether the panels surrounding the vertex are entirely on the surface of the convex closure of the panels.
mu Point Doublet strength.
C_p_inc Cell Incompressible pressure coefficient.
C_p_2nd Cell Second-order pressure coefficient.
C_p_ise Cell Isentropic pressure coefficient.
C_p_sln Cell Slender-body pressure coefficient.
C_p_lin Cell Linear pressure coefficient.
N_discontinuous_edges Cell Number of edges of each panel which are considered discontinuous for the higher-order singularity distributions.
centroid Cell Location of the centroid of each panel.
dC_f Cell Dimensionless force vector acting on each panel due to external pressures.
distribution_order Cell Order of the singularity distribution on each panel (1: lower-order, 2: higher-order).
inclination Cell Panel inclination (1: subinclined, -1: superinclined).
normals Cell Panel normal vector.
sigma Cell Source strength.
v Cell Outer surface (total) velocity.

The reported surface velocities are always evaluated at the centroid of each panel. The surface pressures are the average across each panel.

Control Point Results

To solve the Dirichlet formulations, MachLine places a number of control points inside the configuration and enforces certain conditions at these control points.

The following data are contained in the control point vtk file (if the solver ran successfully and depending on input options):

Label Type Explanation
BC_type Point Which boundary condition is being enforced at each control point (explained below).
residual Point The residual of the computed solution at each control point.

The conditions which may be enforced at the control points are:

BC_type Description
1 Zero perturbation potential (for the Morino formulation).
2 Inner potential for source-free formulation.
3 Zero perturbation mass flux (linearized).
4 Doublet strength matching.
5 Zero normal velocity.

Wake Results

For lifting flows, MachLine will generate a wake mesh emanating from sharp trailing edges. This mesh is separate from the body mesh and so is exported separately. MachLine will export the shape of the wake and the doublet strength on the wake. Due to the nature of the wake, only one wake is ever generated, regardless of mesh mirroring and flow symmetry.

All data output in the wake vtk file are the same as explained above for the body, except that the wake has fewer relevant data.

Off-Body Results

To view off-body results, the user has the option to have MachLine calculate the velocity potentials at an arbitrary number of points. These points are supplied to MachLine via a csv file. The data at these points will be written out to a csv file and may then be rendered using data analysis software. The data available in the off-body output file are:

Label Explanation
x, y, z Point location, same as input.
phi_inf Freestream velocity potential.
phi_d Doublet-induced perturbation potential.
phi_s Source-induced perturbation potential.
phi Perturbation potential.
Phi Total potential.
v_inf_x, v_inf_y, v_inf_z Freestream velocity.
v_d_x, v_d_y, v_d_z Doublet-induced velocity perturbation.
v_s_x, v_s_y, v_s_z Source-induced velocity perturbation.
v_x, v_y, v_z Velocity pertubation.
V_x, V_y, V_z Total velocity.
V Total velocity magnitude.

Report File

The report file contains general information about the case, how and when it was run, the results and timing, and the input used.

The structure of the report file (assuming the run was successful) is as follows:

{
    "info" : {
        "generated_by" : "MachLine (c) 2023 USU Aerolab",
        "executed" : <EXECUTION DATE AND TIME>
    },
    "mesh_info" : {
        "N_body_panels" : <NUMBER OF PANELS ON THE BODY>,
        "N_body_vertices" : <NUMBER OF VERTICES (INCLUDING CLONES ALONG WAKE-SHEDDING EDGES) ON THE BODY>,
        "N_wake_panels" : <NUMBER OF PANELS ON THE WAKE>,
        "average_characteristic_length" : <AVERAGE CHARACTERISTIC LENGTH (SQUARE ROOT OF PANEL AREA) FOR THE BODY>
    },
    "solver_results" : {
        "solver_status_code" : <STATUS CODE, SEE BELOW>,
        "system_dimension" : <SIZE OF THE LINEAR SYSTEM SOLVED>,
        "timing" : {
            "system_sorting" : <TIME TAKEN TO SORT THE LINEAR SYSTEM>,
            "preconditioner" : <TIME TAKEN TO PRECONDITION THE LINEAR SYSTEM>,
            "matrix_solver" : <TIME TAKEN TO SOLVE THE LINEAR SYSTEM>
        },
        "iterations" : <TOTAL ITERATIONS USED BY LINEAR SOLVER (IF ITERATIVE)>,
        "residual" : {
            "max" : <MAXIMUM RESIDUAL OF ANY ONE LINE OF THE SYSTEM OF EQUATIONS>,
            "norm" : <NORM OF THE RESIDUAL VECTOR Ax-b>
        }
    },
    "pressure_calculations" : {
        "incompressible_rule" : {
            "max" : <MAXIMUM PRESSURE ANYWHERE ON THE BODY USING THE INCOMPRESSIBLE RULE>,
            "min" : <MINIMUM PRESSURE ANYWHERE ON THE BODY USING THE INCOMPRESSIBLE RULE>
        }
    },
    "total_forces" : {
        "Cx" : <TOTAL FORCE IN THE X DIRECTION>,
        "Cy" : <TOTAL FORCE IN THE Y DIRECTION>,
        "Cz" : <TOTAL FORCE IN THE Z DIRECTION>
    },
    "total_moments" : {
        "CMx" : <TOTAL MOMENT ABOUT THE X AXIS>,
        "CMy" : <TOTAL MOMENT ABOUT THE Y AXIS>,
        "CMz" : <TOTAL MOMENT ABOUT THE Z AXIS>
    },
    "input" : {
        <INPUT AS SUPPLIED TO MACHLINE>
        ...
    },
    "total_runtime" : <TOTAL (WALL) TIME REQUIRED TO RUN MACHLINE>
}

The solver status codes are as follow:

Code Meaning
0 Run was successful.
1 An invalid value was detected in either the A matrix of b vector after assembling the linear system of equations.
2 Either a control point was uninfluenced or a panel exerted no influence.
4 The linear system solver failed (non-convergence, singular matrix, etc.).
Clone this wiki locally