------------ NOTES on MAT_058 ----------------- Note regarding material orientation: When using *part_composite or *integration_shell, the orientation data in the *MAT input (AOPT, associated vector(s), BETA) from the material of the first orthotropic integration point is used for all orthotropic integration points. Each integration point still retains its own orientation angle as given by card 3 of *section_shell or by BETA from *part_composite. If mat58 becomes quickly unstable, run on v. 971 which does some checking on orthotropic elastic material constants. Also, set Ec to nonzero value (affects timestep). *mat_058 input values on Cards 6 and 7 should all be positive. Shear moduli should NOT be orders of magnitude less than the E values. The following may help if instability occurs: - set ISTUPD=0 in *control_shell. - set LAMSHT=0 in *control_shell. - set INN=1 in *control_accuracy - include *damping_part_stiffness for the part (COEF=0.1) - include shell bulk viscosity by setting TYPE = -2 in *control_bulk_viscosity See ftp://ftp.lstc.com/outgoing/jday/faq/composite.models Test models ftp://ftp.lstc.com/outgoing/jday/composites/allin1*.k are illustrative as to basic composite material model behavior. A simple model which can be exercised to observe and compare behavior of various composite material models in LS-DYNA is allin1_ortho_tension_15layers.k. In this model, I've set CMPFLG=1 in *database_extent_binary so that the stresses and strains are output in the material coordinate system (longitudinal=x, transverse=y). For any chosen element, you can plot a component of stress vs. time at all through-thickness integration points simultaneously using History > Int.pt. in LS-Prepost. Some miscellaneous notes on mat_58: dam ... indicates predamage for the crashfront (stored as "eff. plastic strain" in database) The first three extra history variables are: w1 .... damage parameter for the first local inplane direction w2 .... damage parameter for the second local inplane direction ws .... damage parameter for shear in the local 1-2 plane The damage parameter is 1 - exp[] where exp[] is the exponential term in Eq. 5 of Karl's paper. (Must first apply typo corrections to Eq. 5 as described below.) Be sure and set NEIPS to 3 in *database_extent_binary in order to output w1, w2, and ws. Also set MAXINT to the number of shell integration point for which you want output. History variables 1, 2, and 3 of mat_058 are the damage parameters for each particular integration point. If you want the average value over all the integration points, click History > Element > history var#x > Surface: Average > Plot The constitutive matrix is a function of these damage parameters w1, w2, and ws. Except as noted below, the input strain values for mat_058 are tensorial (true) strains. The shear strain values GAMMA1 and GMS are engineering shear strains, i.e., twice the tensorial shear strain. In mat_58, the scalar strain quantity which is evaluated against the failure strain ERODS is computed, at each integration point, from the two in-plane normal strains and the in-plane shear strain. The three values of strain that go into its computation are available for output as extra history variables 10, 11, and 12. scalar strain = 2/sqrt(3) * sqrt[ 3*((eps1+eps2)/2)^2 + ((eps1-eps2)/2)^2 + eps4^2 ] where eps1 = hist var 10 eps2 = hist var 11 eps4 = hist var 12 = engineering (not tensorial) shear strain In version 971, this scalar strain value is history variable #15. Some background/commentary on derivation of this scalar strain is given in mat58_ERODS_commentary (available on request; contact jday@lstc.com) *** UPDATE *** Tobias, Revision 60008 Update for *MAT_058. When ERODS<0 is chosen, then another effective strain is calculated, which is closer to the real effective strain. *** END UPDATE *** To write 'extra' history variables to d3plot, use NEIPS in *database_extent_binary. This scalar strain value is not equivalent to LS-Prepost's "effective strain". The latter is computed from the 6 global strain components. The 'plastic strain' stored in d3plot and elout is not a strain value at all in the case of mat_58 but rather an indicator flag for failure. When the effective strain at an integration point exceeds ERODS, that integration point fails and ceases to carry stress. The element is not deleted until ALL integration points have failed. (see test/1shell/all*bend.k) If the quantity (E11C * EA/XC) is less than zero, then the input parameters on Card 6 are not interpreted as strains but are instead taken directly as the Weibull Scale Parameters (m) as defined in Matzenmiller, Lubliner, and Taylor. Relating these m values to the beta defined in Eq. 5 of Schweizerhof: mi = 1 / (ln(betai)) The source code also seems to indicate that TAU1 and GAMMA1 are used not only if FS < 0 but also if FS > 0. Corrections to the Schweizerhof paper: "Crashworthiness Analysis with Enhanced Composite Material Models in LS-DYNA - Merits and Limits", 5th International LS-DYNA User's Conference (1998): 1. There are two negatives in the exponent in equation 5. Only one is needed as the exponent is supposed to be negative. Also, the condition on beta should be beta > 1 and not b > 0. 2. The multiplier at the tail end of Eq. 5 should be written as (epsi * Ei), not epsi/Ei. 3. Figure 2: Caption should read "..., (b) DFAILT = 0.03" _______________________________________________ Based on a uniaxial compression test of mat_58: Local Eps-zz is NOT zero even ISTUPD=0 and shell thickness remains constant! (Similar for mat_59) When ISTUPD=1, shell thickness begins to reduce after stress attains SLIM value (thickness, intuitively, should continue to increase as element is being compressed in-plane). _______________________________________________ Regarding nonlinear shear behavior (active when FS < 0 or FS > 0), refer to the figure in the mat_058 section of the Users Manual. The shear stress-strain behavior is nonlinear until the point GAMMA1,TAU1 is reached and follows Eq. 5 in the "Merits and Limits..." paper by Schweitzerhof et al. but some explanation and correction of the Equation is required: - There are two negatives in the exponent in Eq. 5. Only one negative is needed as the exponent is supposed to be negative. - Also, the condition on beta should be beta > 1 and not b > 0. - The multiplier at the tail end of Eq. 5 should be written as (epsi * Ei), not epsi/Ei. - When it comes to describing the nonlinear shear behavior, subtitute the following into Eq. 5: TAU1 for sigfi GAMMA1 for epsq gamma for epsilon G for E The shear stress-strain curve reverts to a linear relationship between points GAMMA1,TAU1 and GMS,SC. _______________________________________________ If the quantity (E11C * EA/XC) is less than zero, then the input parameters on Card 6 are not interpreted as strains but are instead taken directly as the Weibull Scale Parameters (m) as defined in Matzenmiller, Lubliner, and Taylor. Relating these m values to the beta defined in Eq. 5: mi = 1 / (ln(betai)) For mat_058, the variable labeled in LS-Prepost as "plastic strain" corresponds to the variable dam(nlq). Up to 15 extra history variables can be written for mat_058. hist var #1 = w1(nlq), hist var #2 = w2(nlq), hist var #3 = ws(nlq), hist var #4 = r1(nlq), hist var #5 = r2(nlq), hist var #6 = q1(nlq), hist var #7 = q2(nlq), hist var #8 = efail(nlq), hist var #9 = r3(nlq), hist var #10 = d1tot(nlq), hist var #11 = d2tot(nlq), hist var #12 = d4tot(nlq), hist var #13 = qq1(nlq), hist var #14 = dt(nlq), hist var #15 = c11(nlq), I would have to scrutinize the source code to reverse engineer what meaning is attached to the above variables.