From d569ecaab8a250dd8ec4d82e144351d1bd56eee8 Mon Sep 17 00:00:00 2001 From: rafaelpsilva07 Date: Sat, 26 Oct 2024 14:26:17 +0000 Subject: [PATCH] deploy: fb038b31331f315efddb2a780d194cd0c35fa4e4 --- .buildinfo | 2 +- ...ebooks_Stress_strain_of_laminate_12_1.png} | Bin ...tebooks_Stress_strain_of_laminate_8_1.png} | Bin _modules/composipy/core/material.html | 4 +- _modules/composipy/core/property.html | 38 +++++++++++++++--- _modules/composipy/core/strength.html | 4 +- _modules/composipy/core/structure.html | 4 +- .../composipy/nastranapi/pcomp_generator.html | 4 +- .../optimize/_maximize_buckling.html | 4 +- .../optimize/_minimize_panel_weight.html | 4 +- _modules/index.html | 4 +- .../Stress_strain_of_laminate.ipynb.txt | 18 +++++++++ _static/documentation_options.js | 2 +- genindex.html | 4 +- index.html | 4 +- notebooks/Critical_buckling_varying_BCs.html | 4 +- .../Critical_buckling_verification_study.html | 10 ++--- notebooks/Optimization_buckling.html | 4 +- notebooks/Stress_strain_of_laminate.html | 29 +++++++++++-- notebooks/Stress_strain_of_laminate.ipynb | 18 +++++++++ notebooks/index.html | 4 +- notebooks/verification_plates.html | 4 +- objects.inv | Bin 2396 -> 2415 bytes py-modindex.html | 4 +- quickstart.html | 5 ++- reference/NastranAPI.html | 4 +- reference/classes.html | 8 +++- reference/index.html | 4 +- reference/optimization_functions.html | 4 +- search.html | 4 +- searchindex.js | 2 +- 31 files changed, 146 insertions(+), 58 deletions(-) rename _images/{notebooks_Stress_strain_of_laminate_10_1.png => notebooks_Stress_strain_of_laminate_12_1.png} (100%) rename _images/{notebooks_Stress_strain_of_laminate_7_1.png => notebooks_Stress_strain_of_laminate_8_1.png} (100%) diff --git a/.buildinfo b/.buildinfo index c0f2ca0..3f62a48 100644 --- a/.buildinfo +++ b/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 9d6d6064531b60e40691576712c30d26 +config: 3bde6b5d49c18211cdb61f9a6defc594 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/_images/notebooks_Stress_strain_of_laminate_10_1.png b/_images/notebooks_Stress_strain_of_laminate_12_1.png similarity index 100% rename from _images/notebooks_Stress_strain_of_laminate_10_1.png rename to _images/notebooks_Stress_strain_of_laminate_12_1.png diff --git a/_images/notebooks_Stress_strain_of_laminate_7_1.png b/_images/notebooks_Stress_strain_of_laminate_8_1.png similarity index 100% rename from _images/notebooks_Stress_strain_of_laminate_7_1.png rename to _images/notebooks_Stress_strain_of_laminate_8_1.png diff --git a/_modules/composipy/core/material.html b/_modules/composipy/core/material.html index 683d448..544051e 100644 --- a/_modules/composipy/core/material.html +++ b/_modules/composipy/core/material.html @@ -8,7 +8,7 @@ - composipy.core.material — composipy 1.5.0 documentation + composipy.core.material — composipy 1.5.1 documentation @@ -120,7 +120,7 @@ -

composipy 1.5.0 documentation

+

composipy 1.5.1 documentation

diff --git a/_modules/composipy/core/property.html b/_modules/composipy/core/property.html index f5cf83c..062b630 100644 --- a/_modules/composipy/core/property.html +++ b/_modules/composipy/core/property.html @@ -8,7 +8,7 @@ - composipy.core.property — composipy 1.5.0 documentation + composipy.core.property — composipy 1.5.1 documentation @@ -120,7 +120,7 @@ -

composipy 1.5.0 documentation

+

composipy 1.5.1 documentation

@@ -508,7 +508,24 @@

Source code for composipy.core.property

         '''[A] Matrix as numpy.ndarray '''
 
         if not self._xiA is None:
-            raise NotImplementedError
+
+            U1, U2, U3, U4, U5 = self.plies.Invariants()
+            xi1, xi2, xi3, xi4 = self._xiA
+            T = self._total_thickness
+            A11 = T*(U1 + U2*xi1 + U3*xi3)
+            A12 = T*(-U3*xi3 + U4)
+            A13 = T*(U2*xi2/2 + U3*xi4)
+            A21 = T*(-U3*xi3 + U4)
+            A22 = T*(U1 - U2*xi1 + U3*xi3)
+            A23 = T*(U2*xi2/2 - U3*xi4)
+            A31 = T*(U2*xi2/2 + U3*xi4)
+            A32 = T*(U2*xi2/2 - U3*xi4)
+            A33 = T*(-U3*xi3 + U5)
+
+            self._A = np.array([[A11, A12, A13],
+                                [A21, A22, A23],
+                                [A31, A32, A33]])
+
         if self._A is None:
             self._A = np.zeros(9).reshape(3,3)
 
@@ -520,9 +537,18 @@ 

Source code for composipy.core.property

     
     @property
     def B(self):
-        '''[B] Matrix as numpy.ndarray '''
-        if not self._xiB is None:
-            raise NotImplementedError
+        '''[B] Matrix as numpy.ndarray
+
+        Note
+        ----
+        Matrix [B] will be zero if defined using lamination parameters.       
+        '''
+        if (not self._xiA is None
+                and not self._xiD is None):
+            self._A = np.array([[0., 0., 0.],
+                                [0., 0., 0.],
+                                [0., 0., 0.]])
+
         if self._B is None:
             self._B = np.zeros(9).reshape(3,3)
 
diff --git a/_modules/composipy/core/strength.html b/_modules/composipy/core/strength.html
index b7db3dd..8b7ee45 100644
--- a/_modules/composipy/core/strength.html
+++ b/_modules/composipy/core/strength.html
@@ -8,7 +8,7 @@
   
     
     
-    composipy.core.strength — composipy 1.5.0 documentation
+    composipy.core.strength — composipy 1.5.1 documentation
   
   
   
@@ -120,7 +120,7 @@
   
   
   
-    

composipy 1.5.0 documentation

+

composipy 1.5.1 documentation

diff --git a/_modules/composipy/core/structure.html b/_modules/composipy/core/structure.html index 9c00dbe..264957a 100644 --- a/_modules/composipy/core/structure.html +++ b/_modules/composipy/core/structure.html @@ -8,7 +8,7 @@ - composipy.core.structure — composipy 1.5.0 documentation + composipy.core.structure — composipy 1.5.1 documentation @@ -120,7 +120,7 @@ -

composipy 1.5.0 documentation

+

composipy 1.5.1 documentation

diff --git a/_modules/composipy/nastranapi/pcomp_generator.html b/_modules/composipy/nastranapi/pcomp_generator.html index 8d6d16d..c1521f5 100644 --- a/_modules/composipy/nastranapi/pcomp_generator.html +++ b/_modules/composipy/nastranapi/pcomp_generator.html @@ -8,7 +8,7 @@ - composipy.nastranapi.pcomp_generator — composipy 1.5.0 documentation + composipy.nastranapi.pcomp_generator — composipy 1.5.1 documentation @@ -120,7 +120,7 @@ -

composipy 1.5.0 documentation

+

composipy 1.5.1 documentation

diff --git a/_modules/composipy/optimize/_maximize_buckling.html b/_modules/composipy/optimize/_maximize_buckling.html index 9785cef..6b8255b 100644 --- a/_modules/composipy/optimize/_maximize_buckling.html +++ b/_modules/composipy/optimize/_maximize_buckling.html @@ -8,7 +8,7 @@ - composipy.optimize._maximize_buckling — composipy 1.5.0 documentation + composipy.optimize._maximize_buckling — composipy 1.5.1 documentation @@ -120,7 +120,7 @@ -

composipy 1.5.0 documentation

+

composipy 1.5.1 documentation

diff --git a/_modules/composipy/optimize/_minimize_panel_weight.html b/_modules/composipy/optimize/_minimize_panel_weight.html index 152de43..9c5bb49 100644 --- a/_modules/composipy/optimize/_minimize_panel_weight.html +++ b/_modules/composipy/optimize/_minimize_panel_weight.html @@ -8,7 +8,7 @@ - composipy.optimize._minimize_panel_weight — composipy 1.5.0 documentation + composipy.optimize._minimize_panel_weight — composipy 1.5.1 documentation @@ -120,7 +120,7 @@ -

composipy 1.5.0 documentation

+

composipy 1.5.1 documentation

diff --git a/_modules/index.html b/_modules/index.html index 152e482..85d3816 100644 --- a/_modules/index.html +++ b/_modules/index.html @@ -8,7 +8,7 @@ - Overview: module code — composipy 1.5.0 documentation + Overview: module code — composipy 1.5.1 documentation @@ -120,7 +120,7 @@ -

composipy 1.5.0 documentation

+

composipy 1.5.1 documentation

diff --git a/_sources/notebooks/Stress_strain_of_laminate.ipynb.txt b/_sources/notebooks/Stress_strain_of_laminate.ipynb.txt index ab9f1c6..b345f48 100644 --- a/_sources/notebooks/Stress_strain_of_laminate.ipynb.txt +++ b/_sources/notebooks/Stress_strain_of_laminate.ipynb.txt @@ -229,6 +229,15 @@ "df_strain.head(6) #display the first 6" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Note\n", + "The sequence of the DataFrame starts from the TOP OF THE LAYUP to the BOTTOM OF THE LAYUP, which is the reverse of the definition order.\n", + "When defining the laminate, the first element of the list corresponds to the bottom-most layer. This is especially important for non-symmetric laminates." + ] + }, { "cell_type": "code", "execution_count": 27, @@ -404,6 +413,15 @@ "df_stress.head(6) #display the first 6" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Note\n", + "The sequence of the DataFrame starts from the TOP OF THE LAYUP to the BOTTOM OF THE LAYUP, which is the reverse of the definition order.\n", + "When defining the laminate, the first element of the list corresponds to the bottom-most layer. This is especially important for non-symmetric laminates." + ] + }, { "cell_type": "code", "execution_count": 30, diff --git a/_static/documentation_options.js b/_static/documentation_options.js index 6d7ffe2..4cddc46 100644 --- a/_static/documentation_options.js +++ b/_static/documentation_options.js @@ -1,6 +1,6 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '1.5.0', + VERSION: '1.5.1', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/genindex.html b/genindex.html index 275fa2b..df0ef8d 100644 --- a/genindex.html +++ b/genindex.html @@ -8,7 +8,7 @@ - Index — composipy 1.5.0 documentation + Index — composipy 1.5.1 documentation @@ -120,7 +120,7 @@ -

composipy 1.5.0 documentation

+

composipy 1.5.1 documentation

diff --git a/index.html b/index.html index 5e521d2..cdf85fc 100644 --- a/index.html +++ b/index.html @@ -8,7 +8,7 @@ - Contents — composipy 1.5.0 documentation + Contents — composipy 1.5.1 documentation @@ -121,7 +121,7 @@ -

composipy 1.5.0 documentation

+

composipy 1.5.1 documentation

diff --git a/notebooks/Critical_buckling_varying_BCs.html b/notebooks/Critical_buckling_varying_BCs.html index 0f57027..dd92379 100644 --- a/notebooks/Critical_buckling_varying_BCs.html +++ b/notebooks/Critical_buckling_varying_BCs.html @@ -8,7 +8,7 @@ - Critical Buckling Examples With Varying Boundary Conditions — composipy 1.5.0 documentation + Critical Buckling Examples With Varying Boundary Conditions — composipy 1.5.1 documentation @@ -125,7 +125,7 @@ -

composipy 1.5.0 documentation

+

composipy 1.5.1 documentation

diff --git a/notebooks/Critical_buckling_verification_study.html b/notebooks/Critical_buckling_verification_study.html index f8a62fa..a6bf772 100644 --- a/notebooks/Critical_buckling_verification_study.html +++ b/notebooks/Critical_buckling_verification_study.html @@ -8,7 +8,7 @@ - Critical Buckling Verification Study — composipy 1.5.0 documentation + Critical Buckling Verification Study — composipy 1.5.1 documentation @@ -125,7 +125,7 @@ -

composipy 1.5.0 documentation

+

composipy 1.5.1 documentation

@@ -365,7 +365,7 @@

Critical Buckling Verification Study

Simply Supported study case (SSSS)#

This study case aims to verify the Rayleigh-Ritz implementation made with Composipy (Silva, R.P. 2023). Mathematical verification of the Rayleigh-Ritz implementation is made against analytical buckling equation and FEM model. The benchmarking example is a simply supported plate with biaxial load, which considers a quasi-isotropic layup [(45/-45)2/02/902]s and properties according Table below. This example came from Kassapoglou (2010).

-

09297766e2034b02b275656b2b9ddd06

+

b0cb615c85ac4f3586885105ea02054e

Dimension of the square plate is 100 mm and the load ratio (𝑁𝑦/𝑁𝑥) is 0.5. Analytical solution for this problem using Equation below is 234.7 N/mm.

\[\lambda = \pi^2\frac{[D_{11}m^4 +2(D_{12}+2D_{66})m^2n^2(a/b)^2 + D_{22}n^4(a/b)^4 ]}{a^2 (m^2 + (N_{x}/N_{y}) n^2 (a/b)^2)}\]
@@ -429,7 +429,7 @@

Simply Supported study case (SSSS)

Different boundary conditions#

Table below extends the study for different boundary conditions in order to verify polynomial functions presented in section 2.1.3. The results are verified against a NASTRAN FEM model and the maximum difference is 0.7%. Table 6 presents the first buckling mode deformation shape.

-

0c2d5103510a4bafbd373959da303470

+

26214181791d464fafc261b8bcedd1a5

Clamped study case (CCCC)#

@@ -501,7 +501,7 @@

Simply supported with one free edge study case (SSSC)

diff --git a/notebooks/Optimization_buckling.html b/notebooks/Optimization_buckling.html index 0c50d34..2ef3b12 100644 --- a/notebooks/Optimization_buckling.html +++ b/notebooks/Optimization_buckling.html @@ -8,7 +8,7 @@ - Optimization of a plate subjected to buckling loads — composipy 1.5.0 documentation + Optimization of a plate subjected to buckling loads — composipy 1.5.1 documentation @@ -125,7 +125,7 @@ -

composipy 1.5.0 documentation

+

composipy 1.5.1 documentation

diff --git a/notebooks/Stress_strain_of_laminate.html b/notebooks/Stress_strain_of_laminate.html index 1eb99a1..b6a4b4d 100644 --- a/notebooks/Stress_strain_of_laminate.html +++ b/notebooks/Stress_strain_of_laminate.html @@ -8,7 +8,7 @@ - Stress Strain Calculation of a Laminate — composipy 1.5.0 documentation + Stress Strain Calculation of a Laminate — composipy 1.5.1 documentation @@ -124,7 +124,7 @@ -

composipy 1.5.0 documentation

+

composipy 1.5.1 documentation

@@ -536,6 +536,9 @@

Stress Strain Calculation of a Laminate +

Note#

+

The sequence of the DataFrame starts from the TOP OF THE LAYUP to the BOTTOM OF THE LAYUP, which is the reverse of the definition order. When defining the laminate, the first element of the list corresponds to the bottom-most layer. This is especially important for non-symmetric laminates.

[27]:
 
@@ -561,7 +564,7 @@

Stress Strain Calculation of a Laminate

-../_images/notebooks_Stress_strain_of_laminate_7_1.png +../_images/notebooks_Stress_strain_of_laminate_8_1.png

Calculating stresses ply by ply in analysis direction and material direction.

@@ -685,6 +688,10 @@

Stress Strain Calculation of a Laminate +

Note#

+

The sequence of the DataFrame starts from the TOP OF THE LAYUP to the BOTTOM OF THE LAYUP, which is the reverse of the definition order. When defining the laminate, the first element of the list corresponds to the bottom-most layer. This is especially important for non-symmetric laminates.

[30]:
 
@@ -710,7 +717,8 @@

Stress Strain Calculation of a Laminate

-../_images/notebooks_Stress_strain_of_laminate_10_1.png +../_images/notebooks_Stress_strain_of_laminate_12_1.png +
@@ -744,6 +752,19 @@

Stress Strain Calculation of a Laminate diff --git a/quickstart.html b/quickstart.html index 5416317..00260b4 100644 --- a/quickstart.html +++ b/quickstart.html @@ -8,7 +8,7 @@ - Composipy — composipy 1.5.0 documentation + Composipy — composipy 1.5.1 documentation @@ -122,7 +122,7 @@ -

composipy 1.5.0 documentation

+

composipy 1.5.1 documentation

@@ -405,6 +405,7 @@

Create the Material Properties.

Define the Laminate.#

from composipy import LaminateProperty
+          #[BOTTOM  ------------------------ TOP]
 stacking = [-45, 45, 90, 0, 0, 0, 0, 90, 45, -45]
 laminate1 = LaminateProperty(stacking, mat_1)
 
diff --git a/reference/NastranAPI.html b/reference/NastranAPI.html index 2b68c6a..7b68ab6 100644 --- a/reference/NastranAPI.html +++ b/reference/NastranAPI.html @@ -8,7 +8,7 @@ - Nastran API functions — composipy 1.5.0 documentation + Nastran API functions — composipy 1.5.1 documentation @@ -122,7 +122,7 @@ -

composipy 1.5.0 documentation

+

composipy 1.5.1 documentation

diff --git a/reference/classes.html b/reference/classes.html index 505acbf..ef18cc2 100644 --- a/reference/classes.html +++ b/reference/classes.html @@ -8,7 +8,7 @@ - Composipy Classes — composipy 1.5.0 documentation + Composipy Classes — composipy 1.5.1 documentation @@ -122,7 +122,7 @@ -

composipy 1.5.0 documentation

+

composipy 1.5.1 documentation

@@ -480,6 +480,10 @@

LaminateProperty property B#

[B] Matrix as numpy.ndarray

+
+

Note

+

Matrix [B] will be zero if defined using lamination parameters.

+
diff --git a/reference/index.html b/reference/index.html index bce8879..39e53bc 100644 --- a/reference/index.html +++ b/reference/index.html @@ -8,7 +8,7 @@ - Code references — composipy 1.5.0 documentation + Code references — composipy 1.5.1 documentation @@ -122,7 +122,7 @@ -

composipy 1.5.0 documentation

+

composipy 1.5.1 documentation

diff --git a/reference/optimization_functions.html b/reference/optimization_functions.html index 6bd5ea2..650ff1a 100644 --- a/reference/optimization_functions.html +++ b/reference/optimization_functions.html @@ -8,7 +8,7 @@ - Composipy Optimization Functions — composipy 1.5.0 documentation + Composipy Optimization Functions — composipy 1.5.1 documentation @@ -122,7 +122,7 @@ -

composipy 1.5.0 documentation

+

composipy 1.5.1 documentation

diff --git a/search.html b/search.html index e8f2bff..4500f0d 100644 --- a/search.html +++ b/search.html @@ -7,7 +7,7 @@ - Search - composipy 1.5.0 documentation + Search - composipy 1.5.1 documentation @@ -122,7 +122,7 @@ -

composipy 1.5.0 documentation

+

composipy 1.5.1 documentation

diff --git a/searchindex.js b/searchindex.js index 7f2bdd4..8da1b43 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["index", "notebooks/Critical_buckling_varying_BCs", "notebooks/Critical_buckling_verification_study", "notebooks/Optimization_buckling", "notebooks/Stress_strain_of_laminate", "notebooks/index", "notebooks/verification_plates", "quickstart", "reference/NastranAPI", "reference/classes", "reference/index", "reference/optimization_functions"], "filenames": ["index.rst", "notebooks/Critical_buckling_varying_BCs.ipynb", "notebooks/Critical_buckling_verification_study.ipynb", "notebooks/Optimization_buckling.ipynb", "notebooks/Stress_strain_of_laminate.ipynb", "notebooks/index.rst", "notebooks/verification_plates.ipynb", "quickstart.rst", "reference/NastranAPI.rst", "reference/classes.rst", "reference/index.rst", "reference/optimization_functions.rst"], "titles": ["Contents", "Critical Buckling Examples With Varying Boundary Conditions", "Critical Buckling Verification Study", "Optimization of a plate subjected to buckling loads", "Stress Strain Calculation of a Laminate", "Composipy Examples", "comparison with compmech", "Composipy", "Nastran API functions", "Composipy Classes", "Code references", "Composipy Optimization Functions"], "terms": {"thi": [0, 2, 3, 4, 8, 9, 10, 11], "page": [0, 8, 9, 10, 11], "provid": 0, "document": 0, "composipi": [0, 2, 3, 4, 6, 8, 10], "project": [0, 3], "ha": 0, "function": [0, 2, 9, 10], "calcul": [0, 6, 9], "classic": 0, "lamin": [0, 1, 2, 3, 5, 8, 9, 11], "theori": 0, "buckl": [0, 5, 6, 9, 10], "paramet": [0, 1, 2, 3, 6, 8, 9, 11], "optim": [0, 2, 5, 7], "quick": 0, "start": 0, "code": [0, 2, 3], "refer": [0, 9], "exampl": [0, 2, 4, 7, 8, 9], "thank": 1, "bardel": 1, "equat": [1, 2], "implament": 1, "i": [1, 2, 3, 5, 8, 9, 11], "capabl": [1, 9], "simul": 1, "differ": [1, 7], "combin": [1, 2, 3, 7], "case": 1, "88": 1, "from": [1, 2, 3, 4, 6, 9], "orthotropicmateri": [1, 2, 3, 4, 6, 7, 10], "laminateproperti": [1, 2, 3, 4, 6, 7, 10], "platestructur": [1, 2, 3, 6, 7, 10], "matplotlib": [1, 4], "54": 1, "ply": [1, 3, 4, 7, 9], "materi": [1, 3, 4, 8, 9], "mpa": [1, 3, 4], "mm": [1, 2, 3, 6], "e1": [1, 2, 3, 4, 6, 7, 9, 11], "60800": [1, 3, 6, 7], "e2": [1, 2, 3, 4, 6, 7, 9, 11], "58250": [1, 3, 6, 7], "v12": [1, 2, 3, 4, 6, 7, 9, 11], "0": [1, 2, 3, 4, 6, 7, 8, 9, 11], "07": [1, 3, 6, 7], "g12": [1, 2, 3, 4, 6, 7, 9, 11], "4550": [1, 3, 6, 7], "t": [1, 2, 3, 4, 6, 7, 9, 11], "21": [1, 3, 4, 6, 7], "plate": [1, 2, 5, 6, 9, 11], "360": [1, 3, 6, 7], "b": [1, 2, 3, 6, 9, 11], "m": [1, 2, 3, 6, 7, 9, 11], "10": [1, 3, 4, 6, 7, 9], "discret": [1, 3], "x": [1, 2, 3, 9, 11], "direct": [1, 3, 4, 9, 11], "n": [1, 2, 3, 6, 7, 9, 11], "y": [1, 2, 3, 9, 11], "stack": [1, 2, 3, 4, 6, 7, 8, 9, 11], "sequenc": [1, 3, 8, 9, 11], "45": [1, 2, 3, 4, 6, 7, 8, 11], "90": [1, 2, 3, 4, 6, 7, 8, 9, 11], "1": [1, 2, 3, 4, 6, 7, 8, 9, 11], "symmetri": [1, 3], "55": [1, 4], "ply_1": [1, 6, 9], "l1": [1, 6], "56": [1, 4], "panel_ssss": 1, "constraint": [1, 2, 3, 6, 7, 9, 11], "57": [1, 4], "eigval": [1, 6, 9], "eigvec": [1, 6, 9], "buckling_analysi": [1, 2, 3, 6, 7, 9], "58": [1, 4], "arrai": [1, 4, 6, 9], "97": [1, 4], "04915682": 1, "144": [1, 6], "47730786": 1, "246": 1, "83882036": 1, "388": 1, "19669784": 1, "393": 1, "21258067": 1, "59": [1, 4], "plot_eigenvalu": [1, 2, 3, 7], "92": 1, "panel_cccc": 1, "5": [1, 2, 3, 4, 6, 9], "93": [1, 4], "138": 1, "79310181": 1, "146": [1, 6], "27293322": 1, "214": 1, "40196835": 1, "235": 1, "95368935": 1, "345": 1, "90300267": 1, "9": [1, 2, 4], "34248014e": 1, "16": [1, 4], "88156661e": 1, "14": [1, 3, 4], "2": [1, 2, 3, 4, 6, 9, 11], "02134850e": 1, "34440133e": 1, "15": [1, 4], "61245714e": 1, "12462063e": 1, "37191184e": 1, "09651915e": 1, "13": 1, "22922751e": 1, "8": 1, "64977457e": 1, "68030603e": 1, "94928446e": 1, "3": [1, 2, 3, 4], "17565273e": 1, "6": [1, 2, 3, 4], "43801745e": 1, "49531496e": 1, "48429879e": 1, "09319462e": 1, "02": [1, 2, 4], "26382491e": 1, "01": [1, 4], "94793823e": 1, "03873977e": 1, "74056918e": 1, "50428248e": 1, "23757124e": 1, "99938292e": 1, "44448141e": 1, "19772248e": 1, "4": [1, 2, 3, 4, 9], "03658981e": 1, "21566452e": 1, "40855121e": 1, "20345902e": 1, "94": [1, 4], "inlin": 1, "95": 1, "x0": [1, 2, 3, 6, 7, 9, 11], "tx": [1, 2, 3, 6, 7, 9], "ty": [1, 2, 3, 6, 7, 9], "tz": [1, 2, 3, 6, 7, 9], "xa": [1, 2, 3, 6, 7, 9], "y0": [1, 2, 3, 6, 7, 9], "yb": [1, 2, 3, 6, 7, 9], "panel_ssf": 1, "96": 1, "20": [1, 3, 4], "12080055": 1, "47": [1, 4], "13886913": 1, "5739614": 1, "156": 1, "53663617": 1, "185": 1, "19779529": 1, "54254543e": 1, "54682964e": 1, "02336476e": 1, "14117401e": 1, "25590066e": 1, "70857705e": 1, "87614772e": 1, "33465332e": 1, "01037659e": 1, "12": [1, 2, 4, 6, 9], "41333984e": 1, "62755574e": 1, "09823238e": 1, "76289507e": 1, "36766074e": 1, "13523615e": 1, "90309193e": 1, "03": [1, 4], "95127053e": 1, "05": 1, "12419786e": 1, "38168226e": 1, "43816796e": 1, "66068997e": 1, "04": [1, 4], "79805029e": 1, "46813288e": 1, "74685452e": 1, "51157619e": 1, "64137204e": 1, "67529764e": 1, "79731072e": 1, "43269351e": 1, "21653806e": 1, "06": 1, "66": [1, 2], "panel_cccc_nxi": 1, "67": [1, 4], "338": 1, "84283307": 1, "389": 1, "26571459": 1, "776": [1, 6], "82143839": 1, "824": 1, "28455938": 1, "882": 1, "94931083": 1, "85787017e": 1, "49320863e": 1, "53627846e": 1, "47863549e": 1, "63309599e": 1, "14383443e": 1, "82531544e": 1, "16269855e": 1, "98291546e": 1, "25169408e": 1, "24080163e": 1, "29270154e": 1, "71651923e": 1, "11230373e": 1, "89295317e": 1, "84301288e": 1, "7": [1, 2, 3, 4, 11], "76122020e": 1, "22800174e": 1, "29448845e": 1, "20803287e": 1, "64092132e": 1, "01135119e": 1, "65989832e": 1, "79699680e": 1, "68197373e": 1, "89453084e": 1, "26513867e": 1, "20302574e": 1, "92960329e": 1, "54281896e": 1, "68": [1, 4], "present": [2, 3, 4], "within": 2, "rafael": [2, 3, 7], "": [2, 8, 9], "master": [2, 3, 7], "dissert": [2, 3, 7], "composit": [2, 3, 7, 11], "semianalyt": 2, "model": [2, 3, 7], "AND": 2, "A": [2, 8, 9], "gradient": [2, 3, 7, 11], "base": [2, 3, 7, 9, 11], "access": 2, "full": [2, 9], "repositori": [2, 6, 7], "complet": [2, 7], "fem": 2, "rafaelpsilva07": [2, 7], "rafaelmscdissert": [2, 7], "The": [2, 3, 7, 9], "follow": [2, 7], "ar": [2, 3, 7, 9, 11], "part": 2, "ritz": [2, 3], "against": 2, "aim": 2, "verifi": 2, "rayleigh": 2, "implement": [2, 7], "made": 2, "silva": [2, 3, 7], "r": [2, 3], "p": 2, "2023": [2, 3, 7], "mathemat": 2, "analyt": [2, 3, 7], "benchmark": 2, "biaxial": 2, "load": [2, 4, 5, 7, 9, 10], "which": 2, "consid": [2, 3, 7, 9], "quasi": [2, 4], "isotrop": 2, "layup": [2, 9], "902": 2, "properti": [2, 3, 6, 9, 10], "accord": 2, "tabl": 2, "below": [2, 9], "came": 2, "kassapogl": 2, "2010": 2, "dimens": [2, 11], "squar": 2, "100": [2, 4, 7], "ratio": [2, 11], "\ud835\udc41\ud835\udc66": 2, "\ud835\udc41\ud835\udc65": 2, "solut": 2, "problem": [2, 3, 7], "us": [2, 3, 4, 5, 7, 8, 9, 11], "234": 2, "lambda": 2, "pi": 2, "frac": 2, "d_": 2, "11": [2, 4], "2d_": 2, "2n": 2, "22": [2, 4], "n_": 2, "result": [2, 11], "225": 2, "see": [2, 7, 9], "import": [2, 3, 4, 6, 7, 9], "137": [2, 4], "9e3": [2, 4], "7e3": [2, 4], "31": [2, 3, 4], "82e3": [2, 4], "1524": [2, 4], "nxx": [2, 3, 4, 6, 7, 9, 11], "nyi": [2, 3, 6, 9, 11], "mat": 2, "lam": 2, "pin": [2, 9, 11], "eigenvalu": [2, 3, 6, 7, 9], "eigenvector": [2, 3], "print": [2, 3, 6, 7, 9], "f": [2, 3, 6], "min": [2, 3], "1f": [2, 3], "extend": 2, "order": 2, "polynomi": 2, "section": 2, "maximum": 2, "first": [2, 4, 6, 8], "mode": 2, "495": 2, "89": [2, 4], "christo": 2, "design": [2, 3, 7], "analysi": [2, 4, 5, 6, 9], "structur": [2, 3, 5], "With": [2, 5, 7], "applic": [2, 7], "aerospac": [2, 7], "john": 2, "wilei": 2, "son": 2, "snipet": 3, "suppos": [3, 11], "major": 3, "core": 3, "method": [3, 10], "solv": [3, 7], "like": [3, 9], "k": [3, 4, 6, 9], "\u03bb": 3, "k_g": 3, "c": 3, "where": 3, "stiff": [3, 9], "matrix": [3, 6, 9], "geometr": [3, 9], "depend": 3, "intern": 3, "vector": 3, "constant": 3, "determin": 3, "shape": [3, 9, 11], "more": [3, 5, 7], "detail": 3, "about": 3, "formul": [3, 9], "found": 3, "geometri": 3, "angl": [3, 4, 8, 9], "degre": [3, 9], "condit": [3, 5, 7, 9, 11], "nxy": [3, 9, 11], "dproperti": [3, 9], "26": 3, "maximize_buckling_load": [3, 11], "max": 3, "w_1": 3, "w_3": 3, "g_1": 3, "2w_1": 3, "g_2": 3, "find": [3, 5], "pair": 3, "given": 3, "flexur": 3, "establish": 3, "co": 3, "theta": 3, "w_2": 3, "sin": 3, "w_4": 3, "\u03b8_l": 3, "continu": [3, 11], "dominium": 3, "h": 3, "thick": [3, 8, 9], "For": 3, "practic": [3, 7], "reason": 3, "onli": [3, 8, 9], "variabl": 3, "while": 3, "equal": 3, "zero": 3, "therefor": 3, "symmetr": 3, "balanc": 3, "how": 3, "interpret": 3, "them": 3, "convert": 3, "feasibl": [3, 11], "check": [3, 7], "total_thick": 3, "re": [3, 11], "panel_constraint": [3, 11], "plot": [3, 4, 11], "true": [3, 6, 9, 11], "penalti": [3, 11], "remov": 3, "gain": 3, "perform": [3, 5, 7], "w1": 3, "3f": 3, "w3": 3, "gener": [3, 5, 7, 10], "487": 3, "026": 3, "fals": [3, 6, 11], "677": 3, "083": 3, "minimize_panel_weight": [3, 11], "v": 3, "g_3": 3, "volum": 3, "submit": 3, "total": 3, "190": 3, "pereira": [3, 7], "da": [3, 7], "semi": [3, 7], "82f": [3, 7], "scienc": [3, 7], "instituto": [3, 7], "tecnol\u00f3gico": [3, 7], "de": [3, 7], "aeron\u00e1utica": [3, 7], "s\u00e3o": [3, 7], "jos\u00e9": [3, 7], "do": [3, 7], "campo": [3, 7], "miki": 3, "sugiyama": 3, "1993": 3, "optimum": 3, "aiaa": 3, "journal": 3, "j": 3, "921": 3, "922": 3, "2514": 3, "49033": 3, "gurdal": 3, "z": [3, 9], "haftka": 3, "element": [3, 6], "third": 3, "revis": 3, "expand": 3, "edit": 3, "springer": 3, "busi": 3, "media": 3, "1991": 3, "clt": 4, "17": 4, "pyplot": 4, "plt": 4, "panda": [4, 5, 7], "pd": [4, 9], "laminatestrength": [4, 7, 10], "mxx": [4, 7, 9], "object": [4, 5, 7, 9], "definit": 4, "strength_analysi": 4, "midplan": [4, 7, 9], "varepsilon_": 4, "0x": 4, "0y": 4, "gamma_": 4, "0xy": 4, "epsilon0": [4, 7, 9], "52630215e": 4, "89003289e": 4, "67758599e": 4, "46178270e": 4, "99304212e": 4, "90268796e": 4, "df_strain": 4, "calculate_strain": [4, 7, 9], "head": 4, "displai": 4, "posit": 4, "epsilonx": 4, "epsiloni": 4, "gammaxi": 4, "epsilon1": 4, "epsilon2": 4, "gamma12": 4, "top": [4, 9], "86e": 4, "31e": 4, "21e": 4, "06e": 4, "48e": 4, "17e": 4, "bot": 4, "02e": 4, "16e": 4, "25e": 4, "24e": 4, "88e": 4, "19e": 4, "40e": 4, "10e": 4, "00e": 4, "90e": 4, "59e": 4, "36e": 4, "45e": 4, "05e": 4, "27": 4, "df_strain_top": 4, "filter": 4, "grid": 4, "xlabel": 4, "ylabel": 4, "number": [4, 9, 11], "lt": [4, 6], "line": 4, "line2d": 4, "0x1dee71542e0": 4, "gt": [4, 6], "df_stress": 4, "calculate_stress": [4, 9], "sigmax": 4, "sigmai": 4, "tauxi": 4, "sigma1": 4, "sigma2": 4, "tau12": 4, "121": 4, "52": 4, "65": 4, "77": 4, "152": 4, "36": 4, "34": 4, "103": 4, "25": 4, "133": 4, "18": 4, "28": 4, "35": 4, "124": 4, "33": 4, "80": 4, "175": 4, "99": 4, "32": 4, "64": 4, "48": [4, 6], "141": [4, 6], "183": 4, "24": 4, "37": 4, "122": 4, "78": 4, "51": 4, "30": [4, 11], "df_stress_top": 4, "0x1dee72b1790": 4, "veri": 5, "handi": 5, "exploratori": 5, "It": [5, 7, 9], "built": 5, "most": [5, 7], "power": [5, 7], "python": [5, 7], "numer": [5, 7], "librari": [5, 7], "so": [5, 7], "user": [5, 7, 11], "can": [5, 7, 9], "think": [5, 7], "same": [5, 7], "wai": [5, 7], "numpi": [5, 6, 7, 9], "scipi": [5, 6, 7, 11], "In": [5, 7], "fact": [5, 7], "especi": [5, 7], "leverag": [5, 7], "data": [5, 7], "driven": [5, 7], "cultur": [5, 7], "compani": [5, 7], "build": [5, 7, 9], "respons": [5, 7], "surfac": [5, 7], "sampl": [5, 7], "much": [5, 7], "interest": [5, 7], "jupyt": 5, "notebook": 5, "among": 5, "critic": [5, 7], "vari": [5, 7], "boundari": [5, 7, 9, 11], "verif": 5, "studi": 5, "subject": [5, 7], "stress": [5, 7, 9], "strain": [5, 7, 9], "140": 6, "np": [6, 7], "sy": 6, "linalg": 6, "eig": 6, "spars": 6, "csc_matrix": 6, "allclos": 6, "path": 6, "d": [6, 9], "append": 6, "time": [6, 9], "142": 6, "panel": [6, 7, 10], "ti": [6, 8], "kg": [6, 9], "k_kg": [6, 9], "calc_k_kg": 6, "done": 6, "second": 6, "valu": [6, 11], "4665584564208984": 6, "52457849227318": 6, "4968631267547607": 6, "149": 6, "lb": 6, "silent": [6, 9], "run": 6, "linear": [6, 9], "solver": [6, 8], "eigsh": 6, "finish": 6, "52457849227213": 6, "115": 6, "33986497435149": 6, "60711330382483": 6, "194": 6, "09686865625642": 6, "221": 6, "57771298566516": 6, "52457849": 6, "33986497": 6, "6071133": 6, "09686866": 6, "57771299": 6, "222": 6, "15591277": 6, "308": 6, "86123656": 6, "309": 6, "48317985": 6, "368": 6, "99999417": 6, "370": 6, "08445037": 6, "436": 6, "71118574": 6, "461": 6, "47246526": 6, "462": 6, "33970189": 6, "561": 6, "6366027": 6, "563": 6, "3834036": 6, "599": 6, "62788016": 6, "600": 6, "77815938": 6, "656": 6, "8345812": 6, "658": 6, "36588959": 6, "37052798": 6, "801": 6, "3471514": 6, "802": 6, "96144218": 6, "803": 6, "91915658": 6, "804": 6, "12792152": 6, "898": 6, "07786955": 6, "static": 6, "145": 6, "skin": 6, "laminaprop": 6, "p1": 6, "group": 6, "plyt": 6, "u1tx": 6, "u1rx": 6, "u2tx": 6, "u2rx": 6, "v1tx": 6, "v1rx": 6, "v2tx": 6, "v2rx": 6, "w1tx": 6, "w1rx": 6, "w2tx": 6, "w2rx": 6, "u1ti": 6, "u1ri": 6, "u2ti": 6, "u2ri": 6, "v1ty": 6, "v1ry": 6, "v2ty": 6, "v2ry": 6, "w1ty": 6, "w1ry": 6, "w2ty": 6, "w2ry": 6, "147": 6, "k0_1": 6, "calc_k0": 6, "kg0_1": 6, "calc_kg0": 6, "k0": 6, "kg0": 6, "77815939": 6, "34715129": 6, "96144214": 6, "12792151": 6, "07786953": 6, "148": 6, "432x432": 6, "type": [6, 8, 9, 11], "39": 6, "class": [6, 10], "float64": 6, "186624": 6, "store": 6, "compress": [6, 9], "row": 6, "format": [6, 8, 11], "address": 7, "challeng": 7, "industri": 7, "offer": 7, "tool": 7, "help": 7, "engin": [7, 11], "dure": 7, "process": 7, "util": 7, "orient": 7, "program": 7, "nativ": 7, "ensur": 7, "intuit": 7, "workflow": 7, "easi": 7, "integr": 7, "exist": 7, "abd": [7, 9], "pip": 7, "setup": 7, "py": 7, "mat_1": 7, "laminate1": 7, "ndarrai": [7, 9], "xia": [7, 9], "extens": [7, 9], "xid": [7, 9], "bend": [7, 9], "laminate_strength": 7, "also": 7, "rx": [7, 9], "ry": [7, 9], "rz": [7, 9], "abl": 7, "plane": 7, "If": [7, 8, 11], "you": 7, "mai": 7, "want": 7, "2024": 7, "v1": 7, "zenodo": 7, "http": 7, "doi": 7, "org": 7, "5281": 7, "10546621": 7, "contain": [8, 9, 10, 11], "nastranapi": 8, "pcomp_gener": 8, "build_pcomp": 8, "midi": 8, "pid": 8, "z0": 8, "sout": 8, "fiber": 8, "sourc": [8, 9, 11], "list": [8, 9, 11], "iter": [8, 9], "int": [8, 9], "pli": [8, 9], "id": 8, "appli": [8, 11], "all": 8, "float": [8, 9, 11], "default": [8, 9, 11], "offset": 8, "str": [8, 9], "output": 8, "request": 8, "option": [8, 9, 11], "ye": 8, "NO": 8, "last": 8, "set": 8, "return": [8, 9, 11], "text": 8, "card": 8, "build_sequ": 8, "string": 8, "latex": 8, "uniti": 8, "pm45_": 8, "0_2": 8, "_1": 8, "out": [8, 9], "main": 9, "instanc": 9, "packag": 9, "t1": 9, "c1": 9, "t2": 9, "c2": 9, "name": 9, "none": [9, 11], "creat": 9, "an": 9, "young": [9, 11], "modulu": [9, 11], "1st": 9, "2nd": 9, "poisson": [9, 11], "shear": [9, 11], "tension": 9, "allow": 9, "129500": 9, "9370": 9, "38": 9, "5240": 9, "q_0": 9, "get": 9, "complianc": 9, "lamina": 9, "130867": 9, "31382151": 9, "3598": 9, "19426713": 9, "9468": 9, "93228191": 9, "invari": 9, "u1": 9, "u2": 9, "u3": 9, "u4": 9, "u5": 9, "self": 9, "3x3": 9, "need": 9, "defin": [9, 11], "inform": 9, "some": 9, "characterist": 9, "chapter": 9, "dict": 9, "To": 9, "xia1": 9, "xia2": 9, "xia3": 9, "xia4": 9, "xib": 9, "xib1": 9, "xib2": 9, "xib3": 9, "xib4": 9, "xid1": 9, "xid2": 9, "xid3": 9, "xid4": 9, "singl": 9, "laminate_1": 9, "retunr": 9, "laminate_2": 9, "matric": 9, "size": [9, 11], "parallel": 9, "axi": [9, 11], "forc": 9, "along": [9, 11], "argument": 9, "clamp": 9, "Or": 9, "dictionari": 9, "describ": 9, "attent": 9, "rotat": 9, "aren": 9, "around": 9, "thei": [9, 11], "relat": 9, "That": 9, "mean": 9, "turn": 9, "move": 9, "num_eigvalu": 9, "bool": [9, 11], "comput": 9, "calc_k_kg_abd": 9, "stif": 9, "tupl": 9, "calc_k_kg_d": 9, "myi": 9, "mxy": 9, "evalu": 9, "strength": 9, "well": 9, "bottom": 9, "both": 9, "membran": 9, "xy": [9, 11], "moment": 9, "datafram": 9, "epsilonx0": 9, "epsilony0": 9, "epsilonxy0": 9, "kappax0": 9, "kappay0": 9, "kappaxy0": 9, "attribut": 10, "api": 10, "maxim": 10, "minim": 10, "weight": 10, "nastran": 10, "pcomp": 10, "functiosn": 11, "algorithm": 11, "sinc": 11, "Then": 11, "converet": 11, "somehow": 11, "tol": 11, "points_to_plot": 11, "normal": 11, "dafault": 11, "scipyminim": 11, "optiion": 11, "point": 11, "region": 11, "triangl": 11, "delimit": 11, "parabola": 11, "natur": 11, "initi": 11}, "objects": {"composipy": [[9, 0, 1, "", "LaminateProperty"], [9, 0, 1, "", "LaminateStrength"], [9, 0, 1, "", "OrthotropicMaterial"], [9, 0, 1, "", "PlateStructure"]], "composipy.LaminateProperty": [[9, 1, 1, "", "A"], [9, 1, 1, "", "ABD"], [9, 1, 1, "", "B"], [9, 1, 1, "", "D"], [9, 1, 1, "", "xiA"], [9, 1, 1, "", "xiD"]], "composipy.LaminateStrength": [[9, 2, 1, "", "calculate_strain"], [9, 2, 1, "", "calculate_stress"], [9, 2, 1, "", "epsilon0"]], "composipy.OrthotropicMaterial": [[9, 2, 1, "", "Invariants"], [9, 1, 1, "", "Q_0"]], "composipy.PlateStructure": [[9, 2, 1, "", "buckling_analysis"], [9, 2, 1, "", "calc_K_KG_ABD"], [9, 2, 1, "", "calc_K_KG_D"]], "composipy.nastranapi": [[8, 3, 0, "-", "pcomp_generator"]], "composipy.nastranapi.pcomp_generator": [[8, 4, 1, "", "build_pcomp"], [8, 4, 1, "", "build_sequence"]], "composipy.optimize": [[11, 4, 1, "", "maximize_buckling_load"], [11, 4, 1, "", "minimize_panel_weight"]]}, "objtypes": {"0": "py:class", "1": "py:property", "2": "py:method", "3": "py:module", "4": "py:function"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "property", "Python property"], "2": ["py", "method", "Python method"], "3": ["py", "module", "Python module"], "4": ["py", "function", "Python function"]}, "titleterms": {"content": [0, 5, 10], "critic": [1, 2, 3], "buckl": [1, 2, 3, 7, 11], "exampl": [1, 5], "With": 1, "vari": 1, "boundari": [1, 2, 3], "condit": [1, 2], "import": 1, "composipi": [1, 5, 7, 9, 11], "object": [1, 3], "creat": [1, 7], "properti": [1, 7, 8], "pin": 1, "nxx": 1, "clamp": [1, 2], "nxy": 1, "nyi": 1, "free": [1, 2], "edg": [1, 2], "custom": 1, "load": [1, 3, 11], "verif": 2, "studi": 2, "simpli": 2, "support": 2, "case": 2, "ssss": 2, "differ": 2, "cccc": 2, "one": 2, "sssc": 2, "comparison": [2, 6], "nastran": [2, 8], "deform": 2, "shape": [2, 7], "refer": [2, 3, 7, 10], "optim": [3, 11], "plate": [3, 7], "subject": 3, "analysi": [3, 7], "maxim": [3, 11], "function": [3, 8, 11], "g1": 3, "g2": 3, "without": 3, "minim": [3, 11], "panel": [3, 11], "weight": [3, 11], "stress": 4, "strain": 4, "calcul": [4, 7], "lamin": [4, 7], "compmech": 6, "what": 7, "i": 7, "main": 7, "featur": 7, "how": 7, "instal": 7, "directli": 7, "from": 7, "pypi": 7, "built": 7, "sourc": 7, "quick": 7, "start": 7, "materi": 7, "defin": 7, "stiffnn": 7, "matrix": 7, "paramet": 7, "strength": 7, "structur": 7, "plot": 7, "mode": 7, "theoret": 7, "api": 8, "gener": 8, "pcomp": 8, "class": 9, "orthotropicmateri": 9, "laminateproperti": 9, "platestructur": 9, "laminatestrength": 9, "code": 10}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "nbsphinx": 4, "sphinx": 57}, "alltitles": {"Contents": [[0, "contents"]], "Contents:": [[0, null], [5, null], [10, null]], "Critical Buckling Examples With Varying Boundary Conditions": [[1, "Critical-Buckling-Examples-With-Varying-Boundary-Conditions"]], "Importing composipy objects and creating properties": [[1, "Importing-composipy-objects-and-creating-properties"]], "Pinned Nxx": [[1, "Pinned-Nxx"]], "Clamped Nxy and Nyy": [[1, "Clamped-Nxy-and-Nyy"]], "Free edge Nxx (custom boundary condition)": [[1, "Free-edge-Nxx-(custom-boundary-condition)"]], "Nxy Loading": [[1, "Nxy-Loading"]], "Critical Buckling Verification Study": [[2, "Critical-Buckling-Verification-Study"]], "Simply Supported study case (SSSS)": [[2, "Simply-Supported-study-case-(SSSS)"]], "Different boundary conditions": [[2, "Different-boundary-conditions"]], "Clamped study case (CCCC)": [[2, "Clamped-study-case-(CCCC)"]], "Simply supported with one free edge study case (SSSC)": [[2, "Simply-supported-with-one-free-edge-study-case-(SSSC)"]], "Comparison with NASTRAN deformed shape": [[2, "Comparison-with-NASTRAN-deformed-shape"]], "References": [[2, "References"], [3, "References"]], "Optimization of a plate subjected to buckling loads": [[3, "Optimization-of-a-plate-subjected-to-buckling-loads"]], "Plate buckling analysis": [[3, "Plate-buckling-analysis"]], "Maximize Critical Buckling Load": [[3, "Maximize-Critical-Buckling-Load"]], "Objective function with boundary g1 and g2": [[3, "Objective-function-with-boundary-g1-and-g2"]], "Objective function without boundary g1 and g2": [[3, "Objective-function-without-boundary-g1-and-g2"]], "Minimize Panel Weight": [[3, "Minimize-Panel-Weight"]], "Stress Strain Calculation of a Laminate": [[4, "Stress-Strain-Calculation-of-a-Laminate"]], "Composipy Examples": [[5, "composipy-examples"]], "comparison with compmech": [[6, "comparison-with-compmech"]], "Composipy": [[7, "composipy"]], "What it is": [[7, "what-it-is"]], "Main features": [[7, "main-features"]], "How to install": [[7, "how-to-install"]], "Directly From PYPI": [[7, "directly-from-pypi"]], "Built from source": [[7, "built-from-source"]], "Quick start": [[7, "quick-start"]], "Create the Material Properties.": [[7, "create-the-material-properties"]], "Define the Laminate.": [[7, "define-the-laminate"]], "Calculate Stiffnnes Matrix and Lamination Parameters": [[7, "calculate-stiffnnes-matrix-and-lamination-parameters"]], "Create a Laminate Strength Analysis.": [[7, "create-a-laminate-strength-analysis"]], "Create a Plate Structure for Buckling Analysis": [[7, "create-a-plate-structure-for-buckling-analysis"]], "Calculate Buckling": [[7, "calculate-buckling"]], "Plot Buckling shape mode": [[7, "plot-buckling-shape-mode"]], "Theoretical References": [[7, "theoretical-references"]], "Nastran API functions": [[8, "nastran-api-functions"]], "Generator of NASTRAN PCOMP property": [[8, "module-composipy.nastranapi.pcomp_generator"]], "Composipy Classes": [[9, "composipy-classes"]], "OrthotropicMaterial": [[9, "orthotropicmaterial"]], "LaminateProperty": [[9, "laminateproperty"]], "PlateStructure": [[9, "platestructure"]], "LaminateStrength": [[9, "laminatestrength"]], "Code references": [[10, "code-references"]], "Composipy Optimization Functions": [[11, "composipy-optimization-functions"]], "Maximize Buckling Load": [[11, "maximize-buckling-load"]], "Minimize panel weight": [[11, "minimize-panel-weight"]]}, "indexentries": {"build_pcomp() (in module composipy.nastranapi.pcomp_generator)": [[8, "composipy.nastranapi.pcomp_generator.build_pcomp"]], "build_sequence() (in module composipy.nastranapi.pcomp_generator)": [[8, "composipy.nastranapi.pcomp_generator.build_sequence"]], "composipy.nastranapi.pcomp_generator": [[8, "module-composipy.nastranapi.pcomp_generator"]], "module": [[8, "module-composipy.nastranapi.pcomp_generator"]], "a (composipy.laminateproperty property)": [[9, "composipy.LaminateProperty.A"]], "abd (composipy.laminateproperty property)": [[9, "composipy.LaminateProperty.ABD"]], "b (composipy.laminateproperty property)": [[9, "composipy.LaminateProperty.B"]], "d (composipy.laminateproperty property)": [[9, "composipy.LaminateProperty.D"]], "invariants() (composipy.orthotropicmaterial method)": [[9, "composipy.OrthotropicMaterial.Invariants"]], "laminateproperty (class in composipy)": [[9, "composipy.LaminateProperty"]], "laminatestrength (class in composipy)": [[9, "composipy.LaminateStrength"]], "orthotropicmaterial (class in composipy)": [[9, "composipy.OrthotropicMaterial"]], "platestructure (class in composipy)": [[9, "composipy.PlateStructure"]], "q_0 (composipy.orthotropicmaterial property)": [[9, "composipy.OrthotropicMaterial.Q_0"]], "buckling_analysis() (composipy.platestructure method)": [[9, "composipy.PlateStructure.buckling_analysis"]], "calc_k_kg_abd() (composipy.platestructure method)": [[9, "composipy.PlateStructure.calc_K_KG_ABD"]], "calc_k_kg_d() (composipy.platestructure method)": [[9, "composipy.PlateStructure.calc_K_KG_D"]], "calculate_strain() (composipy.laminatestrength method)": [[9, "composipy.LaminateStrength.calculate_strain"]], "calculate_stress() (composipy.laminatestrength method)": [[9, "composipy.LaminateStrength.calculate_stress"]], "epsilon0() (composipy.laminatestrength method)": [[9, "composipy.LaminateStrength.epsilon0"]], "xia (composipy.laminateproperty property)": [[9, "composipy.LaminateProperty.xiA"]], "xid (composipy.laminateproperty property)": [[9, "composipy.LaminateProperty.xiD"]], "maximize_buckling_load() (in module composipy.optimize)": [[11, "composipy.optimize.maximize_buckling_load"]], "minimize_panel_weight() (in module composipy.optimize)": [[11, "composipy.optimize.minimize_panel_weight"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["index", "notebooks/Critical_buckling_varying_BCs", "notebooks/Critical_buckling_verification_study", "notebooks/Optimization_buckling", "notebooks/Stress_strain_of_laminate", "notebooks/index", "notebooks/verification_plates", "quickstart", "reference/NastranAPI", "reference/classes", "reference/index", "reference/optimization_functions"], "filenames": ["index.rst", "notebooks/Critical_buckling_varying_BCs.ipynb", "notebooks/Critical_buckling_verification_study.ipynb", "notebooks/Optimization_buckling.ipynb", "notebooks/Stress_strain_of_laminate.ipynb", "notebooks/index.rst", "notebooks/verification_plates.ipynb", "quickstart.rst", "reference/NastranAPI.rst", "reference/classes.rst", "reference/index.rst", "reference/optimization_functions.rst"], "titles": ["Contents", "Critical Buckling Examples With Varying Boundary Conditions", "Critical Buckling Verification Study", "Optimization of a plate subjected to buckling loads", "Stress Strain Calculation of a Laminate", "Composipy Examples", "comparison with compmech", "Composipy", "Nastran API functions", "Composipy Classes", "Code references", "Composipy Optimization Functions"], "terms": {"thi": [0, 2, 3, 4, 8, 9, 10, 11], "page": [0, 8, 9, 10, 11], "provid": 0, "document": 0, "composipi": [0, 2, 3, 4, 6, 8, 10], "project": [0, 3], "ha": 0, "function": [0, 2, 9, 10], "calcul": [0, 6, 9], "classic": 0, "lamin": [0, 1, 2, 3, 5, 8, 9, 11], "theori": 0, "buckl": [0, 5, 6, 9, 10], "paramet": [0, 1, 2, 3, 6, 8, 9, 11], "optim": [0, 2, 5, 7], "quick": 0, "start": [0, 4], "code": [0, 2, 3], "refer": [0, 9], "exampl": [0, 2, 4, 7, 8, 9], "thank": 1, "bardel": 1, "equat": [1, 2], "implament": 1, "i": [1, 2, 3, 4, 5, 8, 9, 11], "capabl": [1, 9], "simul": 1, "differ": [1, 7], "combin": [1, 2, 3, 7], "case": 1, "88": 1, "from": [1, 2, 3, 4, 6, 9], "orthotropicmateri": [1, 2, 3, 4, 6, 7, 10], "laminateproperti": [1, 2, 3, 4, 6, 7, 10], "platestructur": [1, 2, 3, 6, 7, 10], "matplotlib": [1, 4], "54": 1, "ply": [1, 3, 4, 7, 9], "materi": [1, 3, 4, 8, 9], "mpa": [1, 3, 4], "mm": [1, 2, 3, 6], "e1": [1, 2, 3, 4, 6, 7, 9, 11], "60800": [1, 3, 6, 7], "e2": [1, 2, 3, 4, 6, 7, 9, 11], "58250": [1, 3, 6, 7], "v12": [1, 2, 3, 4, 6, 7, 9, 11], "0": [1, 2, 3, 4, 6, 7, 8, 9, 11], "07": [1, 3, 6, 7], "g12": [1, 2, 3, 4, 6, 7, 9, 11], "4550": [1, 3, 6, 7], "t": [1, 2, 3, 4, 6, 7, 9, 11], "21": [1, 3, 4, 6, 7], "plate": [1, 2, 5, 6, 9, 11], "360": [1, 3, 6, 7], "b": [1, 2, 3, 6, 9, 11], "m": [1, 2, 3, 6, 7, 9, 11], "10": [1, 3, 4, 6, 7, 9], "discret": [1, 3], "x": [1, 2, 3, 9, 11], "direct": [1, 3, 4, 9, 11], "n": [1, 2, 3, 6, 7, 9, 11], "y": [1, 2, 3, 9, 11], "stack": [1, 2, 3, 4, 6, 7, 8, 9, 11], "sequenc": [1, 3, 4, 8, 9, 11], "45": [1, 2, 3, 4, 6, 7, 8, 11], "90": [1, 2, 3, 4, 6, 7, 8, 9, 11], "1": [1, 2, 3, 4, 6, 7, 8, 9, 11], "symmetri": [1, 3], "55": [1, 4], "ply_1": [1, 6, 9], "l1": [1, 6], "56": [1, 4], "panel_ssss": 1, "constraint": [1, 2, 3, 6, 7, 9, 11], "57": [1, 4], "eigval": [1, 6, 9], "eigvec": [1, 6, 9], "buckling_analysi": [1, 2, 3, 6, 7, 9], "58": [1, 4], "arrai": [1, 4, 6, 9], "97": [1, 4], "04915682": 1, "144": [1, 6], "47730786": 1, "246": 1, "83882036": 1, "388": 1, "19669784": 1, "393": 1, "21258067": 1, "59": [1, 4], "plot_eigenvalu": [1, 2, 3, 7], "92": 1, "panel_cccc": 1, "5": [1, 2, 3, 4, 6, 9], "93": [1, 4], "138": 1, "79310181": 1, "146": [1, 6], "27293322": 1, "214": 1, "40196835": 1, "235": 1, "95368935": 1, "345": 1, "90300267": 1, "9": [1, 2, 4], "34248014e": 1, "16": [1, 4], "88156661e": 1, "14": [1, 3, 4], "2": [1, 2, 3, 4, 6, 9, 11], "02134850e": 1, "34440133e": 1, "15": [1, 4], "61245714e": 1, "12462063e": 1, "37191184e": 1, "09651915e": 1, "13": 1, "22922751e": 1, "8": 1, "64977457e": 1, "68030603e": 1, "94928446e": 1, "3": [1, 2, 3, 4], "17565273e": 1, "6": [1, 2, 3, 4], "43801745e": 1, "49531496e": 1, "48429879e": 1, "09319462e": 1, "02": [1, 2, 4], "26382491e": 1, "01": [1, 4], "94793823e": 1, "03873977e": 1, "74056918e": 1, "50428248e": 1, "23757124e": 1, "99938292e": 1, "44448141e": 1, "19772248e": 1, "4": [1, 2, 3, 4, 9], "03658981e": 1, "21566452e": 1, "40855121e": 1, "20345902e": 1, "94": [1, 4], "inlin": 1, "95": 1, "x0": [1, 2, 3, 6, 7, 9, 11], "tx": [1, 2, 3, 6, 7, 9], "ty": [1, 2, 3, 6, 7, 9], "tz": [1, 2, 3, 6, 7, 9], "xa": [1, 2, 3, 6, 7, 9], "y0": [1, 2, 3, 6, 7, 9], "yb": [1, 2, 3, 6, 7, 9], "panel_ssf": 1, "96": 1, "20": [1, 3, 4], "12080055": 1, "47": [1, 4], "13886913": 1, "5739614": 1, "156": 1, "53663617": 1, "185": 1, "19779529": 1, "54254543e": 1, "54682964e": 1, "02336476e": 1, "14117401e": 1, "25590066e": 1, "70857705e": 1, "87614772e": 1, "33465332e": 1, "01037659e": 1, "12": [1, 2, 4, 6, 9], "41333984e": 1, "62755574e": 1, "09823238e": 1, "76289507e": 1, "36766074e": 1, "13523615e": 1, "90309193e": 1, "03": [1, 4], "95127053e": 1, "05": 1, "12419786e": 1, "38168226e": 1, "43816796e": 1, "66068997e": 1, "04": [1, 4], "79805029e": 1, "46813288e": 1, "74685452e": 1, "51157619e": 1, "64137204e": 1, "67529764e": 1, "79731072e": 1, "43269351e": 1, "21653806e": 1, "06": 1, "66": [1, 2], "panel_cccc_nxi": 1, "67": [1, 4], "338": 1, "84283307": 1, "389": 1, "26571459": 1, "776": [1, 6], "82143839": 1, "824": 1, "28455938": 1, "882": 1, "94931083": 1, "85787017e": 1, "49320863e": 1, "53627846e": 1, "47863549e": 1, "63309599e": 1, "14383443e": 1, "82531544e": 1, "16269855e": 1, "98291546e": 1, "25169408e": 1, "24080163e": 1, "29270154e": 1, "71651923e": 1, "11230373e": 1, "89295317e": 1, "84301288e": 1, "7": [1, 2, 3, 4, 11], "76122020e": 1, "22800174e": 1, "29448845e": 1, "20803287e": 1, "64092132e": 1, "01135119e": 1, "65989832e": 1, "79699680e": 1, "68197373e": 1, "89453084e": 1, "26513867e": 1, "20302574e": 1, "92960329e": 1, "54281896e": 1, "68": [1, 4], "present": [2, 3, 4], "within": 2, "rafael": [2, 3, 7], "": [2, 8, 9], "master": [2, 3, 7], "dissert": [2, 3, 7], "composit": [2, 3, 7, 11], "semianalyt": 2, "model": [2, 3, 7], "AND": 2, "A": [2, 8, 9], "gradient": [2, 3, 7, 11], "base": [2, 3, 7, 9, 11], "access": 2, "full": [2, 9], "repositori": [2, 6, 7], "complet": [2, 7], "fem": 2, "rafaelpsilva07": [2, 7], "rafaelmscdissert": [2, 7], "The": [2, 3, 4, 7, 9], "follow": [2, 7], "ar": [2, 3, 7, 9, 11], "part": 2, "ritz": [2, 3], "against": 2, "aim": 2, "verifi": 2, "rayleigh": 2, "implement": [2, 7], "made": 2, "silva": [2, 3, 7], "r": [2, 3], "p": 2, "2023": [2, 3, 7], "mathemat": 2, "analyt": [2, 3, 7], "benchmark": 2, "biaxial": 2, "load": [2, 4, 5, 7, 9, 10], "which": [2, 4], "consid": [2, 3, 7, 9], "quasi": [2, 4], "isotrop": 2, "layup": [2, 4, 9], "902": 2, "properti": [2, 3, 6, 9, 10], "accord": 2, "tabl": 2, "below": [2, 9], "came": 2, "kassapogl": 2, "2010": 2, "dimens": [2, 11], "squar": 2, "100": [2, 4, 7], "ratio": [2, 11], "\ud835\udc41\ud835\udc66": 2, "\ud835\udc41\ud835\udc65": 2, "solut": 2, "problem": [2, 3, 7], "us": [2, 3, 4, 5, 7, 8, 9, 11], "234": 2, "lambda": 2, "pi": 2, "frac": 2, "d_": 2, "11": [2, 4], "2d_": 2, "2n": 2, "22": [2, 4], "n_": 2, "result": [2, 11], "225": 2, "see": [2, 7, 9], "import": [2, 3, 4, 6, 7, 9], "137": [2, 4], "9e3": [2, 4], "7e3": [2, 4], "31": [2, 3, 4], "82e3": [2, 4], "1524": [2, 4], "nxx": [2, 3, 4, 6, 7, 9, 11], "nyi": [2, 3, 6, 9, 11], "mat": 2, "lam": 2, "pin": [2, 9, 11], "eigenvalu": [2, 3, 6, 7, 9], "eigenvector": [2, 3], "print": [2, 3, 6, 7, 9], "f": [2, 3, 6], "min": [2, 3], "1f": [2, 3], "extend": 2, "order": [2, 4], "polynomi": 2, "section": 2, "maximum": 2, "first": [2, 4, 6, 8], "mode": 2, "495": 2, "89": [2, 4], "christo": 2, "design": [2, 3, 7], "analysi": [2, 4, 5, 6, 9], "structur": [2, 3, 5], "With": [2, 5, 7], "applic": [2, 7], "aerospac": [2, 7], "john": 2, "wilei": 2, "son": 2, "snipet": 3, "suppos": [3, 11], "major": 3, "core": 3, "method": [3, 10], "solv": [3, 7], "like": [3, 9], "k": [3, 4, 6, 9], "\u03bb": 3, "k_g": 3, "c": 3, "where": 3, "stiff": [3, 9], "matrix": [3, 6, 9], "geometr": [3, 9], "depend": 3, "intern": 3, "vector": 3, "constant": 3, "determin": 3, "shape": [3, 9, 11], "more": [3, 5, 7], "detail": 3, "about": 3, "formul": [3, 9], "found": 3, "geometri": 3, "angl": [3, 4, 8, 9], "degre": [3, 9], "condit": [3, 5, 7, 9, 11], "nxy": [3, 9, 11], "dproperti": [3, 9], "26": 3, "maximize_buckling_load": [3, 11], "max": 3, "w_1": 3, "w_3": 3, "g_1": 3, "2w_1": 3, "g_2": 3, "find": [3, 5], "pair": 3, "given": 3, "flexur": 3, "establish": 3, "co": 3, "theta": 3, "w_2": 3, "sin": 3, "w_4": 3, "\u03b8_l": 3, "continu": [3, 11], "dominium": 3, "h": 3, "thick": [3, 8, 9], "For": 3, "practic": [3, 7], "reason": 3, "onli": [3, 8, 9], "variabl": 3, "while": 3, "equal": 3, "zero": [3, 9], "therefor": 3, "symmetr": [3, 4], "balanc": 3, "how": 3, "interpret": 3, "them": 3, "convert": 3, "feasibl": [3, 11], "check": [3, 7], "total_thick": 3, "re": [3, 11], "panel_constraint": [3, 11], "plot": [3, 4, 11], "true": [3, 6, 9, 11], "penalti": [3, 11], "remov": 3, "gain": 3, "perform": [3, 5, 7], "w1": 3, "3f": 3, "w3": 3, "gener": [3, 5, 7, 10], "487": 3, "026": 3, "fals": [3, 6, 11], "677": 3, "083": 3, "minimize_panel_weight": [3, 11], "v": 3, "g_3": 3, "volum": 3, "submit": 3, "total": 3, "190": 3, "pereira": [3, 7], "da": [3, 7], "semi": [3, 7], "82f": [3, 7], "scienc": [3, 7], "instituto": [3, 7], "tecnol\u00f3gico": [3, 7], "de": [3, 7], "aeron\u00e1utica": [3, 7], "s\u00e3o": [3, 7], "jos\u00e9": [3, 7], "do": [3, 7], "campo": [3, 7], "miki": 3, "sugiyama": 3, "1993": 3, "optimum": 3, "aiaa": 3, "journal": 3, "j": 3, "921": 3, "922": 3, "2514": 3, "49033": 3, "gurdal": 3, "z": [3, 9], "haftka": 3, "element": [3, 4, 6], "third": 3, "revis": 3, "expand": 3, "edit": 3, "springer": 3, "busi": 3, "media": 3, "1991": 3, "clt": 4, "17": 4, "pyplot": 4, "plt": 4, "panda": [4, 5, 7], "pd": [4, 9], "laminatestrength": [4, 7, 10], "mxx": [4, 7, 9], "object": [4, 5, 7, 9], "definit": 4, "strength_analysi": 4, "midplan": [4, 7, 9], "varepsilon_": 4, "0x": 4, "0y": 4, "gamma_": 4, "0xy": 4, "epsilon0": [4, 7, 9], "52630215e": 4, "89003289e": 4, "67758599e": 4, "46178270e": 4, "99304212e": 4, "90268796e": 4, "df_strain": 4, "calculate_strain": [4, 7, 9], "head": 4, "displai": 4, "posit": 4, "epsilonx": 4, "epsiloni": 4, "gammaxi": 4, "epsilon1": 4, "epsilon2": 4, "gamma12": 4, "top": [4, 7, 9], "86e": 4, "31e": 4, "21e": 4, "06e": 4, "48e": 4, "17e": 4, "bot": 4, "02e": 4, "16e": 4, "25e": 4, "24e": 4, "88e": 4, "19e": 4, "40e": 4, "10e": 4, "00e": 4, "90e": 4, "59e": 4, "36e": 4, "45e": 4, "05e": 4, "datafram": [4, 9], "OF": 4, "THE": 4, "bottom": [4, 7, 9], "revers": 4, "when": 4, "defin": [4, 9, 11], "list": [4, 8, 9, 11], "correspond": 4, "most": [4, 5, 7], "layer": 4, "especi": [4, 5, 7], "non": 4, "27": 4, "df_strain_top": 4, "filter": 4, "grid": 4, "xlabel": 4, "ylabel": 4, "number": [4, 9, 11], "lt": [4, 6], "line": 4, "line2d": 4, "0x1dee71542e0": 4, "gt": [4, 6], "df_stress": 4, "calculate_stress": [4, 9], "sigmax": 4, "sigmai": 4, "tauxi": 4, "sigma1": 4, "sigma2": 4, "tau12": 4, "121": 4, "52": 4, "65": 4, "77": 4, "152": 4, "36": 4, "34": 4, "103": 4, "25": 4, "133": 4, "18": 4, "28": 4, "35": 4, "124": 4, "33": 4, "80": 4, "175": 4, "99": 4, "32": 4, "64": 4, "48": [4, 6], "141": [4, 6], "183": 4, "24": 4, "37": 4, "122": 4, "78": 4, "51": 4, "30": [4, 11], "df_stress_top": 4, "0x1dee72b1790": 4, "veri": 5, "handi": 5, "exploratori": 5, "It": [5, 7, 9], "built": 5, "power": [5, 7], "python": [5, 7], "numer": [5, 7], "librari": [5, 7], "so": [5, 7], "user": [5, 7, 11], "can": [5, 7, 9], "think": [5, 7], "same": [5, 7], "wai": [5, 7], "numpi": [5, 6, 7, 9], "scipi": [5, 6, 7, 11], "In": [5, 7], "fact": [5, 7], "leverag": [5, 7], "data": [5, 7], "driven": [5, 7], "cultur": [5, 7], "compani": [5, 7], "build": [5, 7, 9], "respons": [5, 7], "surfac": [5, 7], "sampl": [5, 7], "much": [5, 7], "interest": [5, 7], "jupyt": 5, "notebook": 5, "among": 5, "critic": [5, 7], "vari": [5, 7], "boundari": [5, 7, 9, 11], "verif": 5, "studi": 5, "subject": [5, 7], "stress": [5, 7, 9], "strain": [5, 7, 9], "140": 6, "np": [6, 7], "sy": 6, "linalg": 6, "eig": 6, "spars": 6, "csc_matrix": 6, "allclos": 6, "path": 6, "d": [6, 9], "append": 6, "time": [6, 9], "142": 6, "panel": [6, 7, 10], "ti": [6, 8], "kg": [6, 9], "k_kg": [6, 9], "calc_k_kg": 6, "done": 6, "second": 6, "valu": [6, 11], "4665584564208984": 6, "52457849227318": 6, "4968631267547607": 6, "149": 6, "lb": 6, "silent": [6, 9], "run": 6, "linear": [6, 9], "solver": [6, 8], "eigsh": 6, "finish": 6, "52457849227213": 6, "115": 6, "33986497435149": 6, "60711330382483": 6, "194": 6, "09686865625642": 6, "221": 6, "57771298566516": 6, "52457849": 6, "33986497": 6, "6071133": 6, "09686866": 6, "57771299": 6, "222": 6, "15591277": 6, "308": 6, "86123656": 6, "309": 6, "48317985": 6, "368": 6, "99999417": 6, "370": 6, "08445037": 6, "436": 6, "71118574": 6, "461": 6, "47246526": 6, "462": 6, "33970189": 6, "561": 6, "6366027": 6, "563": 6, "3834036": 6, "599": 6, "62788016": 6, "600": 6, "77815938": 6, "656": 6, "8345812": 6, "658": 6, "36588959": 6, "37052798": 6, "801": 6, "3471514": 6, "802": 6, "96144218": 6, "803": 6, "91915658": 6, "804": 6, "12792152": 6, "898": 6, "07786955": 6, "static": 6, "145": 6, "skin": 6, "laminaprop": 6, "p1": 6, "group": 6, "plyt": 6, "u1tx": 6, "u1rx": 6, "u2tx": 6, "u2rx": 6, "v1tx": 6, "v1rx": 6, "v2tx": 6, "v2rx": 6, "w1tx": 6, "w1rx": 6, "w2tx": 6, "w2rx": 6, "u1ti": 6, "u1ri": 6, "u2ti": 6, "u2ri": 6, "v1ty": 6, "v1ry": 6, "v2ty": 6, "v2ry": 6, "w1ty": 6, "w1ry": 6, "w2ty": 6, "w2ry": 6, "147": 6, "k0_1": 6, "calc_k0": 6, "kg0_1": 6, "calc_kg0": 6, "k0": 6, "kg0": 6, "77815939": 6, "34715129": 6, "96144214": 6, "12792151": 6, "07786953": 6, "148": 6, "432x432": 6, "type": [6, 8, 9, 11], "39": 6, "class": [6, 10], "float64": 6, "186624": 6, "store": 6, "compress": [6, 9], "row": 6, "format": [6, 8, 11], "address": 7, "challeng": 7, "industri": 7, "offer": 7, "tool": 7, "help": 7, "engin": [7, 11], "dure": 7, "process": 7, "util": 7, "orient": 7, "program": 7, "nativ": 7, "ensur": 7, "intuit": 7, "workflow": 7, "easi": 7, "integr": 7, "exist": 7, "abd": [7, 9], "pip": 7, "setup": 7, "py": 7, "mat_1": 7, "laminate1": 7, "ndarrai": [7, 9], "xia": [7, 9], "extens": [7, 9], "xid": [7, 9], "bend": [7, 9], "laminate_strength": 7, "also": 7, "rx": [7, 9], "ry": [7, 9], "rz": [7, 9], "abl": 7, "plane": 7, "If": [7, 8, 11], "you": 7, "mai": 7, "want": 7, "2024": 7, "v1": 7, "zenodo": 7, "http": 7, "doi": 7, "org": 7, "5281": 7, "10546621": 7, "contain": [8, 9, 10, 11], "nastranapi": 8, "pcomp_gener": 8, "build_pcomp": 8, "midi": 8, "pid": 8, "z0": 8, "sout": 8, "fiber": 8, "sourc": [8, 9, 11], "iter": [8, 9], "int": [8, 9], "pli": [8, 9], "id": 8, "appli": [8, 11], "all": 8, "float": [8, 9, 11], "default": [8, 9, 11], "offset": 8, "str": [8, 9], "output": 8, "request": 8, "option": [8, 9, 11], "ye": 8, "NO": 8, "last": 8, "set": 8, "return": [8, 9, 11], "text": 8, "card": 8, "build_sequ": 8, "string": 8, "latex": 8, "uniti": 8, "pm45_": 8, "0_2": 8, "_1": 8, "out": [8, 9], "main": 9, "instanc": 9, "packag": 9, "t1": 9, "c1": 9, "t2": 9, "c2": 9, "name": 9, "none": [9, 11], "creat": 9, "an": 9, "young": [9, 11], "modulu": [9, 11], "1st": 9, "2nd": 9, "poisson": [9, 11], "shear": [9, 11], "tension": 9, "allow": 9, "129500": 9, "9370": 9, "38": 9, "5240": 9, "q_0": 9, "get": 9, "complianc": 9, "lamina": 9, "130867": 9, "31382151": 9, "3598": 9, "19426713": 9, "9468": 9, "93228191": 9, "invari": 9, "u1": 9, "u2": 9, "u3": 9, "u4": 9, "u5": 9, "self": 9, "3x3": 9, "need": 9, "inform": 9, "some": 9, "characterist": 9, "chapter": 9, "dict": 9, "To": 9, "xia1": 9, "xia2": 9, "xia3": 9, "xia4": 9, "xib": 9, "xib1": 9, "xib2": 9, "xib3": 9, "xib4": 9, "xid1": 9, "xid2": 9, "xid3": 9, "xid4": 9, "singl": 9, "laminate_1": 9, "retunr": 9, "laminate_2": 9, "matric": 9, "size": [9, 11], "parallel": 9, "axi": [9, 11], "forc": 9, "along": [9, 11], "argument": 9, "clamp": 9, "Or": 9, "dictionari": 9, "describ": 9, "attent": 9, "rotat": 9, "aren": 9, "around": 9, "thei": [9, 11], "relat": 9, "That": 9, "mean": 9, "turn": 9, "move": 9, "num_eigvalu": 9, "bool": [9, 11], "comput": 9, "calc_k_kg_abd": 9, "stif": 9, "tupl": 9, "calc_k_kg_d": 9, "myi": 9, "mxy": 9, "evalu": 9, "strength": 9, "well": 9, "both": 9, "membran": 9, "xy": [9, 11], "moment": 9, "epsilonx0": 9, "epsilony0": 9, "epsilonxy0": 9, "kappax0": 9, "kappay0": 9, "kappaxy0": 9, "attribut": 10, "api": 10, "maxim": 10, "minim": 10, "weight": 10, "nastran": 10, "pcomp": 10, "functiosn": 11, "algorithm": 11, "sinc": 11, "Then": 11, "converet": 11, "somehow": 11, "tol": 11, "points_to_plot": 11, "normal": 11, "dafault": 11, "scipyminim": 11, "optiion": 11, "point": 11, "region": 11, "triangl": 11, "delimit": 11, "parabola": 11, "natur": 11, "initi": 11}, "objects": {"composipy": [[9, 0, 1, "", "LaminateProperty"], [9, 0, 1, "", "LaminateStrength"], [9, 0, 1, "", "OrthotropicMaterial"], [9, 0, 1, "", "PlateStructure"]], "composipy.LaminateProperty": [[9, 1, 1, "", "A"], [9, 1, 1, "", "ABD"], [9, 1, 1, "", "B"], [9, 1, 1, "", "D"], [9, 1, 1, "", "xiA"], [9, 1, 1, "", "xiD"]], "composipy.LaminateStrength": [[9, 2, 1, "", "calculate_strain"], [9, 2, 1, "", "calculate_stress"], [9, 2, 1, "", "epsilon0"]], "composipy.OrthotropicMaterial": [[9, 2, 1, "", "Invariants"], [9, 1, 1, "", "Q_0"]], "composipy.PlateStructure": [[9, 2, 1, "", "buckling_analysis"], [9, 2, 1, "", "calc_K_KG_ABD"], [9, 2, 1, "", "calc_K_KG_D"]], "composipy.nastranapi": [[8, 3, 0, "-", "pcomp_generator"]], "composipy.nastranapi.pcomp_generator": [[8, 4, 1, "", "build_pcomp"], [8, 4, 1, "", "build_sequence"]], "composipy.optimize": [[11, 4, 1, "", "maximize_buckling_load"], [11, 4, 1, "", "minimize_panel_weight"]]}, "objtypes": {"0": "py:class", "1": "py:property", "2": "py:method", "3": "py:module", "4": "py:function"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "property", "Python property"], "2": ["py", "method", "Python method"], "3": ["py", "module", "Python module"], "4": ["py", "function", "Python function"]}, "titleterms": {"content": [0, 5, 10], "critic": [1, 2, 3], "buckl": [1, 2, 3, 7, 11], "exampl": [1, 5], "With": 1, "vari": 1, "boundari": [1, 2, 3], "condit": [1, 2], "import": 1, "composipi": [1, 5, 7, 9, 11], "object": [1, 3], "creat": [1, 7], "properti": [1, 7, 8], "pin": 1, "nxx": 1, "clamp": [1, 2], "nxy": 1, "nyi": 1, "free": [1, 2], "edg": [1, 2], "custom": 1, "load": [1, 3, 11], "verif": 2, "studi": 2, "simpli": 2, "support": 2, "case": 2, "ssss": 2, "differ": 2, "cccc": 2, "one": 2, "sssc": 2, "comparison": [2, 6], "nastran": [2, 8], "deform": 2, "shape": [2, 7], "refer": [2, 3, 7, 10], "optim": [3, 11], "plate": [3, 7], "subject": 3, "analysi": [3, 7], "maxim": [3, 11], "function": [3, 8, 11], "g1": 3, "g2": 3, "without": 3, "minim": [3, 11], "panel": [3, 11], "weight": [3, 11], "stress": 4, "strain": 4, "calcul": [4, 7], "lamin": [4, 7], "note": 4, "compmech": 6, "what": 7, "i": 7, "main": 7, "featur": 7, "how": 7, "instal": 7, "directli": 7, "from": 7, "pypi": 7, "built": 7, "sourc": 7, "quick": 7, "start": 7, "materi": 7, "defin": 7, "stiffnn": 7, "matrix": 7, "paramet": 7, "strength": 7, "structur": 7, "plot": 7, "mode": 7, "theoret": 7, "api": 8, "gener": 8, "pcomp": 8, "class": 9, "orthotropicmateri": 9, "laminateproperti": 9, "platestructur": 9, "laminatestrength": 9, "code": 10}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "nbsphinx": 4, "sphinx": 57}, "alltitles": {"Contents": [[0, "contents"]], "Contents:": [[0, null], [5, null], [10, null]], "Critical Buckling Examples With Varying Boundary Conditions": [[1, "Critical-Buckling-Examples-With-Varying-Boundary-Conditions"]], "Importing composipy objects and creating properties": [[1, "Importing-composipy-objects-and-creating-properties"]], "Pinned Nxx": [[1, "Pinned-Nxx"]], "Clamped Nxy and Nyy": [[1, "Clamped-Nxy-and-Nyy"]], "Free edge Nxx (custom boundary condition)": [[1, "Free-edge-Nxx-(custom-boundary-condition)"]], "Nxy Loading": [[1, "Nxy-Loading"]], "Critical Buckling Verification Study": [[2, "Critical-Buckling-Verification-Study"]], "Simply Supported study case (SSSS)": [[2, "Simply-Supported-study-case-(SSSS)"]], "Different boundary conditions": [[2, "Different-boundary-conditions"]], "Clamped study case (CCCC)": [[2, "Clamped-study-case-(CCCC)"]], "Simply supported with one free edge study case (SSSC)": [[2, "Simply-supported-with-one-free-edge-study-case-(SSSC)"]], "Comparison with NASTRAN deformed shape": [[2, "Comparison-with-NASTRAN-deformed-shape"]], "References": [[2, "References"], [3, "References"]], "Optimization of a plate subjected to buckling loads": [[3, "Optimization-of-a-plate-subjected-to-buckling-loads"]], "Plate buckling analysis": [[3, "Plate-buckling-analysis"]], "Maximize Critical Buckling Load": [[3, "Maximize-Critical-Buckling-Load"]], "Objective function with boundary g1 and g2": [[3, "Objective-function-with-boundary-g1-and-g2"]], "Objective function without boundary g1 and g2": [[3, "Objective-function-without-boundary-g1-and-g2"]], "Minimize Panel Weight": [[3, "Minimize-Panel-Weight"]], "Stress Strain Calculation of a Laminate": [[4, "Stress-Strain-Calculation-of-a-Laminate"]], "Note": [[4, "Note"], [4, "id1"]], "Composipy Examples": [[5, "composipy-examples"]], "comparison with compmech": [[6, "comparison-with-compmech"]], "Composipy": [[7, "composipy"]], "What it is": [[7, "what-it-is"]], "Main features": [[7, "main-features"]], "How to install": [[7, "how-to-install"]], "Directly From PYPI": [[7, "directly-from-pypi"]], "Built from source": [[7, "built-from-source"]], "Quick start": [[7, "quick-start"]], "Create the Material Properties.": [[7, "create-the-material-properties"]], "Define the Laminate.": [[7, "define-the-laminate"]], "Calculate Stiffnnes Matrix and Lamination Parameters": [[7, "calculate-stiffnnes-matrix-and-lamination-parameters"]], "Create a Laminate Strength Analysis.": [[7, "create-a-laminate-strength-analysis"]], "Create a Plate Structure for Buckling Analysis": [[7, "create-a-plate-structure-for-buckling-analysis"]], "Calculate Buckling": [[7, "calculate-buckling"]], "Plot Buckling shape mode": [[7, "plot-buckling-shape-mode"]], "Theoretical References": [[7, "theoretical-references"]], "Nastran API functions": [[8, "nastran-api-functions"]], "Generator of NASTRAN PCOMP property": [[8, "module-composipy.nastranapi.pcomp_generator"]], "Composipy Classes": [[9, "composipy-classes"]], "OrthotropicMaterial": [[9, "orthotropicmaterial"]], "LaminateProperty": [[9, "laminateproperty"]], "PlateStructure": [[9, "platestructure"]], "LaminateStrength": [[9, "laminatestrength"]], "Code references": [[10, "code-references"]], "Composipy Optimization Functions": [[11, "composipy-optimization-functions"]], "Maximize Buckling Load": [[11, "maximize-buckling-load"]], "Minimize panel weight": [[11, "minimize-panel-weight"]]}, "indexentries": {"build_pcomp() (in module composipy.nastranapi.pcomp_generator)": [[8, "composipy.nastranapi.pcomp_generator.build_pcomp"]], "build_sequence() (in module composipy.nastranapi.pcomp_generator)": [[8, "composipy.nastranapi.pcomp_generator.build_sequence"]], "composipy.nastranapi.pcomp_generator": [[8, "module-composipy.nastranapi.pcomp_generator"]], "module": [[8, "module-composipy.nastranapi.pcomp_generator"]], "a (composipy.laminateproperty property)": [[9, "composipy.LaminateProperty.A"]], "abd (composipy.laminateproperty property)": [[9, "composipy.LaminateProperty.ABD"]], "b (composipy.laminateproperty property)": [[9, "composipy.LaminateProperty.B"]], "d (composipy.laminateproperty property)": [[9, "composipy.LaminateProperty.D"]], "invariants() (composipy.orthotropicmaterial method)": [[9, "composipy.OrthotropicMaterial.Invariants"]], "laminateproperty (class in composipy)": [[9, "composipy.LaminateProperty"]], "laminatestrength (class in composipy)": [[9, "composipy.LaminateStrength"]], "orthotropicmaterial (class in composipy)": [[9, "composipy.OrthotropicMaterial"]], "platestructure (class in composipy)": [[9, "composipy.PlateStructure"]], "q_0 (composipy.orthotropicmaterial property)": [[9, "composipy.OrthotropicMaterial.Q_0"]], "buckling_analysis() (composipy.platestructure method)": [[9, "composipy.PlateStructure.buckling_analysis"]], "calc_k_kg_abd() (composipy.platestructure method)": [[9, "composipy.PlateStructure.calc_K_KG_ABD"]], "calc_k_kg_d() (composipy.platestructure method)": [[9, "composipy.PlateStructure.calc_K_KG_D"]], "calculate_strain() (composipy.laminatestrength method)": [[9, "composipy.LaminateStrength.calculate_strain"]], "calculate_stress() (composipy.laminatestrength method)": [[9, "composipy.LaminateStrength.calculate_stress"]], "epsilon0() (composipy.laminatestrength method)": [[9, "composipy.LaminateStrength.epsilon0"]], "xia (composipy.laminateproperty property)": [[9, "composipy.LaminateProperty.xiA"]], "xid (composipy.laminateproperty property)": [[9, "composipy.LaminateProperty.xiD"]], "maximize_buckling_load() (in module composipy.optimize)": [[11, "composipy.optimize.maximize_buckling_load"]], "minimize_panel_weight() (in module composipy.optimize)": [[11, "composipy.optimize.minimize_panel_weight"]]}}) \ No newline at end of file