-
Notifications
You must be signed in to change notification settings - Fork 4
panel
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
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.
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.
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.
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
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
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.