Materials and layups¶
PreVABS uses the keyword material
for the physical properties attached to any materials, while lamina
for material plus thickness, which in a sense is fixed by manufacturers.
This can be thought as the basic commercially available “material”, such as a composite preprag.
A layer is a stack of laminae with the same fiber orientation.
The thickness of a layer can only be a multiplier of the lamina thickness.
Layup is several layers stacked together in a specific order.
This relationship is illustrated in Fig. 17.
More details can be found below.
Material and lamina¶
Both materials and laminae are stored in one XML file, under the single root element <materials>
.
A template of this file is shown in Listing 14.
Each material must have a name and type. Under each <material>
element, there are a <density>
element and an <elastic>
element.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | <materials>
...
<material name="iso1" type="isotropic">
<density>...</density>
<elastic>
<e>...</e>
<nu>...</nu>
</elastic>
</material>
<material name="orth1" type="orthotropic">
<density>...</density>
<elastic>
<e1>...</e1>
<e2>...</e2>
<e3>...</e3>
<g12>...</g12>
<g13>...</g13>
<g23>...</g23>
<nu12>...</nu12>
<nu13>...</nu13>
<nu23>...</nu23>
</elastic>
</material>
<material name="aniso1" type="anisotropic">
<density>...</density>
<elastic>
<c11>...</c11>
<c12>...</c12>
<c13>...</c13>
<c14>...</c14>
<c15>...</c15>
<c16>...</c16>
<c22>...</c22>
<c23>...</c23>
<c24>...</c24>
<c25>...</c25>
<c26>...</c26>
<c33>...</c33>
<c34>...</c34>
<c35>...</c35>
<c36>...</c36>
<c44>...</c44>
<c45>...</c45>
<c46>...</c46>
<c55>...</c55>
<c56>...</c56>
<c66>...</c66>
</elastic>
</material>
...
</materials>
|
Specification
- <material> - Root element for each material.
- name - Required. Name of the material.
- type - Required. Type of the material. Choose one from ‘isotropic’, ‘orthotropic’, ‘anisotropic’ and ‘lamina’.
- <density> - Optional. Density of the material. Defualt is 1.0.
- <elastic> - Elastic properties of the material. Specifications are different for different types.
- If type=”isotropic” - 2 constants: ‘e’ and ‘nu’.
- If type=”orthotropic” - 9 constants: ‘e1’, ‘e2’, ‘e3’, ‘g12’, ‘g13’, ‘g23’, ‘nu12’, ‘nu13’ and ‘nu23’.
- If type=”anisotropic” - 21 constants: ‘c11’, ‘c12’, ‘c13’, ‘c14’, ‘c15’, ‘c16’, ‘c22’, ‘c23’, ‘c24’, ‘c25’, ‘c26’, ‘c33’, ‘c34’, ‘c35’, ‘c36’, ‘c44’, ‘c45’, ‘c46’, ‘c55’, ‘c56’ and ‘c66’. These constants are defined in Equation (1).
- If type=”lamina” - 4 constants: ‘e1’, ‘e2’, ‘g12’ and ‘nu12’. Internally, this type of material will be converted to the ‘orthotropic’ material. The default values for the rest components are: ‘e3=e2’, ‘nu13=nu12’, ‘nu23=0.3’, ‘g13=g12’ and ‘g23=e3/(2*(1+nu23))’. These default values can be overwritten by custom values.
Each lamina element has a name, and contains a material name and a value for thickness. The input syntax is shown in Listing 15.
1 2 3 4 5 6 7 8 | <materials>
...
<lamina name="lamina1">
<material>orth1</material>
<thickness>...</thickness>
</lamina>
...
</materials>
|
Specification
<lamina> - Root element for the definition of each lamina.
- name - Required. Name of the lamina.
<material> - Name of the material of the lamina.
<thickness> - Thickness of the lamina.
Layups¶
In general, there are two ways to define a layup, explicit list and stacking sequence code. For the explicit list, a laminate is laid onto the base line from the first layer in the list to the last one, in the direction given by the user. For the stacking sequence, the layup starts from left to the right. User should pay attention to the relations among the base line direction, elemental frame y and fiber orientation \(\theta_3\) of each layer, as shown in Fig. 18. Change of direction of the base line will change the elemental frame y as defined, which will further require the user to change the fiber orientations accordingly, even though nothing changes physically. All layup information are included in one XML file. A template of this file can be found in Listing 16.

Figure 18 Relations among the base line direction, elemental frame y and fiber orientation (Note $y_2$ is parallel to the base line direction).
1 2 3 4 5 6 7 8 9 | <layups>
<layup name="layup1" method="explicit list">
<layer lamina="lamina1">...</layer>
...
</layup>
<layup name="layup2" method="stack sequence">...</layup>
<layup name="layup3" method="ply percentage">...</layup>
...
</layups>
|
Specification
- <layup> - Root element for the definition of each layup.
- name - Required. Name of the layup.
- method - Optional. Method of defining the layup. Choose one from ‘layer list’ (or ‘ll’) and ‘stack sequence’ (or ‘ss’). Default is ‘layer list’.
Explicit list¶
This method requires user to write down the lamina name, fiber orientation and number of successive laminas with the same fiber orientation, layer by layer. Alternatively, a layer can also be defined by the name of a sublayup. A sublayup must appear before the layup where it is referenced. A template for one layer is shown below.
1 2 3 4 5 6 7 8 9 10 11 | <layups>
...
<layup name="...">
<layer lamina="lamina_name">angle:stack</layer>
<layer lamina="lamina_name">angle:stack</layer>
<layer lamina="lamina_name">angle:stack</layer>
<layer layup="sublayup_name"/>
...
</layup>
...
</layups>
|
Specification
- <layer> - Material orientation and number of plies separated by a colon ‘angle:stack’. Default values are 0 for ‘angle’ and 1 for ‘stack’. If there is only one number presented in this element, then it is read in as ‘angle’, not ‘stack’, which is 1 by default.
- lamina - Optional. Name of the lamina used in the current layer.
- layup - Optional. Name of the sublayup used in the current layer. One and only one of lamina and layup should be used. ‘angle’ and ‘stack’ are not needed when layup is used.
An example for the layup shown in Fig. 17 is given in Listing 19 and Listing 20.
Stacking sequence code¶
This method requires users to provide one lamina name and the stacking sequence code. A template is shown below.
1 2 3 4 5 6 7 8 | <layups>
...
<layup name="..." method="stack sequence">
<lamina>...</lamina>
<code>...</code>
</layup>
...
</layups>
|
Specification
- <lamina> - Name of the lamina used.
- <code> - Stacking sequency code. Explained below.
Rules of writing the stacking sequence code
- All fiber orientations should be put between a pair of square brackets
[]
; - Different fiber orientations are separated by slash
/
; - After the right bracket, user can add
ns
to indicate symmetry of the layup, wheren
is the number of the symmetry operations needed to generate the complete layup; - Successive laminae with the same fiber orientation can be expressed using colon like
angle:stack
, whereangle
is the fiber orientation andstack
is the number of plies; - If a group of fiber orientations is repeated, user needs to close them in a pair of round brackets
()
.
Examples
Code | Complete sequence |
---|---|
[0/90]2s |
0, 90, 90, 0, 0, 90, 90, 0 |
[(45/-45):2/0:2]s |
45, -45, 45, -45, 0, 0, 0, 0, -45, 45, -45, 45 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <materials>
<material name="square" type="orthotropic">
<density>...</density>
<elastic>...</elastic>
</material>
<material name="hexagon" type="orthotropic">
<density>...</density>
<elastic>...</elastic>
</material>
<lamina name="la_square_15">
<material>square</material>
<thickness>1.5</thickness>
</lamina>
<lamina name="la_hexagon_10">
<material>hexagon</material>
<thickness>1.0</thickness>
</lamina>
</materials>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <layups>
<layup name="layup_el" method="explicit list">
<layer lamina="la_hexagon_10">45:2</layer>
<layer lamina="la_hexagon_10">90</layer>
<layer lamina="la_square_15"></layer>
<layer lamina="la_hexagon_10">-45:2</layer>
<layer lamina="la_square_15">0:2</layer>
<layer lamina="la_hexagon_10">-45:2</layer>
<layer lamina="la_square_15"></layer>
<layer lamina="la_hexagon_10">90</layer>
<layer lamina="la_hexagon_10">45:2</layer>
</layup>
<layup name="layup_ss" method="stack sequence">
<lamina>la_square_15</lamina>
<code>[(45/-45):2/0:4/90]2s</code>
</layup>
</layups>
|