The "Fiber Dir" was added by Wang Kai about a year ago and from looking at the code I would say that it works like this: It is only available for mat 234 and 235. The keyword file has to be read in together with d3plot. The first two history variables for the elements contains two angles (in degrees). Meaning that you have to output at least two history variables to d3plot to make it display the fiber directions. The main material direction (material x-direction) is defined as a wrote in previous mail. The first fiber direction is formed by taking the material x-axis and rotate this vector histvar[0] degrees about the shell normal. The second fiber direction is almost the same but rotates histvar[1] degrees about the shell normal. regards, Anders 2/10/16 The material system which is displayed in LSPP is always orthogonal. Its orientation is initialized at t=0 based on the keyword data and rotates in the same manner as the element system rotates in LS-DYNA. That is, it rotates a bit different depending on the value on INN on control_accuracy. This is the material system which is used for all hypoelastic material models in LS-DYNA. If, however, a hyperelastic material model is used, a total strain/deformation is computed and in this case the material coordinate system will follow the material (not the same as the element system). This means that the material axis will not necessarily be orthogonal in a deformed state. This situation is not considered when displaying the material system in LSPP. As a side note, I can mention that if the stress tensor is written in material system to d3plot (CMPFLG), it will be in the system displayed by LSPP, even for hyperelastic materials. regards, Anders www.dynamore.se 2/8/16 Ticket#2016020510000019 Refer also to http://ftp.lstc.com/anonymous/outgoing/support/PRESENTATIONS/orthotropic-materials-draft-mrj.pdf ________________________________________________________________________ Element coordinate system and invariant node numbering. Shell elements stress update calculations in LS-DYNA are done in a local element coordinate system, not the global coordinate system. By default, the local x-axis is aligned with the 1-2 edge. The default element system therefore implies that that the material is tied to and rotates with the 1-2 edge of the element. For anisotropic material, this can cause elements to deform to some nonphysical low energy modes. Think of a uniaxial tension test with the strong material direction aligned with the test specimen. If this test was meshed such that the 1-2 edge of any element was along the weak axis of the material (transverse to the load direction), it is likely that the element would deform such that 1-2 edge rotated to the load direction so that the element energy would be lower. This of course would twist and stress other elements which might increase their energy, so the 1-2 edge may not rotate very far, but since any finite rotation is wrong, we would have a bad analysis and an ugly mesh. The invarient node numbering option (see *control_accuracy) uses a different averaging method to determine the element system x-axis. The method is this: two vectors, eta and mu, are defined in the plane of the shell by connecting the midside points of opposite shell edges. In other words, eta bisects the element in one direction and mu bisects the element in the 'other' direction. Halfway between eta and mu is a vector we'll call eta+mu (b1 in Stefan's ppt). The element x-axis is 45 degrees to one side of eta+mu while the element y-axis is 45 degrees to the other side of eta+mu. In a rectangular element, the element x is thus parallel to the N1-N2 edge. The x-axis is usually not aligned exactly with the N1-N2 edge for non-rectangular elements. The invariant node numbering option defines a local element system that rotates by exactly 90 degrees when an element is renumbered such that node numbers 1,2,3,4 are changed to 2,3,4,1. i An obvious advantage of this approach is that the mesh and material behavior is independent of the way that the elements are numbered. The element coordinate system rotates consistently during in-plane shear and hourglass deformation so that behavior is consistent for direction dependent anisotropic materials. Perhaps more important, the likelihood that the material will deform into a non-physical low energy modes is reduced. While the invariant node numbering option is not perfect, it seems to consistently give better results for anisotropic material. The invariant node numbering option is available for shell element formulations 1, 2, 5, 7, 9, 10, 11, and 16. It is not available for 3, 4, 6, or 8. In LS-Prepost, the term "Local" refers to the shell element local coordinate system. This system is determined from the element connectivity, not from some coordinate system defined in the input deck. The node1-to-node2 vector (N1-N2), is the local x-direction, the local z-direction is normal to the shell (cross product of N1-N2 and N1-N4), and the local y-direction is the cross product of z and x. ________________________________________________________________________ Defining the material coordinate system. For shell elements of anisotropic material, there are 3 options for defining the initial direction of the material axes, AOPT=0, 2, and 3 (see *mat_optiontropic). During the solution, the element coordinate system rotates and transforms with the element, so the angle between the element system and material system can be assumed to remain constant. In other words, the material direction is constantly updated as the element rotates and deforms. It is therefore sufficient to define the material coordinate system in the undeformed geometry. For this discussion, the material coordinate system will be called the a-b-c system to be consistent with the user's manual. For shell elements, the c-axis coincides with the element normal, the a-axis is in the plane of the shell, and the b-axis is determined by the cross product, b=c x a. Actually, for warped elements, the a-axis is not exactly in the element plane, but is projected along the c-axis such that it is orthogonal to c. This projection is also done for the local element system, so a simple 2D transformation between the two systems is possible. For reasons discussed in the last paragraph, the three available shell element options for defining the a-b-c system boil down to defining the a-axis. For AOPT=0, the a-axis is assumed to be equal to the local element system x-axis. For AOPT=2, the a-axis is defined as the user defined vector 'a', projected onto the surface of the element. Note that the user defined vector 'd' is not used at all. Also, note that the user defined vector 'a', is not equivalent to the a-axis of the material unless 'a' is orthogonal to the element normal. For AOPT=3, the a-axis is defined by the cross product of a user defined vector 'v' with element normal, ie. a = v x c. Given the same user defined vector, AOPT=3 defines a material coordinate system that is rotated exactly 90 degrees from coordinate system defined by AOPT=2. ________________________________________________________________________ Date: 2013-03-22 16:12:34 -0700 (Fri, 22 Mar 2013) New Revision: 2956 Modified: trunk/Vol_I_Keyword/ELEMENT_SHELL.docx Log: Improve the documentation of the BETA keyword option of *ELEMENT_SHELL. Also explain how inputting beta=0 behavior has changed with a bug fix. ------------------------------------------------------------ *** NOTE (taken from email to _____ on 11/27/00) *** When *element_shell_beta is used with an orthotropic material, the material axes as defined by the AOPT option in the material input are rotated by the element PSI angle to get the reference direction for the element. The material axes for the element integration points are then rotated by the integration point beta angles in *section_shell. In summary, AOPT, PSI in *element_shell_beta**, and the integration point beta angles go into defining the material directions at each integration point. The 970 User's Manual is incorrect in saying that PSI is always measured from the N1 to N2 axis. See Remark 6 under *element_shell in the 971 User's Manual for a more complete explanation. (See ftp://ftp.lstc.com/outgoing/support/FAQ_kw/composites/mat54.matl_angle_check.k) **Nonzero PSI in *element_shell_beta overrides BETA in mat_002 and MANGLE in mat_054/55. (See ftp://ftp.lstc.com/outgoing/support/FAQ_kw/composites/mat54.aopt3.k and mat54.aopt2.k) BETA is *element_shell_beta (formerly called PSI in older Manuals) is applied even when AOPT=2 (can illustrate by looking a spcforc data from mat54aopt2.k) ________________________________________________________________________ Using beta angles to rotate the material coordinate system. A beta angle allows the user to reorient the material coordinate system by rotating it about the normal direction vector by some angle, beta. When using materials 22, 23, 33, 34, 36, 41-50, 54, 55, 56, 59, and 103, the user may define one beta angle for each layer of the element (at through thickness integration points) using the ICOMP flag and the B1, B2 etc parameters of *section_shell. A single beta angle may be defined for each element using the BETA option of *element_shell. Beta angles are summed if defined in both places. For materials 2, 21, 86 and 117, a default beta angle for all elements may be defined using the material's beta parameter if the material coordinate system is defined using AOPT=3, but not for AOPT=0 or AOPT=2. The BETA option for *element_shell overides the default value. The ICOMP flag of *section_shell cannot be used with these materials, so they are not as easy to use for layered composites. Using the BETA option of *ELEMENT_SHELL, arbitrary material orientation for any geometry can theoretically be defined. However, there is no obvious way to automatically generate the correct beta angles. These angles most likely need to be calculated by hand, or possibly by a customized program if an equation can be written to describe the material direction throughout the domain or subdomains. Regarding MCID option (Lee Bindeman, 6/26/09): I just changed the behavior of MCID option of *ELEMENT_SHELL for R4_53907, R4.2.1_53908, and R4.2_53910. This was necessary to fix a bug and to make it a useful option. The idea of MCID is that a shell element that uses anisotropic material can point to a coordinate system which will be used as the material coordinate system for that element. However, the implementation was not correct until my updates. First, there was bug that caused the material system to be wrong about half the time. Second, there was logic error that caused the rotation angle from the element system to the MCID system to be added to the rotation angle from the element system to the material AOPT system as if it was an added BETA angle. In fact the user's manual description for MCID suggests this behavior. In versions going forward, MCID has been made consistent with similar options in Nastran and other codes. Any element that points to a MCID system will have it's material system aligned with that system. If the MCID system z-axis is not normal to the shell, then the MCID x-axis is projected onto the shell element to become the material a-axis and the b-axis calculated by the cross product of the element normal and the a-axis. The AOPT option of the material will be ignored for these elements. As before, the beta rotation angles in the section data will be applied to each layer. ________________________________________________________________________ Element stress output in the material coordinate system. To output stress and strain values of anisotropic materials in the material coordinate system, set the CMPFLG to 1 (see *database_extent_binary). This flag effects the output of shell, solid, and thick shell stresses to the ascii ELOUT file as well as the binary D3PLOT files. ________________________________________________________________________ For orthotropic materials, AOPT only goes into establishing the initial material coordinate system. It has no effect on how the material coordinate system is updated through time. With the exception of material type 2 which uses a total Lagrangian formulation, <---- ??????? the material coordinate system is updated based on the rotation of the element coordinate system. This can be a real problem for solid elements which shear/distort badly in that the material coordinate system is largely influenced by the element connectivity (except that INN can be set to 3 or 4 in *control_accuracy in v. 970 to invoke invar. node numbering for solids). For shell elements, the dependence of material direction on element connectivity is eliminated by flagging invarient node numbering with *control_accuracy. By default, the local element system is: x is along node1-to-node2; y is orthogonal to x and in the plane of (node1, node2, node4); for shells; z is along the shell normal. Again, to make the local element coordinate system insensitive to the order of the nodes in the element connectivity, invoke invarient node numbering by setting INN = 2 (shells) or INN = 3 (solids) in *control_accuracy. Invarient node number for solids is available only in version 970 or later. Don't be confused into thinking the local material coordinate system is the same as the local element coordinate system. The two coordinate systems are not necessarily aligned but they are updated in the same manner. For mat 126, the material coordinate system update is dependent on the element formulation. Special element formulations 0 and 9 for mat 126 update the element coordinate system using different approaches. Formulation 0 is best suited for elements undergoing large shearing deformation. ________________________________________________________________________ RE: Orthotropic elastic constants See Section 18.7 of the 2006 Theory Manual, "Constraints on Orthotropic Elastic Constants". Shells are plane stress elements and so the laws governing 3D orthotropy (as in solid elements) don't apply to shells. For any orthotropic shell, the input constants EC, PRCA, and PRCB are not used. Furthermore, in the case of *mat_fabric, GBC and GCA are not used. We will add a "(not used)" note in the User's Manual soas not to mislead users in the future. ---------------------------------- In R11 and dev, it's recognized that the check on orthotropic elastic constants made for solid elements isn't really valid for shell elements. So a different check (Error 21413) was implemented for orthotropic shells. Running version dev with "msg=20397" on the execution line reveals more about the check on orthotropic constants for solids ... " Please modify values to give result in a positive value. 1.0 - prab*prba - prbc*prcb - prca*prac - 2.0*prba*prcb*prac where, prab=prba*Ea/Eb, prac=prca*Ea/Ec, prbc=prcb*Eb/Ec" Running version dev with "msg=21413" on the execution line reveals more about the check on orthotropic constants for shells ... "For 2D shell materials to remain numerically stable, material constants EA, EB, and PRBA must be input such that PRAB*PRBA < 1.0, where, PRAB=PRBA*EA/EB" ------------------------------------------ Revisions in dev svn log ... r120437 | lpb | 2017-09-20 17:11:10 -0700 (Wed, 20 Sep 2017) | 2 lines Not for release notes: Fixed blunder made moments ago. r120436 | lpb | 2017-09-20 17:06:15 -0700 (Wed, 20 Sep 2017) | 3 lines Added an error check [Error 20397] for valid Poisson's ratios for anisotropic materials that are used by shell elements. The existing check [Error 20397] was for 3D bricks and would fail to check if EC=0. ----------------------------------------- Model in Ticket#2018070910000053 reveals that as elastic constants approach the constraints described above, instablity can develop in the material. The material was made stable by reducing the spread between the large EA value and the other E, G values in MID 3.