samedi 8 septembre 2012

JMAN : Results validation


To ensure that JMAN is working correctly, we will compare the values of K (the stress intensity factor) obtained with both JMAN and Abaqus.

In that purpose, we will create a standard fracture test model for mode I fracture in Abaqus.

Fig 3.  Abaqus model, standard mode I fracture test

Then we can export the obtained displacement field in an Excel file and analyse it with JMAN. We want to verify that we obtain the same value of K but also the same stress and strain fields.

For convenience, we only compared those values for a few elements randomly chosen in the mesh.

The results obtained with JMAN an Abaqus were similar, we are now going to test JMAN with experimental results.

mercredi 29 août 2012

JMAN : J-integral calculation

The J-integral is a way to calculate the energy released propagating a crack per unit area. The value of calculated J-integral is theoretically independent from the chosen contour, provided that the material is elastic.
We will see how in JMAN we calculate the J-integral value from a displacement field.

The input data are the results of digital image correlation analysis or the results of a finite elements calculation. The input requires the 2D coordinates of the points at which measurements (or calculations) were performed along with the respective 2D displacement values.
The first step is to create a finite element mesh were the input values are the values at the nodes of our mesh.


Fig 1. Mesh of quadratic elements


Once this mesh is created, we will calculate the stress and strain values at the integration points. From those results, a contributive term for J at each element in the chosen contour is determined.


Fig 2. Example of a J-integral contour


The final step is to retrieve the J-integral value by summing the J contributive terms of each element in the contour.
The value of K, the stress intensity factor is easily determined from the value of J.


vendredi 10 août 2012

JMAN : introduction

I decided to start a series of posts about a software we are developing using Matlab. This program, called JMAN (J-integral calculation method developed in MANchester), allows the user to determine the stress intensity factor from images taken from surface of a specimen. A first version of JMAN was already implemented, see here.

The user starts performing a fracture test experiment and take pictures of the crack zone at different moments of the experiment, then he runs a Digital Image Correlation analysis in order to get the displacement field.

JMAN takes as input the material properties (Young modulus, Poisson ration) and results of the Digital Image Correlation.

In a first time we will talk about how the program works and present some examples based on Abaqus models. Then we will see how the experiments parameters (DIC parameters, camera parameters...) influence the results. Finally we will talk about the limitations of JMAN.

vendredi 3 août 2012

GPU calculation : final step

We can see on the graphs that GPU calculation provides an acceleration only for large data sizes.

This is due to the fact that for small data sizes, the time spent transferring data to the GPU is higher than the time gained during calculation.

Here the speed-up factor is not high enough for us to use GPU calculation instead of CPU calculation.

vendredi 27 juillet 2012

GPU calculation : step 4

After multiple problems regarding the use of Skynet and  the installation of Jacket on it, I finally run my benchmark code. This bar chart sums up the results.

Fig .6 : Calculation time on CPUs and GPU
The horizontal axis legend indicates the size of the final image then the number of projections.

The benchmarks were run on Skynet's GPU and on two different CPUs. The speed-up factors are plotted in this graph.

Fig .5 : Speed-up factor GPU/CPU on two differents CPUs

lundi 23 juillet 2012

GPU calculation : step 3

For running the benchmarks, I will use the Jacket plugin for Matlab. Jacket is a Matlab add-on which provide easy-to-use GPU enabled functions.

After running the tests, the results are not those expected, the GPU calculation is slower than the CPU calculation. After discussion with the Jacket customer support, it appears that our GPU (an nVidia Quadro 2000D) is not powerful enough.

Hopefully the University of Oxford just allows me to use one of their supercomputers. This computer called 'Skynet' is equipped with 4 nVidia Tesla C2020 GPUs.

Fig. 5 : Emerald, Oxford's new supercomputer


jeudi 19 juillet 2012

GPU calculation : step 2

GPU calculation becomes interesting when you have to run the same calculation a large number of times. Our aim is to split the iradon transform of one sinogram in many identical tasks.
If we manage to do that, we will be able to run these task in parallel on the GPU and, we hope, gain calculation time.

In one sinogram, each row corresponds to a given angle in the imaging plane. We will create a sinogram of a phantom for 18 projections angles and compute a reconstructed image using the inverse radon transform.

Fig .2 : Original phantom (left), reconstructed image (right)

Now we will try to do the same, but we will perform one inverse radon transform per projection angle.
Here are the results we get :

Fig .3 : Reconstructed images for different theta values
And after calculating a sum of the images :

Fig .4 : Sum of the images from Fig3
The next step will be to run in parallel the reconstruction for different theta values and see if this as an impact on our calculation time.