Quick View

Here is a brief gallery of some stress distribution plots produced from LamAna.

Single Geometry Plots

We can plot stress distributions for a single laminate as a function of height, d or normalized thicknesses, k (default).

In [5]:
case1 = la.distributions.Case(load_params, mat_props)      # instantiate a User Input Case Object through distributions
case1.apply(single_geo)
case1.plot(normalized=False)
Converting mat_props to Standard Form.
User input geometries have been converted and set to Case.
_images/showcase_4_1.png
In [6]:
case1.plot(normalized=True, grayscale=True)
_images/showcase_5_0.png

We can superimpose insets and adjust the colors for publications quality.

In [7]:
case1.plot(annotate=True, colorblind=True, inset=True)
_images/showcase_7_0.png

Multiple Geometry Plots

With normalized layers, we can superimpose multiple stress distributions fpr laminates different geometries. Data for multiple laminates are encapsulated in a Case object.

In [10]:
case2.plot(title, colorblind=True, annotate=True)
_images/showcase_10_0.png

These distributions can be separated as desired into a panel of various plots.

In [11]:
case2.plot(title, colorblind=True, annotate=True, separate=True)
_images/showcase_12_0.png

Halfplots

The following has not been fully implemented yet, but demonstrates several multi-plots of tensile data. Each plot shows some pattern of interest, for example:

    1. constant total thickness; varied layer thicknesses
    1. constant outer layer
    1. constant inner layer
    1. constant middle layer
halfplots

halfplots

Panels of multi-plots are possible with a Cases object, a container for several Case objects.

In [13]:
cases1.plot(extrema=False)
_images/showcase_16_0.png

Data Analysis

Using a prior case, we can analyze the data calculations based on a given theorical model.

In [15]:
case1.model
Out[15]:
'Wilson_LT'

Data for each laminate is contained in a pandas DataFrame, a powerful data structure for data analysis.

In [17]:
#df = case1.frames
df = case1.frames[0]
df
#df.style                                                   # pandas 0.17.1, css on html table
#df.style.bar(subset=['stress_f (MPa/N)', 'strain'], color='#d65f5f')
Accessing frames method.
Out[17]:
layer side type matl ... strain_t stress_r (Pa/N) stress_t (Pa/N) stress_f (MPa/N)
0 1 Tens. outer HA ... 5.965e-06 274182.824 378730.663 0.379
1 1 Tens. outer HA ... 3.579e-06 164509.695 227238.398 0.227
2 2 Tens. inner PSu ... 3.579e-06 9854.181 12915.334 0.013
3 2 Tens. inner PSu ... 2.386e-06 6569.454 8610.223 0.009
4 3 Tens. middle HA ... 2.386e-06 109673.130 151492.265 0.151
5 3 Comp. middle HA ... -2.386e-06 -109673.130 -151492.265 -0.151
6 4 Comp. inner PSu ... -2.386e-06 -6569.454 -8610.223 -0.009
7 4 Comp. inner PSu ... -3.579e-06 -9854.181 -12915.334 -0.013
8 5 Comp. outer HA ... -3.579e-06 -164509.695 -227238.398 -0.227
9 5 Comp. outer HA ... -5.965e-06 -274182.824 -378730.663 -0.379

10 rows × 22 columns

Exporting Data

Finally, we can export data and parameters to Excel or .csv formats.

case1.to_xlsx()
ouput

ouput

Conclusion

With a few simple lines of code, we can use LamAna to quickly perform laminate analysis calculations, visulalize stress distributions and export data.

...and it’s FREE.