Skip to content

Latest commit

 

History

History
98 lines (85 loc) · 4.58 KB

fracto.md

File metadata and controls

98 lines (85 loc) · 4.58 KB

Generating pseudo fractographs

A fractograph is an image of the fracture surface. Here we try to generate an image of some aspects of the patterns seen on a fatigue crack under a simple repeated loading sequence. This will allow patterns to be seen on the fracture surface so that we can measure the rate of growth or use to understand the crack growth mechanisms. Do not get your hopes up about the quality of the image.

In order to generate a pseudo-fractograph we need two models:

  1. a model for crack growth, and
  2. a model that generates an equivalent grey-scale for the loading.

The image will also depend on the type of fractographic image we are trying to replicate and this depends on the type of microscope used for taking the image such as a scanning electron microscope (SEM) image or an optical microscope image. The two types of image generate contrast in different ways.

Firstly, the optical image basically appears as a grey shaded image where dark regions are generated by reflecting light away from the lens and bright regions reflect more light toward the lens. Thus with an optical microscopic image, the light and dark regions correspond to the changes in path of the fracture surface. There may also be a textural component where the surface generated is more or less reflective depending on the mode of crack growth. Secondly, with an SEM, bright areas occur when more secondary electrons are released from the surface, which typically occurs where there are sharp features.

The fracto image file is generated by using the --image_outfile to the easigrow command line. For example, adding --image_outfile seq1.svg to the command line will produce a pseudo fracto image in the file seq1.svg. Note, it is required to provide a file name with the suffix svg so that the image is in Scalable Vector Graphics (svg) format. These svg commands are then rendered by the viewer on the users computer.

The use of svg format uses vectors instead of pixels which allows you to zoom in to any part of the sequence down to the resolution of one striation.

Even so, it is still probably wise to not generate too many blocks in the image as this will inevitably result in a wide range of blocks sizes which will need significant amount of zooming-in to recognise the individual segments.

Here is an example that produces a fracto image.

./easigrow -s 5000e-6 -b compact-tada73 -o block,a,c,k -a 0.015
      -e .016 -q sequences/seq1.txt --forward=0.05
      --sideways=0.0125 -n 10 --image_outfile seq1.svg

#  easigrow: version 0.0.0
#  
#  Options: 
#  a: [0.015]
#  a_limit: [0.016]
#  block_limit: 1000.0
#  params: []
#  output_vars: ["block", "a", "c", "k"]
#  output_every: 10
#  output_lines: [1]
#  scale: 0.005
#  beta: "compact-tada73"
#  component: Component { forward: 0.05, sideways: 0.0125, radius: inf, material: Properties { yield_stress: 450.0, k1c: 33.0, youngs_modulus: 71000.0 } }
#  seq_infile: "sequences/seq1.txt"
#  seq_mods: SequenceModifiers { cap_max: None, cap_min: None, remove_bigger: None, remove_smaller: None, cycles: false, reorder: false, turning_points: false, outfile: None }
#  cycle_method: Rainflow
#  cycle_infile: ""
#  cycle_mods: CycleModifiers { cap_max: None, cap_min: None, remove_smaller: None, remove_bigger: None, remove_region: None, outfile: None }
#  fracto: []
#  image: ImageData { file: "seq1.svg", barlength: 0.00005, xsize: 300, ysize: 8000, image: Sem }
#  dadn: "white:barter14-aa7050t7451"
#  No parameters given, obtaining from material library for white:barter14-aa7050t7451
#  da/dn equation: White { a: 0.25481858, b: 1.10247048, c: 4.35831677, d: 23.08586582, e: 0.03420171, f: 0.4717843, kic: 31.54, cite: "unknown", units: "m" }
#  da/dN (m) = exp[(2.5481858e-1 * ΔKeff^3 - 1.10247048e0 * ΔKeff^2 + 4.35831677e0 * ΔKeff - 2.308586582e1) 
#              + (dkic - ΔK)^-0.4717843] [White14:unknown]
#  where dkic = 3.154e1 (1 - R) and ΔKeff = ΔK / (1 - R)^0.03420171
       block            a            c            k 
      0.0000  1.500000e-2  1.500000e-2       0.0000 
     10.0000  1.543065e-2  1.543065e-2      10.2813 
     20.0000  1.589049e-2  1.589049e-2      10.5276 
     22.2703  1.600000e-2  1.600000e-2       8.8222 
#  Failure Event: a[0.016000004096755106] >= a_limit[0.016]

Making a pseudo image...
frame: ImageData { file: "seq1.svg", barlength: 0.00005, xsize: 300, ysize: 8000, image: Sem }
cycles in history 37814
history 37814, a_max 0.015999975345001187
starting crack size is 0.015000026212133203
image written to file seq1.svg

image