|
[Sponsors] |
Defining pre-existing Fracture as function of time and Position |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
July 28, 2022, 11:56 |
Defining pre-existing Fracture as function of time and Position
|
#1 |
New Member
Axel Dorian
Join Date: Nov 2018
Posts: 16
Rep Power: 8 |
Using the basics model of Solid mechanics or Solids4Foam on FE4.0/4.1 for Solid Tutorials, on fractures, the pre-exisiting crack is predefined :
in the fvSolution file, we have : crackLimitingBoxes 1( (0 -1e-5 0)(0.06 1e-5 1) // -1e-5 ----- 1e5 ); and in the case file 0/U (D) for displacement, the crack is defined as : crack { type solidCohesive; relaxationFactor 0.01; contact no; penaltyScale 1; frictionCoeff 0.1; explicitSeparationDistance no; value uniform ( 0 0 0 ); } This assumes the crack height and width are fixed. 1. Please, how can I do to set the crack height/width as a function of time and position? We have that G = - dΩ/ds , where : Ω is the strain energy only affected by the change in fracture surface area: dΩ = (dΩ/ds)dΩ G is the surface Energy release s : crack surface area in the file .....\src\solidModels\arbitraryCrack\solidCohesive \solidCohesiveFvPatchVectorField.C, the formula : if ( ((currentGI_[i]/GIc[i]) + (currentGII_[i]/GIIc[i])) >= 1 ) { //Pout << "GIc[i] is " << GIc[i] << ", curG is " << currentG << endl; if (!cracked_[i]) { Pout << "Face " << i << " is fully cracked" << endl; } cracked_[i] = true; gives the condition criteria for propagation. In the syntax below if (dict.found("oldGI")) { oldGI_ = scalarField("oldGI", dict, p.size()); } a declaration and definition of the variable oldGI ? Or In FE4.1/tut/solidMechanics/elasticAcpSolidFoam/crackingBiMatDcbDugdale/0 is it proper to define oldGI as follow: crack { type solidCohesive; relaxationFactor 0.01; contact no; penaltyScale 1; frictionCoeff 0.1; explicitSeparationDistance no; oldGI 220; for instance value uniform ( 0 0 0 ); } 2. Regarding the Surface Energy release, how can one record or extract the data file of Energy release variation w.r.t. crack surface area, to time, and Temperature as well in thermal stress is included? Thank you. |
|
August 18, 2022, 13:34 |
|
#2 | ||
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,093
Rep Power: 34 |
Hello Axello,
Quote:
The crack limiting boxes are optional and if they are not defined then cracks are allowed everywhere in the domain. Quote:
Hmnn.. I am not sure I understand your question. oldGI refers to the total energy dissipated up until the last time-step. This is required because the energy must be integrated to determine how much has been dissipated. Once this dissipated energy reaches the critical energy then the face is fully cracked. What exactly would you like to plot? GI vs time? crack surface area vs time? |
|||
October 11, 2022, 09:44 |
|
#3 |
New Member
Axel Dorian
Join Date: Nov 2018
Posts: 16
Rep Power: 8 |
Dear Dr. Philip,
Thank you for your reply. I have been trying to run the solver and case without precising CrackLimitBoxes, that is in the file fvSOlution, I commented : crackLimitingBoxes 1( (0 -1e-1 0)(0.06 1e-1 1) ); I could have also commented the code portion in the file CreateCrack: foam-extend-4.0/applications/solvers/solidMechanics/elasticAcpSolidFoam/CreateCrack From line 65 // limit crack to specified boxes to line 148. Does this makes sense to you? While doing this, I have strange results as shown in the first image (at the Left). Please how to properly apply the fracking with limitBoxes and have such a result as the second image (at the right)? Thanks in Advance. |
|
October 11, 2022, 10:03 |
|
#4 | |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,093
Rep Power: 34 |
Quote:
Note that the work from Bryant et al. used procedures that may not be available in solids4foam. |
||
October 11, 2022, 10:08 |
|
#5 | |
New Member
Axel Dorian
Join Date: Nov 2018
Posts: 16
Rep Power: 8 |
Quote:
I get your point here. However, when I display the GI or GTotal on paraview, there is no variation. I don't know why. In the constant folder, when defining the cohesizeProperties, we have : type dugdale; sigmaMax sigmaMax [1 -1 -2 0 0 0 0] 10e6; tauMax tauMax [1 -1 -2 0 0 0 0] 10e6; GIc GIc [1 0 -2 0 0 0 0] 200; GIIc GIIc [1 0 -2 0 0 0 0] 200; Since we already have GI and GII, How are GI and GII calculated to have (GI/GIc) + (GII/GIIc) >=1 as propagation criteria ? The same with sigmaMax and tauMax. How do we get sigmaMaxc and tauMaxc to get (sigmaMax/sigmaMaxc)^2 + (tauMax/tauMaxc)^2 >=1 ? The value of GI and GI with GTotal should change as the fracture propagates, right? Code:
What exactly would you like to plot? GI vs time? crack surface area vs time? Another issue here, since I can't get the fluid mesh to enter the rock domain as the fracture propagates, I defined a BC as given in the image in attached. scalar meanU = gSum(U & patch().Sf())/gSum(patch().magSf()); Fracture Pres = -(nu./kperm.*meanU); Now I want to store (in a .txt file) and display/plot (Gnuplot) this variation of this BC (Fracking Pressure) at Fracture walls. Please how to save my BC variation with time in a .txt ? I want to store Frac Press evolution in a .txt and plot it later to see the variation. Thank You Dr. Philip. |
||
October 11, 2022, 10:22 |
|
#6 |
New Member
Axel Dorian
Join Date: Nov 2018
Posts: 16
Rep Power: 8 |
Dear Philip,
I want to reproduce some results of Dongkeun Lee in the his PhD thesis "A Model for Hydraulic Fracturing and Proppant Placement in Unconsolidated Sands". In the criterion for fracture initiation given in updateCrack.H (tN/tNC)^2 + (tS/tSC)^2 >1 to crack a face, how to you assess tNC and tSC? Also how do the condition (GI/GIc) + (GII/GIIc) > 1 executed? How do you find the GI and GII ? Because in CohesiveProperties, cohesive { type dugdale; sigmaMax sigmaMax [1 -1 -2 0 0 0 0] 10e6; tauMax tauMax [1 -1 -2 0 0 0 0] 10e6; GIc GIc [1 0 -2 0 0 0 0] 200; GIIc GIIc [1 0 -2 0 0 0 0] 200; } only sigmaMax, tauMax GIc, GIIc are given. Thank You. |
|
December 21, 2022, 11:19 |
|
#7 | |
New Member
Axel Dorian
Join Date: Nov 2018
Posts: 16
Rep Power: 8 |
Quote:
Hi Philip, Please can I have your inputs on this? Best Regards, Axel |
||
December 21, 2022, 12:05 |
|
#8 | |
New Member
Axel Dorian
Join Date: Nov 2018
Posts: 16
Rep Power: 8 |
Quote:
Hi Philip, Please can I have your view on the issues mentioned above? I finally got how to record the pressure variation on .txt file. Regarding the plotting of GI and GII, it does not change values on Paraview but vary in simulation timesteps (see attached). Finally, please how can I plot the : (c) Crack surface area vs Time ; (b) GI vs Time ; (c) GII vs Time ; (c) GTotal vs Time ; regards, |
||
December 21, 2022, 12:18 |
|
#9 | |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,093
Rep Power: 34 |
Quote:
In Dongkeun's work, he used a custom form of the solidCohesive boundary condition, where a hydraulic pressure was applied to the cracked patches. This hydraulic pressure increased as a function of the injected fluid and the crack volume, i.e. the pressure increases as the amount of injected fluid increases, but when the crack propagated, the pressure may temporarily drop as the volume increased. You may like to contact Dongkeun to see if his boundary condition can be shared. Philip |
||
February 9, 2023, 03:20 |
|
#10 | |
New Member
Axel Dorian
Join Date: Nov 2018
Posts: 16
Rep Power: 8 |
Quote:
Hi Philip, Thanks for your reply. Please how can I plot the : (a) Crack surface area vs Time (mostly this); (b) GI vs Time ; (c) GII vs Time ; (d) GTotal vs Time ; Also, in the crackingBiMatDcbDugdale case, what represents the materials file? Is it to define the material properties such as permeability or porosity or strength or something else? Thank You !!! |
||
February 14, 2023, 06:17 |
|
#11 |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,093
Rep Power: 34 |
Hi Axel,
Sorry for the delay. It is possible to plot all these values, however, you need to edit the code to print out this data. Which "materials" file are you referring to? And which version of code? |
|
February 14, 2023, 06:22 |
|
#12 | |
New Member
Dorian
Join Date: Mar 2021
Posts: 10
Rep Power: 5 |
Quote:
Thanks for your reply. Please can you give me hint or tip on how to edit the code to have the crack surface area Vs Time? As regarding the materials, see the image below of what I referred to. Thank You. |
||
February 14, 2023, 12:14 |
|
#13 |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,093
Rep Power: 34 |
OK, you are referring to elasticAcpSolidFoam in the solidMechanics toolbox, as opposed to solids4foam.
In the solidMechanics toolbox, the "materials" file is used to indicate the different material regions, e.g. "0" indicates a cell is part of material0, "1" is part of material1, etc. In solids4foam, the materials file was removed, and, instead, material regions are indicated using cellZones. In terms of writing out the data you want, I suggest becoming familiar with the code in the solidCohesive boundary condition and then create an output file, e.g. OFstream myFile("myFile.txt"), and write any information you are interested in. |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
[General] Extracting ParaView Data into Python Arrays | Jeffzda | ParaView | 30 | November 6, 2023 22:00 |
water injection error (modify the position of water injection) | wjchoi | Main CFD Forum | 0 | January 17, 2022 08:17 |
should Courant number always be kept below 1? | wc34071209 | OpenFOAM Running, Solving & CFD | 16 | March 9, 2014 20:31 |
calculation diverge after continue to run | zhajingjing | OpenFOAM | 0 | April 28, 2010 05:35 |
DPM UDF particle position using the macro P_POS(p)[i] | dm2747 | FLUENT | 0 | April 17, 2009 02:29 |