Display of Winfrith reinforcement/rebar by LSPP 4.1 is available 12/9/13. _______________________________________________________________________ In the RATE=0 model, please use hourglass type #5, like it is set in the RATE=1 (see input below). This will eliminate the negative internal energy. If you write back again, please be sure to state the objective of the analysis. *CONTROL_HOURGLASS $# ihq qh 5 0.100000 Ticket#2014100910000072 _________________________________________________________________________ Added observation: For RATE=0 and 1, hist vars 30-32 can include negative values. I don't know the meaning of a negative crack width. Excerpts from Ticket#2014052310000046: Hi, Richard. I really appreciate all the useful information. With that information in hand, I looked closer at the results of a RATE=1 example (attached). In postprocessing, I notice there is often a match between the max values of hist vars 30/31 and the input value of FE. So at first glance, it would seem these history variables (when positive) are crack widths, not strains, since FE is defined as a crack width. But the attached images reveal another interesting point. Comparing hv 30 and hv 45 for an element (#806 in attached example using RATE=1), these two hv's match until the time at which they reach FE, after which time hv 30 is constant and equal to FE, whereas hv 45 continues to climb substantially and eventually taper off. Similarly, I overlayed hv 31 and hv 46 to see what's going on in the 2-direction. In the 2-direction, the crack width never makes it to FE and so hv 46 truly is the high tide crack width. My take on this is that hv 30/31/32 are the high tide crack widths but which get capped at FE. Hv 45/46/47 are the current crack widths (no cap). Negative values of these hv can be ignored in the sense that they do not represent a crack width, i.e., they occur only before cracking occurs (your explanation bears out in the test case). I'm not sure what the negative values of these hv represent. At present, the User's Manual makes no mention of extra history variables for *mat_winfrith. I should probably take some action on that point. Any further comments you have are welcome. (And please don't hesitate to document RATE=2.) In your debt as always, Jim Ticket#2014052310000046 (Please retain this number for continued support.) 06/03/2014 23:48 - Richard Sturt wrote: Jim, Yes, the 3 directions are mutually perpendicular and crack 1 forms first as you describe. That is true for all the variants of RATE. By the way, once formed, the crack directions are fixed relative to the element. That is often a source of concern – you can crack an element by pulling in, say, the x-direction, push that crack closed, then apply some shear in the xy direction and end up with a max principal stress greater than the input tensile strength of the material. Because the material model is now checking for cracks only at 90-deg to the existing crack, it doesn’t see the new max principal stress at 45-deg. Users quite reasonably expect that the material can never sustain tension greater than the input UTS. In the past I tried programming a “rotating crack” model but that has its own problems that are (in my opinion) worse than the fixed-direction cracks. The real problem with fixed-direction cracks is the limit of 3 cracks. I’m surprised about the negative “crack widths for RATE=0 and RATE=1 - I’m sure these are “high tide” crack widths. From what I can see in the coding, vars 30-32 might be negative before a crack forms in a particular direction. Once a crack has formed, vars 30-32 can only increase. The crack flags for directions 1,2 and 3 are vars 36,37,38 respectively, e.g. var36 will change from zero when crack 1 forms. You can use these to find whether the “negative crack width” occurs before or after crack formation. I believe the current crack widths are vars 45,46,47. Another point to check for RATE=0 or 1, I’m not 100% certain whether the “crack widths” are actual widths (e.g. millimetres) or strains. From the coding they look a bit like strains. Richard I came back around to looking at history vars 30-32 for RATE=0 and RATE=1 and the values do correspond to crack widths, with or without stiffness damping. I don't know what set of circumstances made me come to the earlier, contradictory conclusion. When RATE=2, the high tide crack widths (hist vars 3,4,5) make sense and are in agreement with aea_crack. I notice d3hsp doesn't acknowledge RATE=2 but the ottosen constants will be different than RATE=1. Jim Jim, The main reasons for not putting RATE=2 in the manual are presentational rather than technical – e.g. imagine this in the manual: - RATE=1 – no rate effects, occasional weird behaviour. Crack width in history variables 30-32 - RATE=2 – same but slightly improved crack algorithm. Crack width in history variables 3-5 That wouldn’t look good! Another reason: my “grand plan”, which may never come to pass, is to merge *MAT_172 (currently shells and beams only) with RATE=2 Winfrith for solids and get the best of both material types. I always imagined RATE=2 as a temporary fix (since 2008…). I don’t have any problem with you telling users about RATE=2 if you think it’s helpful. The issues with RATE=1 are more around incorrect treatment of poisson effects for open cracks, and occasional non-physical stress jumps – that would be the reason I would prefer RATE=2. Sometimes MAT_WINFRITH benefits from a little *DAMPING_PART_STIFFNESS. Always run it in double precision. Richard I reckon that RATE=0 (MAT 84) has some bad bugs. RATE=1 (MAT 85) is OK and in many cases gives the same result as my version. If you want to try my version, set RATE=2. The other inputs (FE and so on) are the same as for RATE=1. The source code (eg to look at history variables) is subroutine f3dm84_apr08. Richard In standard MAT 84 it looks like the variables you need are ef1,ef2,ef3 which are ex vars 30,31,32. From what I can make out in the MAT 84 coding, ex vars 3,4,5 are some sort of non-dimensional crack-opening variable that describe the reduction of tensile stress from the full value FT at cd1=0, to 0.25FT at cd=0.71, to zero at cd1=5.16. I never use the standard MAT_WINFRITH so I could be wrong about the above. Richard 5/28/14 __________________________________________________________________________ Q:Please see the attached email from xxx to suggestions@lstc.com, dated 12/24/10. You and I were CC'd. I see no evidence that you or I replied or otherwise followed up on this matter. There seems to be no enhancement request logged in bugzilla either. I was reminded of the issue ... because someone else has asked about the units of crack width in the binary crack file. Under Setting > Concrete Crack Width in LS-PrePost, above the box where you enter a crack width, there is a line that reads "Min Width (0.0<=w<0.5)". This gives credence to the notion that units of crack width in the binary crack file are hardwired. Are you familiar enough with *mat_winfrith to sort out these matters of crack output? If the questions are answered, I will gladly add some documentation to the User's Manual. The attached model (whose origin is unknown) will create a binary crack file if q=filename is included on execution line, and will also write an ASCII aea_crack file (by virtue of *DATABASE_BINARY_D3CRACK). JD 1/8/13 Ans: I use *MAT_WINFRITH quite often but I do not use the crack output file, so can't answer the question. The input parameter FE is the crack width at which the tensile strength has ramped down to zero; our models are in metres and we input this parameter in metres. RS 11/14/13 ___________________________________________________________ From enhancement request 5178 regarding RATE (mat 84 vs. mat 85): I have no idea where the recommendation in the Users Manual to use RATE=0 originated. I concur that results of the test case using RATE=1 (mat85.k, i.e., no rate effects) makes far more sense from an energy standpoint than the results from RATE=0 (mat84.k , i.e., rate effects included). I confirmed that the parameter FE in the material input was changed in correspondence to the value of RATE. I noticed that cracking is different in the two runs, however cracking is fairly minimal in both cases in terms of number of cracked elements. Reducing the time step scale factor in the RATE=0/mat84 case helped only slightly... there is still a large buildup of negative internal energy. See the attached jpeg. So unless someone can provide justification for the current recommendation in the Users Manual to set RATE=0 or the source of the negative energy can be determined and corrected for RATE=0, I propose that the recommendation be switched to RATE=1. This enhancement request will be assigned a tracking number. For reference, the two input decks are attached. ______________________________________________________________ In regard to cubic vs. cylindrical test specimens: 1. Remarks from Len Schwer (9/24/10): That model was developed in Europe and in the source coding I saw a line that referred to the ‘cubical’ unconfined strength of the concrete. The Winfrith model reference works are primarily British and I assume cubical specimens were used. In general, I would say MAT016, MAT072R3 and MAT159 are based on cylindrical sample strengths, but for the Winfrith model I think cubical strength should be used. The models themselves are test specimen shape independent, i.e. they are just mathematical constructions. However, if they rely on empirical data, like the CEB**, then they could contain internal parameters that are test specimen shape dependent. [I will have to look to see if the information in the CEB is based on cylindrical or cubical specimens.] The real bottom line is, if you are using these models with only the unconfined compressive strength, you are only approximating the concrete behavior. So if you vary the strength by about 20%, i.e. the difference between cubical and cylindrical strength, you are still within the uncertainty band for any measured concrete response. ** Comite Euro-International du Beton, CEB-FIP model code 1990, Redwood Books, Trowbridge, Wiltshire, UK, 1993. Sort of the 'bible' for concrete properties based upon unconfined compressive strength. Many concrete models use the strain rate and specific fracture energy values provided. 2. From: Martin Bleackley [mailto:martin.bleackley@serco.com] Sent: September 24, 2010 12:52 PM To: Cc: Ian Slater; John Duthie Subject: RE: Inquiry about MAT_WINFIRTH_CONCRETE [Serco No Marking] As this model has been integrated into DYNA 3D it will likely use the definition of concrete strength as the other concrete model(s) residing in DYNA. As the cylinder strength of concrete < cube strength, it is usual to use the former. Although I cannot say for sure, it is likely to be the cylinder strength as we have documentation validating the model (Load v strain) against a concrete cylinder test. Regards Martin Structural Integrity Serco Technical Services Walton House 404, The Quadrant Birchwood Park Warrington, Cheshire, WA3 6GA Direct telephone +44 (0)1925 254952 Fax +44 (0)1925 252285 Email: martin.bleackley@serco.com ____________________________________________________ Richard Sturt implemented thermally-sensitive properties Revision 58944 3/18/10. Should not affect pre-existing models. On 8/15/10, Len Schwer sent me his overview of mat_winfrith_concrete (2 files) which can be shared... http://ftp.lstc.com/anonymous/outgoing/jday/concrete/Winfrith-11May10-schwer.pdf http://ftp.lstc.com/anonymous/outgoing/jday/concrete/Winfrith-strain-rate-options-13Aug10-schwer.pdf Regarding dynain, I found that by setting NSHV=56 in *interface_springback_lsdyna, the *initial_solid_stress data for mat_084 is sufficient to initialize the elements in a subsequent analysis. I'm not certain if NSHV needs to be set that high but clearly NSHV=0 is not adequate. MAT_WINFRITH - prevent non-orthogonal crack directions that could lead to very non-physical stress states (bug affecting all previous versions of LS-DYNA) R.Strut 2/9/2007 7/26/06 Richard Sturt: history variables reordered... *MAT_WINFRITH_CONCRETE (Mat 84/85): 1) History variables re-ordered to allow identification of cracked elements using "extra variables" (NEIPH on *DATABASE_EXTENT_BINARY): Extra variable 1 = Crack Flag (0=uncracked; 1,2, or 3=cracked) Extra variable 2 = Crack opening damage variable (mat 84 only) Extra variable 3 = Crack opening strain in direction 1 (mat 84 only) Extra variable 4 = Crack opening strain in direction 2 (mat 84 only) Extra variable 5 = Crack opening strain in direction 3 (mat 84 only) Jim, I'm not 100% sure about this, but: Icrak1 = 1 means that the first crack is forming, but is still on the descending branch of the stress-displacement curve (not yet fully open) Icrak1 = 2 means that the crack started to form but has unloaded (or is reloading) from the descending branch. Icrak1 = 3 means that the crack is full open, OR has been fully open in the past Icrak2 and Icrak3 are the equivalent for the second and third crack to form If the element crushes (reaches the Ottosen yield surface in compression), then Icrak1, Icrak2 and Icrak3 are set to 3. History variable #1 = max(Icrak1,Icrak2,Icrak3). Regards Richard 4/20/10 -----Original Message----- From: Jim Day [mailto:jday@lstc.com] Sent: 20 April 2010 16:43 To: Richard Sturt Subject: quick winfrith question Hi, Richard. In mat_084, cracks appear via q=d3crack when extra history variable #1 is equal to 3. What do values of 1 and 2 for extra history variable #1 represent? Thanks, Jim __________________________________________________________ See http://ftp.lstc.com/anonymous/outgoing/jday/concrete/Winfrith_Paper_Feb1995.pdf and http://ftp.lstc.com/anonymous/outgoing/jday/concrete/Winfrith_Paper_Oct1987.pdf for two papers by Broadhouse. Also of interest, http://ftp.lstc.com/anonymous/outgoing/jday/concrete/Algaard_impact_Winfrith_concrete.pdf Simple examples including comparison of implicit and explicit: http://ftp.lstc.com/anonymous/outgoing/jday/concrete/mat84.tar ________________________________________________________________ PRECISION: My original example of rebar coupled to concrete was already set up with mat_084. I removed the loading and coupling from that example (as in junk2.k) and saw spurious KE from a single precision run but not from a double precision run (linux32 platform). Though energies produced by running the loaded and coupled example rebar2.load.k in single precision are spurious (glstat.sp), the displacement due to the applied loading is within a fraction of one percent of the displacement calculated from the double precision run. The energies from the double precision run make sense (glstat.dp). If I had to make a recommendation, it would be this. If you use mat_084, run double precision LS-DYNA. Jim 5/30/07 __________________________________________________________________ The solid formulation is automatically switched to 1 if 2 is specified (Warning message is written to d3hsp). __________________________________________________________________ I have no strong basis for recommending a value of FE. The Winfrith model was not developed by LSTC but rather by a company called AEA. There are gaps in the history and documentation of the model that I fear may never be closed. In the demo model for mat_084 supplied by AEA ( http://ftp.lstc.com/anonymous/outgoing/jday/concrete/demo.mat84.k.gz ), FE is set to 110 kg/s^2. In the demo model for mat_085 (http://ftp.lstc.com/anonymous/outgoing/jday/concrete/demo.mat85.k.gz ), FE was set to 45e-6 m. _______________________________________________________________________________ Include q=d3crk on the LS-DYNA execution line to create a crack file. (NOTE: Do not use q=remap as this has an entirely different meaning in LS-DYNA. Anything besides "remap" or "REMAP" is OK.) ASCII d3crack file (named "aea_crack"): When you use the interactive command "q=d3crk", only the binary d3crack file is generated but when we use the *DATABASE_BINARY_D3CRACK both binary file and ASCII crack file (called aea_crack) are generated. (NOTE: *database_binary_d3plot, not *database_binary_d3crack, controls output interval of binary crack file. This per Len Schwer 7/26/10.) if you aren't interested in viewing cracks until late in the simulation, you can omit "q=" on the execution line when you first submit the job. No d3crack data will be produced during the run. When you're ready to start producing d3crack data, stop the job and write a dump file, e.g., by issuing a "sw1" sense switch. Then you can restart the job and include "q=" on the exec line, e.g., ls971 r=d3dump01 q=d3crack and d3crack data will be subsequently written. Bug reported on 9/9/08: R3.1, R3.2, and R4 beta write only the time zero state to aea_crack. R2 is OK. Update >> bug 1549 was fixed on 1/7/10. LS-PrePost apparently does not read the ASCII crack file (bug 5180) To show cracks, read the d3plot database into LS-Prepost and then select File > Open > Crack from the top menu bar to open the binary crack database. Or, you can open the databases directly from the execution line, e.g., lsprepost d3plot q=d3crk Cracks will then be shown as white lines on the mesh plot. By default, all the cracks are shown. You can set the minimum crack width of displayed cracks by choosing Setting > Concrete Crack Width. (Cracks wider than width specified will be displayed.) Misc > Model Info will reveal the number of cracked elements and the maximum crack width in a given plot state. _______________________________________________________________________ Rebar is not allowed to take compressive stress. The concrete and rebar stresses are evaluated separately and combined as shown below to get total stress: c evaluate total stresses c do 400 i=lft,llt sig1(i)=(1.0-pxr(i))*sigc1(i)+pxr(i)*sigr1(i) sig2(i)=(1.0-pyr(i))*sigc2(i)+pyr(i)*sigr2(i) sig3(i)=(1.0-pzr(i))*sigc3(i)+pzr(i)*sigr3(i) sig4(i)=sigc4(i) sig5(i)=sigc5(i) sig6(i)=sigc6(i) ... Thus it would appear that pxr, pyr, and pzr are the fractions of reinforcement in the x, y, and z directions respectively. Mat_084 has 54 extra history variables. Based on a cursory examination of the source code, the extra history variables appear to be: ***NOTE: add 5 to history var numbers below *** 1 to 6: sigc1 to sigc6 (concrete stresses) 7 to 9: sigr1 to sigr3 (rebar stresses in the x, y and z directions) 10 to 12: pxr, pyr, pzr (fractions of reinforcement) 13 to 15: zl, zm, zn (used in transformation from global coordinate system to principal coordinate system) 16 to 18: sf1, sf2, sf3 (concrete stress in principal coordinate system) 19 to 21: ef1, ef2, ef3 (extension in 1st crack direction and two orthogonal directions) 22 to 24: epx1, epx2, epx3 (rebar strains; if greater than UELONG, then sigr set to zero) 25 to 27: crak1, crak2, crak3 (crack indicators) 28 to 33: eps1 to eps6 (mesh strains) 34 to 36: ex1, ex2, ex3 (set equal to ef1, ef2, ef3, resp. if tensile) 37 to 39: tc1, tc2, tc3 (time that 1st, 2nd, and 3rd cracks initiate) 40: epv (volumetric yield strain) 41: rnj (following are for crack opening history) 42 to 44: cd1, cd2, cd3 45 to 47: td1, td2, td3 48: dameng