Skip to content
Cory edited this page Jul 10, 2023 · 7 revisions

The panel module (panel_mod) is contained in panel.f95. It contains the panel type and all its bound procedures, along with the integrals and dod container types.

panel Type

panel contains all information about a given panel and procedures for calculating the panel's geometry and influence. This type is the most extensive of all types within MachLine. As such, some aspects of its behavior bear explaining.

Awareness

Each panel know whether it has sources, whether it is in the wake, and what its distribution order is. it also knows the indices of all its neighbor panels.

Mirroring

When the user specifies in the input that the mesh is to be mirrored, MachLine does not explicitly create more panels. Rather, init_mirror is called for each panel. As part of this subroutine, the mirrored properties of each panel are calculated and stored. Thus, if the mesh is mirrored, each panel will store its centroid and the centroid of its mirror (centr and centr_mir), the transformation from global to local-scaled coordinates for both the original panel and the mirror (A_g_to_ls and A_g_to_ls_mir), etc.

Some properties are not affected by mirroring, such as the panel area. In addition, some are easily calculated as needed, such as the vertex indices for the mirrored panel, and so are not stored separately. As such, storing the mirror information for each panel, rather than explicitly storing a mirrored panel, is more efficient.

For many procedures bound to the panel type, an argument is whether the panel is to be mirrored.

Influence Calculations

For a panel, several subroutines are used in determining its influence on a given point in the flow. The most basic of these are calc_potential_influences and calc_velocity_influences. These return vectors (or matrix for velocities) of influences that must be dotted with the vector of source or doublet strengths in order to calculate the actual induced potential or velocity.

When the source and doublet strengths are initially unknown, these vectors (or matrices) are used directly (i.e. without dotting with the vector of source and doublet strengths) and their elements added into the AIC matrix. Once the source and doublet strengths are known, however, these may be dotted with the vectors of source and doublet strengths to determine the induced potentials and velocities. This is what is done in the subroutines calc_potentials and calc_velocities. Note that these subroutines require the source and doublet strength vectors from the entire mesh as arguments. The source and doublet strength vectors for each panel are assembled using get_source_strengths and get_doublet_strengths, respectively.

Similar to get_source_strengths and get_doublet_strengths, the functions get_source_parameters and get_doublet_parameters may be used to obtain the source and doublet distribution parameters based on the given vectors of source and doublet strengths for the entire mesh. These functions are primarily used to determine the local jump in velocity across a panel within the function get_velocity_jump.

integrals Type

integrals stores the F(M,N,K) and H(M,N,K) integrals necessary for calculating the source and doublet influences of a panel on a point. Not all of these are always used. For example, velocity influence coefficients require more integrals than potential influence coefficients. Also, if the panel is known to not have sources, then the integrals associated with source influence coefficients will never be calculated.

dod Type

dod stores information telling if/how a given panel falls in the domain of dependence of a given point. It stores a logical ```in_dod`` telling whether the panel intersects the DoD at all and a logical array telling whether each edge intersects the DoD. Whether vertices intersect the DoD is not stored as this information is easily calculated from the influence geometric parameters.

This is used only for supersonic calculations.

Clone this wiki locally