# Functions using Assemblies of Flat Plates and Panels

`compmech.panel.assembly.tstiff2d_1stiff_compression.``tstiff2d_1stiff_compression`(a, b, ys, bb, bf, defect_a, mu, plyt, laminaprop, stack_skin, stack_base, stack_flange, Nxx_skin, Nxx_base, Nxx_flange, run_static_case=True, r=None, m=8, n=8, mb=None, nb=None, mf=None, nf=None)

  Linear Buckling of T-Stiffened panel with debonding defect

  The panel assembly looks like:

      skin
       _________ _____ _________
      |         |     |         |
      |         |     |         |
      |   p01   | p02 |   p03   |
      |         |     |         |
      |_________|_____|_________|
      |   p04   | p05 |   p06   |      /\  x
      |_________|_____|_________|       |
      |         |     |         |       |
      |         |     |         |       |
      |   p07   | p08 |   p09   |
      |         |     |         |
      |         |     |         |
      |_________|_____|_________|
             loaded edge

                base            flange
                 _____           _____
                |     |         |     |
                |     |         |     |
                | p10 |         | p11 |
                |     |         |     |
                |_____|         |_____|
                | p12 |         | p13 |
                |_____|         |_____|
                |     |         |     |
                |     |         |     |
                | p14 |         | p15 |
                |     |         |     |
                |     |         |     |
                |_____|         |_____|
             loaded edge     loaded edge

  Parameters: | a : float Total length of the assembly (along ). b : float Total width of the assembly (along ). ys : float Position of the stiffener along . bb : float Stiffener’s base width. bf : float Stiffener’s flange width. defect_a : float Debonding defect/assembly length ratio. mu : float Material density. plyt : float Ply thickness. laminaprop : list or tuple Orthotropic lamina properties: . stack_skin : list or tuple Stacking sequence for the skin. stack_base : list or tuple Stacking sequence for the stiffener’s base. stack_flange : list or tuple Stacking sequence for the stiffener’s flange. Nxx_skin : float Skin load distributed at the assembly edge at . Nxx_base : float Stiffener’s base load distributed at the assembly edge at . Nxx_flange : float Stiffener’s flange load distributed at the assembly edge at . run_static_case : bool, optional If True a static analysis is run before the linear buckling analysis to compute the real membrane stress state along the domain, otherwise it is assumed constant values of for all components. r : float or None, optional Radius of the stiffened panel. m, n : int, optional Number of terms of the approximation function for the skin. mb, nb : int, optional Number of terms of the approximation function for the stiffener’s base. mf, nf : int, optional Number of terms of the approximation function for the stiffener’s flange.

  Examples

  The following example is one of the test cases:

      def test_tstiff2d_1stiff_compression():
          print('Testing assembly function: tstiff2d_1stiff_compression')
          b = 1.
          bb = b/5.
          bf = bb/2.
          ys = b/2.
          assy, eigvals, eigvecs = tstiff2d_1stiff_compression(
              b=b,
              bb=bb,
              bf=bf,
              a=3.,
              ys=ys,
              defect_a=0.6,
              mu=1.3e3,
              plyt=0.125e-3,
              laminaprop=(142.5e9, 8.7e9, 0.28, 5.1e9, 5.1e9, 5.1e9),
              stack_skin=[0, 45, -45, 90, -45, 45, 0],
              stack_base=[0, 90, 0]*4,
              stack_flange=[0, 90, 0]*8,
              m=8, n=7,
              mb=7, nb=6,
              mf=8, nf=6,
              run_static_case=False,
              Nxx_skin=-1.,
              Nxx_base=-1.,
              Nxx_flange=-1.,
              )
          assert np.isclose(eigvals[0], 142.65057725, rtol=0.01)

          assy, c, eigvals, eigvecs = tstiff2d_1stiff_compression(
              b=b,
              bb=bb,
              bf=bf,
              a=3.,
              ys=ys,
              defect_a=0.6,
              mu=1.3e3,
              plyt=0.125e-3,
              laminaprop=(142.5e9, 8.7e9, 0.28, 5.1e9, 5.1e9, 5.1e9),
              stack_skin=[0, 45, -45, 90, -45, 45, 0],
              stack_base=[0, 90, 0]*4,
              stack_flange=[0, 90, 0]*8,
              m=8, n=7,
              mb=7, nb=6,
              mf=8, nf=6,
              run_static_case=True,
              Nxx_skin=-1.,
              Nxx_base=-1.,
              Nxx_flange=-1.,
              )
          assert np.isclose(eigvals[0], 114.76990872, rtol=0.01)

`compmech.panel.assembly.tstiff2d_1stiff_flutter.``tstiff2d_1stiff_flutter`(a, b, ys, bb, bf, defect_a, mu, plyt, laminaprop, stack_skin, stack_base, stack_flange, air_speed=None, rho_air=None, Mach=None, speed_sound=None, flow='x', Nxx_skin=None, Nxx_base=None, Nxx_flange=None, run_static_case=True, r=None, m=8, n=8, mb=None, nb=None, mf=None, nf=None)

  Flutter of T-Stiffened Panel with possible defect at middle

  For more details about each parameter and the aerodynamic formulation see Ref. [castro2016FlutterPanel] .

  The panel assembly looks like:

      skin
       _________ _____ _________
      |         |     |         |
      |         |     |         |
      |   p01   | p02 |   p03   |
      |         |     |         |
      |_________|_____|_________|
      |   p04   | p05 |   p06   |      /\  x
      |_________|_____|_________|       |
      |         |     |         |       |
      |         |     |         |       |
      |   p07   | p08 |   p09   |
      |         |     |         |
      |         |     |         |
      |_________|_____|_________|
             loaded edge

                base            flange
                 _____           _____
                |     |         |     |
                |     |         |     |
                | p10 |         | p11 |
                |     |         |     |
                |_____|         |_____|
                | p12 |         | p13 |
                |_____|         |_____|
                |     |         |     |
                |     |         |     |
                | p14 |         | p15 |
                |     |         |     |
                |     |         |     |
                |_____|         |_____|
             loaded edge     loaded edge

  Parameters: | a : float Total length of the assembly (along ). b : float Total width of the assembly (along ). ys : float Position of the stiffener along . bb : float Stiffener’s base width. bf : float Stiffener’s flange width. defect_a : float Debonding defect/assembly length ratio. mu : float Material density. plyt : float Ply thickness. laminaprop : list or tuple Orthotropic lamina properties: . stack_skin : list or tuple Stacking sequence for the skin. stack_base : list or tuple Stacking sequence for the stiffener’s base. stack_flange : list or tuple Stacking sequence for the stiffener’s flange. air_speed : float Airflow speed. rho_air : float Air density. Mach : float Mach number. speed_sound : float Speed of sound. flow : “x” or “y” Direction of airflow. Nxx_skin : float Skin load distributed at the assembly edge at . Nxx_base : float Stiffener’s base load distributed at the assembly edge at . Nxx_flange : float Stiffener’s flange load distributed at the assembly edge at . run_static_case : bool, optional If True a static analysis is run before the linear buckling analysis to compute the real membrane stress state along the domain, otherwise it is assumed constant values of for all components. r : float or None, optional Radius of the stiffened panel. m, n : int, optional Number of terms of the approximation function for the skin. mb, nb : int, optional Number of terms of the approximation function for the stiffener’s base. mf, nf : int, optional Number of terms of the approximation function for the stiffener’s flange.

  Examples

  The following example is one of the test cases:

      def test_tstiff2d_1stiff_flutter():
          print('Testing assembly function: tstiff2d_1stiff_flutter')
          b = 1.
          bb = b/5.
          bf = bb/2.
          ys = b/2.
          assy, c, eigvals, eigvecs = tstiff2d_1stiff_flutter(
              b=b,
              bb=bb,
              bf=bf,
              a=3.,
              ys=ys,
              defect_a=0.1,
              mu=1.3e3,
              plyt=0.125e-3,
              laminaprop=(142.5e9, 8.7e9, 0.28, 5.1e9, 5.1e9, 5.1e9),
              stack_skin=[0, 45, -45, 90, -45, 45, 0],
              stack_base=[0, 90, 0]*4,
              stack_flange=[0, 90, 0]*8,
              m=6, n=7,
              mb=5, nb=6,
              mf=6, nf=7,
              air_speed=800.,
              rho_air=1500.,
              Mach=2.,
              speed_sound=343.,
              run_static_case=True,
              )
          assert np.isclose(eigvals[0], 1423.254820+0.j, rtol=0.01)

`compmech.panel.assembly.tstiff2d_1stiff_freq.``tstiff2d_1stiff_freq`(a, b, ys, bb, bf, defect_a, mu, plyt, laminaprop, stack_skin, stack_base, stack_flange, r=None, m=8, n=8, mb=None, nb=None, mf=None, nf=None)

  Frequency T-Stiffened Panel with possible defect at middle

  For more details about each parameter and the aerodynamic formulation see Ref. [castro2016FlutterPanel] .

  The panel assembly looks like:

      skin
       _________ _____ _________
      |         |     |         |
      |         |     |         |
      |   p01   | p02 |   p03   |
      |         |     |         |
      |_________|_____|_________|
      |   p04   | p05 |   p06   |
      |_________|_____|_________|
      |         |     |         |
      |         |     |         |
      |   p07   | p08 |   p09   |
      |         |     |         |
      |         |     |         |
      |_________|_____|_________|

                base            flange
                 _____           _____
                |     |         |     |
                |     |         |     |
                | p10 |         | p11 |
                |     |         |     |
                |_____|         |_____|
                | p12 |         | p13 |
                |_____|         |_____|
                |     |         |     |
                |     |         |     |
                | p14 |         | p15 |
                |     |         |     |
                |     |         |     |
                |_____|         |_____|

  Parameters: | a : float Total length of the assembly (along ). b : float Total width of the assembly (along ). ys : float Position of the stiffener along . bb : float Stiffener’s base width. bf : float Stiffener’s flange width. defect_a : float Debonding defect/assembly length ratio. mu : float Material density. plyt : float Ply thickness. laminaprop : list or tuple Orthotropic lamina properties: . stack_skin : list or tuple Stacking sequence for the skin. stack_base : list or tuple Stacking sequence for the stiffener’s base. stack_flange : list or tuple Stacking sequence for the stiffener’s flange. r : float or None, optional Radius of the stiffened panel. m, n : int, optional Number of terms of the approximation function for the skin. mb, nb : int, optional Number of terms of the approximation function for the stiffener’s base. mf, nf : int, optional Number of terms of the approximation function for the stiffener’s flange.

  Examples

  The following example is one of the test cases:

      def test_tstiff2d_1stiff_freq():
          print('Testing assembly function: tstiff2d_1stiff_freq')
          b = 1.
          bb = b/5.
          bf = bb/2.
          ys = b/2.
          assy, eigvals, eigvecs = tstiff2d_1stiff_freq(
              b=b,
              bb=bb,
              bf=bf,
              a=3.,
              ys=ys,
              defect_a=0.1,
              mu=1.3e3,
              plyt=0.125e-3,
              laminaprop=(142.5e9, 8.7e9, 0.28, 5.1e9, 5.1e9, 5.1e9),
              stack_skin=[0, 45, -45, 90, -45, 45, 0],
              stack_base=[0, 90, 0]*4,
              stack_flange=[0, 90, 0]*8,
              m=6, n=7,
              mb=5, nb=6,
              mf=6, nf=7,
              )
          assert np.isclose(eigvals[0], 48.35762006+0.j, atol=0.001)