PANEL LOADS
Overview
REPTILE can extract panel loads for many locations across many load cases and output files in a single step. This is functionality is typically used when analyzing discrete zones of webs or skins. REPTILE currently provides three different approaches for extracting panel loads:
- Area-weighted averaged shell element running loads (--shell_avg)
- The "Panelizer" approach using shell element running loads (--panelizer)
- An alternative "Panelizer" that uses grid point forces (--panelizer_gpf)
Averaged Running Loads
REPTILE's --shell_avg mode calculates area-weighted average shell element running loads. Unlike the other methods, this approach does not account for gradients (or moments) across the panel.
<< insert figure >>
The shell element running loads are weighted by the area of each individual element, for example the x-direction average running load would be calculated according to the following formula:$$N_{xx,avg}=\frac{1}{A_{total}} \sum_i A_i \cdot N_{xx,i}$$NOTE: The --shell_avg mode currently does not transform the element loads in any way, which could be problematic if the element loads are oriented in different coordinate systems. This will be fixed soon.
The input file for --shell_avg is a text file that defines each panel. The format is as follows:
<< insert figure >>
The shell element running loads are weighted by the area of each individual element, for example the x-direction average running load would be calculated according to the following formula:$$N_{xx,avg}=\frac{1}{A_{total}} \sum_i A_i \cdot N_{xx,i}$$NOTE: The --shell_avg mode currently does not transform the element loads in any way, which could be problematic if the element loads are oriented in different coordinate systems. This will be fixed soon.
The input file for --shell_avg is a text file that defines each panel. The format is as follows:
- First the name of a panel is defined with the "DEF" keyword
- Until another "DEF" keyword is encountered, all subsequent lines contain element IDs associated with that panel
- REPTILE understands "Patran-Style" list syntax, which makes writing sequential lists more compact (e.g. "15:24" means all IDs from 15 to 24, "30:120:10" means IDs from 30 to 120 counting by 10's).
- Comments lines can be added with the "#" character
- Blank lines are ignored
DEF PANEL_1
41 42 43
44 45
# OPTIONAL COMMENT LINE
DEF PANEL_2
46:58
The command line for --shell_avg looks like this:
reptile --shell_avg -i file.def -o file.csv file1.xdb
Panelizer
REPTILE's --panelizer mode calculates area-weighted average shell element running loads as well as the gradient of load across the panel. This is useful in cases where a panel sees significant bending loads.
The panelizer approach could be described as a "heteroskedastic bilinear regression" which is just a fancy way of saying it finds the average values of the running loads as well as the slopes of a best-fit plane.
<< insert figure >>
The average running loads are calculated identically to the --shell_avg approach, except that the element loads are all transformed to a common coordinate system first. In addition, --panelizer also calculates the gradients of the running loads. For example, the slope of the Nxx with respect to the y-direction is calculated according to the following formula:
$$\frac{\partial N_{xx}}{\partial y}=\frac{ \sum_i (w_i \cdot c_{y,i} \cdot N_{xx,i}) - \sum_i (w_i \cdot c_{y,i}) \cdot \sum_i (w_i \cdot N_{xx,i}) }{ \sum_i (w_i \cdot c_{y,i}^2) - (\sum_i w_i \cdot c_{y,i})^2 }$$Where $w_i=\frac{A_i}{A_{total}}$ and $c_{y,i}$ is the location of the element centroid relative to the overall panel centroid in the local y-direction.
REPTILE calculates the gradient of the running load rather than the bending moment since this reduces the inputs required (the panel dimensions must be supplied to find the moment). If the bending moment is needed (which it often is) it can be calculated with the formula $M=\frac{a^3}{12} \cdot \frac{\partial N_{xx}}{\partial y}$, where $a$ is the length of the panel on the Nxx-loaded edge.
The --panelizer definition file consists of blocks of input associated with each panel. The format is very similar to the --node_forces definition file, except that only elements and a coordinate system need to be specified.
The panelizer approach could be described as a "heteroskedastic bilinear regression" which is just a fancy way of saying it finds the average values of the running loads as well as the slopes of a best-fit plane.
<< insert figure >>
The average running loads are calculated identically to the --shell_avg approach, except that the element loads are all transformed to a common coordinate system first. In addition, --panelizer also calculates the gradients of the running loads. For example, the slope of the Nxx with respect to the y-direction is calculated according to the following formula:
$$\frac{\partial N_{xx}}{\partial y}=\frac{ \sum_i (w_i \cdot c_{y,i} \cdot N_{xx,i}) - \sum_i (w_i \cdot c_{y,i}) \cdot \sum_i (w_i \cdot N_{xx,i}) }{ \sum_i (w_i \cdot c_{y,i}^2) - (\sum_i w_i \cdot c_{y,i})^2 }$$Where $w_i=\frac{A_i}{A_{total}}$ and $c_{y,i}$ is the location of the element centroid relative to the overall panel centroid in the local y-direction.
REPTILE calculates the gradient of the running load rather than the bending moment since this reduces the inputs required (the panel dimensions must be supplied to find the moment). If the bending moment is needed (which it often is) it can be calculated with the formula $M=\frac{a^3}{12} \cdot \frac{\partial N_{xx}}{\partial y}$, where $a$ is the length of the panel on the Nxx-loaded edge.
The --panelizer definition file consists of blocks of input associated with each panel. The format is very similar to the --node_forces definition file, except that only elements and a coordinate system need to be specified.
DEF PANEL_1
ELEMS 41 42 43 44 45
CSYS1 15.62 -1.34 104.61
CSYS2 1002
CSYS3 1003 1005
# OPTIONAL COMMENT LINE
DEF PANEL_2
ELEMS 46:58
COORD 201
The command line for --panelizer looks like this:
reptile --panelizer -i file.def -o file.csv file1.xdb
Also, you can use the "-INV" option to calculate invariants (max/min principal, max shear, von-mises) (Note: the invariants are calculated only from the average loads).
Panelizer (Grid Point Forces)
REPTILE also provides an alternative panelizer method (invoked with --panelizer_gpf) which uses grid point forces rather than element running loads. It uses the summation point and coordinate system to take cuts through the middle of the panel to get the total forces and moments.
<< insert figure >>
This method has the advantage of allowing elements other than shell elements (RODs, BARs, even solid elements) as part of the panel. Also, it calculates the moments directly, rather than just the running load gradients.
The disadvantages of this approach are that it does not produce running loads (only total loads) and that it requires one extra input: a summation point, though a future improvement will allow REPTILE to automatically use the panel centroid as the summation point.
The --panelizer_gpf definition file consists of blocks of input associated with each panel. The format is very similar to the --node_forces definition file, except that only elements, a summation point, and a coordinate system need to be specified.
<< insert figure >>
This method has the advantage of allowing elements other than shell elements (RODs, BARs, even solid elements) as part of the panel. Also, it calculates the moments directly, rather than just the running load gradients.
The disadvantages of this approach are that it does not produce running loads (only total loads) and that it requires one extra input: a summation point, though a future improvement will allow REPTILE to automatically use the panel centroid as the summation point.
The --panelizer_gpf definition file consists of blocks of input associated with each panel. The format is very similar to the --node_forces definition file, except that only elements, a summation point, and a coordinate system need to be specified.
DEF PANEL_1
ELEMS 41 42 43 44 45
SUMPT 19.27 -4.88 98.09
CSYS1 15.62 -1.34 104.61
CSYS2 1002
CSYS3 1003 1005
# OPTIONAL COMMENT LINE
DEF PANEL_2
ELEMS 46:58
SUMPT 1001
COORD 201
The command line for --panelizer_gpf looks like this:
reptile --panelizer_gpf -i file.def -o file.csv file1.xdb