_______________________________________________________________________ MAT_58 has a total-strain formulation, so it is not initializable with INITIAL_STRESS_SHELL. Ref: bug 10064 ____________________________________________________________________ See http://ftp.lstc.com/anonymous/outgoing/support/PRESENTATIONS/LS-DYNA_R800_NewFeatures.pdf, page 24 of 31. Author: Stefan Hartman Date: 2014-05-19 07:21:12 -0700 (Mon, 19 May 2014) Log: MAT_58: Possibility to define load curves for (elastic stress vs. strain) instead of constant elastic stiffnesses EA, EB and GAB For example, EA includes this description in the R8/trunk User's Manual... LT.0.0: Load curve ID or Table ID = (-EA) Load Curve. When (-EA) is equal to a Load curve ID, it is taken as defining the uniaxial elastic stress vs. strain behavior in longitudinal direction. Tabular Data. When (-EA) is equal to a Table ID, it defines for each strain rate value a Load curve ID giving the uniaxial elastic stress vs. strain behavior in longitudinal direction. Logarithmically Defined Tables. If the first uniaxial elastic stress vs. strain curve in the table corresponds to a negative strain rate, LS-DYNA assumes that the natural logarithm of the strain rate value is used for all stressstrain curves. Likewise for EB and GAB. --------------------------------------------------- Regarding the effect on time step (forward by JK on 3/1/16): Until r85537 there was no possibility to define proper poisson's ratio for PRCA and PRCB for MAT_58 and they were assumed to be the same as PRBA. And furthermore, until that time the stiffness used for computing the speed of sound was computed as stiff = max(E1,E2,E3) not taking into account any poisson's effect Most of the anisotropic materials compute the stiffness as the maximum of the diagonal terms in the elastic anisotropic stiffness matrix stiff = max(C11,C22,C33) which takes the poisson's effect into account. So with the change in r85537 (adding PRCA/PRCB to card4, column 7/8) I changed the computation for STIFF but only if these values are set, just to make sure that older decks will not change. To make the long story short: When using the load curves I always use: stiff=max(c11,c22,c33) where as in the version with constant E values I use 1. stiff=max(E1,E2,E3) if PRCA and PRCB are not set 2. stiff=max(c11,c22,c33) if PRCA/PRCB are defined explicitly _____________________________________________________________________________________ today I have committed some changes, especially for MAT_058 (and 158) to have the possibility to define proper poisson's ratios PRCA and PRCB. They were assumed to be equal to PRBA. Althought it was possible to define PRCA and PRCB for MAT_059, they were assumed to be PRBA as well, as MAT_059 uses the same initialization routine. So with the changes in r85537, the results for older decks with MAT_059 and shells may differ, especially when looking at the internal energies. For the solid routines I would not expect any changes. As for MAT_058 and MAT_158, the results for older decks should not change but it may appear a warning message that the utilized poisson's ratio may be illegal. sh 11/21/13 Date: 2013-11-21 02:37:37 -0800 (Thu, 21 Nov 2013) Log: Add poisson's ratios PRCA & PRCB to material cards. ----------------------------------------------------------------------------- Author: sh Date: 2013-11-21 02:29:56 -0800 (Thu, 21 Nov 2013) Modified: branches/R7.1/Vol_II_Materials/MAT_058__MAT_LAMINATED_COMPOSITE_FABRIC.docx Log: Added parameter description for transverse shear damage behavior (EPSF,EPSR,TSMD) --------------------------------------------------------------------------------- Author: sh Date: 2013-09-04 01:21:19 -0700 (Wed, 04 Sep 2013) Log: added optional card 8 and 9 Strengths and associated strains given as curves with strain rate on abscissa. Three smoothing options for strain rate. In contrast, *mat_158's rate behavior is described as follows: "A viscous stress tensor, based on an isotropic Maxwell model with up to six terms in the Prony series expansion, is superimposed on the rate independent stress tensor of the composite fabric. The viscous stress tensor approach should work reasonably well if the stress increases due to rate affects are up to 15% of the total stress. This model is implemented for both shell and thick shell elements. The viscous stress tensor is effective at eliminating spurious stress oscillations." ------------ 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. ERODS is the Maximum effective strain for element layer failure. A value of unity would equal 100% strain. The latest version of the User's Manual states: ERODS.GT.0.0: fails when effective strain calculated assuming material is volume preserving exceeds ERODS (old way). ERODS.LT.0.0: fails when effective strain calculated from the full strain tensor exceeds |ERODS|. To elaborate just a bit: When ERODS.GT.0.0, ERODS is evaluated against a scalar strain computed 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. To get 15 extra history variables written to d3plot, you'd need to set NEIPS=15 in *database_extent_binary. When ERODS.LT.0.0, ------------------------------------------ r98991 | tobias | 2015-06-29 02:06:10 -0700 (Mon, 29 Jun 2015) | 6 lines Correct the computation of effective strain for options ERODS<0 in *MAT_058 and EFS<0 in *MAT_261 and *MAT_262. The shear strain term was twice the size as it should have been: sc2=sqrt(sb**2+d4tot(i)**2) --> sc2=sqrt(sb**2+(0.5*d4tot(i))**2) Ticket#2015062510000164 -------------------------------------------- abs(ERODS) is evaluated against a scalar strain that is closer to the traditionally defined effective strain which accounts for the through thickness strain and transverse shear strains. This option was added in response to the observation that history var#15 (see above) was not in close agreement with "effective strain" as plotted by LS-PrePost and this bothered some people. 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 http://ftp.lstc.com/anonymous/outgoing/jday/composites/allin1_ortho_bend.erods*.k) Whether ERODS is set negative or positive, it will be in the ballpark of classic effective strain as described in the literature. My 2 cents is that a failure criterion based on any scalar strain quantity can offer only an ad hoc approximation of real failure. If you're uncomfortable with using ERODS as a failure criterion, set it to a very large value so as to disable it. There are several strain-based failure criteria you can optionally invoke using *mat_add_erosion. Failure criteria which trigger material erosion are not true material properties in the sense that factors unrelated to the material model affect what constitutes an appropriate value for the failure parameter(s). Such factors include type of loading and mesh refinement. As such, failure parameter(s) require calibration according to the model construction and simulation conditions. In short, some calibration of model results to component tests resulting in material failure are necessary in order for reliable prediction of material failure to be possible under similar circumstances. By similar, I mean similarity in geometry, mesh density, loading conditions, etc. 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. 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), --------------------------------------- The History-values 4,5 and 9 for MAT_058 are the so-called threshold values. These parameters indicate the stress state in the failure criterion. For example for FS=-1.0, the failure criterion in longitudinal tension would be: (sig_11/XT)^2=1 and r1=(sig_11/XT)^2 So the r1-value will be in the range between [0..1]. At the beginning it is 0, then it will grow until 1, which equals the actual reaching of the specific failure criteria and then it will decrease again due to damage evolution. The same holds for r2 and the third value r3 is only available for FS=-1. So basically the r-values describe an indicator of how far the current stress state is away from reaching the actual failure criterion. sh 1/30/14