Quick start with Brazilian disc test ######################################## Brazilian Disc Test is a geotechnical laboratory test for indirect measurement of tensile strength of rocks. Due to its simplicity and efficiencly, it is amonst the most commonly used laboratory testing methods in geotechnical investigation in rocks. It is also used as a benchmark test for calibrating the tensile behaviour of rocks in FDEM. .. figure:: ../../images/Desmos/BD_Test.png :alt: Geometry of the Brazilian disc test :align: center Figure 1: Geometry of the Brazilian disc test ================================== 1 Tutorial Prerequistes ================================== The following files are needed to follow along the tutorial: - `example_br.geo`_ (click to download from GitHub) .. _example_br.geo: https://github.com/OpenFDEM-geomechanics/Examples/blob/main/CreateBrazilianDiscTest/example_br.geo ================================== 2 Main Steps ================================== #. Initialize the model. #. Import the geometry and the mesh #. Assign material properties. #. Create the group #. Assign boundary conditions. #. Set the outputs. #. Run. ================================== 3 Codes ================================== .. warning:: Please note that, all the setting in the example is based on the developer's computer. You may need to change these details based on your own environment. To start with runing, create a new empty text file (later add the `.of` extension). Begin writing the following commands: ------------------------------------------------------------------- 3.1 Initialize the model ------------------------------------------------------------------- 1. Create a new run and clean up the dirty memories in heap, it is not mandatory but strongly recommended. .. literalinclude:: examples/CreateBrazilianDiscTest/runme.of :lines: 39 2. Set up the path to save your results. Here the folder is set to be “result”. .. literalinclude:: examples/CreateBrazilianDiscTest/runme.of :lines: 43 3. Set the number of cores to be used for running this model. .. warning:: In the default example, 15 cores will be used for running. To prevent the heavy burden of your computer, please check your computer to change core number you want to use. To check the configuration of your computer, you can go Windows: Task Manager > Performance > CPU > Cores Linux: lscpu lscpu | egrep 'Model name|Socket|Thread|NUMA|CPU\(s\)' lscpu -p The cores will be printed on the console when you start a new run, you can also check the information from OpenFDEM kernel itself. .. literalinclude:: examples/CreateBrazilianDiscTest/runme.of :lines: 48 ------------------------------------------------------------------- 3.2 Import the geometry and the mesh ------------------------------------------------------------------- 1. Import the geometry and mesh of the model from the "example_br.geo" file. The final geometry will be the same as Figure 1 shown. .. literalinclude:: examples/CreateBrazilianDiscTest/runme.of :lines: 52 2. Group the elements to rock, top platen and bottom platen. .. literalinclude:: examples/CreateBrazilianDiscTest/runme.of :lines: 55-57 3. Insert the cohesive elements to the mesh. .. literalinclude:: examples/CreateBrazilianDiscTest/runme.of :lines: 60 ------------------------------------------------------------------- 3.3 Assign Material Properties ------------------------------------------------------------------- The material properties of this model is shown as the table below: +---------------------------------------------+------------------------+ | Parameter | Value | +=============================================+========================+ | **Continuum Triangular Elements - Rock** | | +---------------------------------------------+------------------------+ | model | elastic | +---------------------------------------------+------------------------+ | density (:math:`kg/m^3`) | 2700 | +---------------------------------------------+------------------------+ | E (Pa) | 30e9 | +---------------------------------------------+------------------------+ | :math:`\nu` | 0.3 | +---------------------------------------------+------------------------+ | damp | 0.6 | +---------------------------------------------+------------------------+ | | | +---------------------------------------------+------------------------+ | **Continuum Triangular Elements - Platens** | | +---------------------------------------------+------------------------+ | model | rigid | +---------------------------------------------+------------------------+ | density (:math:`kg/m^3`) | 7000 | +---------------------------------------------+------------------------+ | | | +---------------------------------------------+------------------------+ | **Cohesive Material Properties** | | +---------------------------------------------+------------------------+ | model | EM | +---------------------------------------------+------------------------+ | tension (Pa) | 1e6 | +---------------------------------------------+------------------------+ | cohesion (Pa) | 3e6 | +---------------------------------------------+------------------------+ | friction | 0.3 | +---------------------------------------------+------------------------+ | GI (:math:`J/m^2`) | 10 | +---------------------------------------------+------------------------+ | GII (:math:`J/m^2`) | 50 | +---------------------------------------------+------------------------+ | | | +---------------------------------------------+------------------------+ | **Contact Material Properties** | | +---------------------------------------------+------------------------+ | model | MC | +---------------------------------------------+------------------------+ | friction | 0.3 | +---------------------------------------------+------------------------+ .. note:: Check :doc:`element materal<../rst_user_guide/Material/of.mat.element>`, :doc:`cohesive materal<../rst_user_guide/Material/of.mat.cohesive>`, :doc:`contact materal<../rst_user_guide/Material/of.mat.contact>` to see more materials. #. Set the material properties. elastic material is assigned for the matrix element and Evans_Marathe cohesive law is for CZM, the contact uses Mohr-Coulomb slip by default. .. literalinclude:: examples/CreateBrazilianDiscTest/runme.of :lines: 64-66, 68, 70 ------------------------------------------------------------------- 3.4 Create Groups and Assign Boundary Conditions ------------------------------------------------------------------- 1. Group the nodes to prepare for the next step. .. note:: There are three methods to group nodals in the mesh. #. box.in/box.on/box.out x [x_min x_max] y [y_min y_max] or [x_min x_max y_min y_max] #. circle.in/circle.on/circle.out center [x y] radius rad or [x y radius] #. plane.on/plane.above/plane.below p0 [x0 y0] p1 [x1 y1] or [x0 y0 x1 y1] .. literalinclude:: examples/CreateBrazilianDiscTest/runme.of :lines: 75-76 2. Assign the nodal boundaries. In this example, platens are fixed in the `x` direction and moving with 0.005 m/s in `y` direction. .. literalinclude:: examples/CreateBrazilianDiscTest/runme.of :lines: 80-81 ------------------------------------------------------------------- 3.5 Set the Outputs ------------------------------------------------------------------- 1. Set the output interval to be every 2000 steps and output all fields variables and fracture variables. .. literalinclude:: examples/CreateBrazilianDiscTest/runme.of :lines: 85, 87-88 ------------------------------------------------------------------- 3.6 Run ------------------------------------------------------------------- 1. The program will run 500000 steps to terminate the model. .. literalinclude:: examples/CreateBrazilianDiscTest/runme.of :lines: 92 2. Finalize the model and clear all the temporary memories. .. literalinclude:: examples/CreateBrazilianDiscTest/runme.of :lines: 94 3. Save the notepad and double click the ``.of`` file to run the program. ================================== 4 Run the Program ================================== When you run the program, you can first check the mesh that was created by Gmsh as shown in Figure 2. If the mesh has a good quality, you can close the window to continue run the program. .. figure:: ../../images/Gmsh/BD_Test.png :alt: Mesh of the sample :align: center Figure 2: Mesh created by Gmsh ================================== 5 Results ================================== X Displacement .. figure:: ../../images/Result/BD_DispXX_Viridis.gif :alt: BD Stress XX :align: center Figure 3: BD Stress XX Stress XX .. figure:: ../../images/Result/BD_StressXX_Viridis.gif :alt: BD Stress YY :align: center Figure 4: BD Stress YY ================================== 6 Full Script ================================== - `BD_test.of`_ (click to download from GitHub gist) .. _BD_test.of: https://github.com/OpenFDEM-geomechanics/Examples/blob/main/CreateBrazilianDiscTest/runme.of .. literalinclude:: examples/CreateBrazilianDiscTest/runme.of :lines: 37-94 .. raw:: html