adhishm / dd2d_Matryoshka

A set of classes defining the behaviour of crystalline defects, with the final goal of carrying out dislocation dynamics simulations in two dimensions.
Other
5 stars 4 forks source link

Dislocation dipole sources #50

Closed adhishm closed 11 years ago

adhishm commented 11 years ago

Dislocation dipole sources have to be introduced into the simulation. It is the mechanism by which increase of dislocation density occurs. The dislocation source operates by emitting a dislocation dipole when it experiences a shear stress greater than a threshold value tauc for a certain number of iterations.

Care must be taken to create a Gaussian distribution of tauc values. This is important because if all dislocation sources were to have the same value of tauc, large numbers of them would get activated simultaneously causing sudden increases in plastic deformation, which is clearly artificial.

adhishm commented 11 years ago

The function std::vector<double> rng_Gaussian (int n, double mean, double stdev) has been defined in tools.cpp to generate a Gaussian distribution of n real numbers with mean equal to mean and standard deviation equal to stdev. This function will generate the set of values of tauc from which dislocation sources will pick their own theshold shear stress.

adhishm commented 11 years ago

The DislocationSource class functions have been defined and corresponding functions in SlipPlane class have been defined to deal with dislocation sources.

Some bugs exist, which will be shown in following comments.

adhishm commented 11 years ago

Consider the following input file slipPlane_111_1Disl_2DislSource.txt:

# Initial time
0.0
# Extremities
0.0 0.0 0.0
0.0 5.0e-06 5.0e-06
# Normal vector
1.0 -1.0 1.0
# Position
0.0 0.0 0.0
# Number of dislocations
1
# Dislocations
# Position(3) BurgersVector(3) LineVector(3) BurgersMagnitude(1) Mobile(1)
0.5e-06 0 0  1 0 0 0  1 0 2.5e-10 1
# Number of dislocation sources
2
# Dislocation sources
# Position(3) BurgersVector(3) LineVector(3) BurgersMagnitude(1)
3.0e-06 0 0 -1 0 0 0  1 0 2.5e-10
5.0e-06 0 0  -1 0 0 0  1 0 2.5e-10

And the following parameters file validation_dipoles_parameters.txt:

## Material properties
# Shear modulus
mu 7.0e10
# Poissons ratio
nu 0.33
# Burgers vector magnitude
BMag 2.5e-10
# Drag coefficient
drag 1.0e09
# Dipole emission
tauCritical_mean 5.0e08
tauCritical_stdev 0.2e06
tauCritical_time 1.0e-07

## Load
# Applied stress
appliedStress 0.0 0.0 0.0 0.0 2.0e09 0.0

## Simulation parameters
Stopping Time 5.0e-06
TimeStep fixed
LimitingDistance 5.0
ReactionRadius 15.0
LimitingTimeStep 1.0e-09

## Directories
Input input
Output output

## Statistics
### Name Flag(0/1) Frequency(iterations) Filename Parameters(if any)
statsDislocationPositions 0 100 validation_dislocationPositions
statsSlipPlaneStress 0 100 validation_slipPlaneStress 100
statsAllDefects 1 10 dipoles-1disl-2dipole-2GPa

## Filenames
Structure slipPlane_111_1Disl_2DislSource.txt

The graph resulting from this simulation is shown below:

dipoles_1disl_2src_2gpa

The pile-up near the zero-end of the slip plane is of the correct form:

dipoles_1disl_2src_2gpa_pile-up

Of course, there is a problem near the other end of the plane where a dislocation blocks all the others:

dipoles_1disl_2src_2gpa_problem

adhishm commented 11 years ago

The above behaviour is reversed when the sign of the stress is reversed. A simulation was run with the same input structure file, but with a slightly different parameters file validation_dipoles_parameters.txt:

## Material properties
# Shear modulus
mu 7.0e10
# Poissons ratio
nu 0.33
# Burgers vector magnitude
BMag 2.5e-10
# Drag coefficient
drag 1.0e09
# Dipole emission
tauCritical_mean 5.0e08
tauCritical_stdev 0.2e06
tauCritical_time 1.0e-07

## Load
# Applied stress
appliedStress 0.0 0.0 0.0 0.0 -2.0e09 0.0

## Simulation parameters
Stopping Time 5.0e-06
TimeStep fixed
LimitingDistance 5.0
ReactionRadius 15.0
LimitingTimeStep 1.0e-09

## Directories
Input input
Output output

## Statistics
### Name Flag(0/1) Frequency(iterations) Filename Parameters(if any)
statsDislocationPositions 0 100 validation_dislocationPositions
statsSlipPlaneStress 0 100 validation_slipPlaneStress 100
statsAllDefects 1 10 dipoles-1disl-2dipole--2GPa

## Filenames
Structure slipPlane_111_1Disl_2DislSource.txt

The resulting graph is: dipoles_1disl_2src_-2gpa

The dislocation near the zero-end goes to the grain boundary and piles up against it, as expected. The dislocations emitted on the far end also pile-up against the grain boundary at the far end. The dislocations from the dipoles near the zero-end block.

dipoles_1disl_2src_-2gpa_pile-up

dipoles_1disl_2src_-2gpa_problem

adhishm commented 11 years ago

Note that the solitary dislocation in the input file has a sign opposite to the dislocations forming the dislocation sources. Obviously this leads to an annihilation in the first case.

So, in the first case, the "lead dislocation" of the source is emitted along the negative X-direction of the slip plane, and in the second case (stress flipped around) in the positive X-direction. This dislocation behaves properly in both cases by undergoing the annihilations and piling up against the grain boundaries.

In both cases then, it is the non-lead dislocation that has the problem. This dislocation does not move at the same rate as the others, and at a certain point in time (or distance), the total stress that it sees is reversed and it is pulled inwards. The dislocations behind it, having the same sign but opposing velocities cannot move forward and are thus piled up against it.

adhishm commented 11 years ago

The blocking of the dislocation was found to be due to an error in the stress field calculation. This has been fixed.

adhishm commented 11 years ago

Validation

The program has been validated for dislocation sources for the following cases.

Positive stress

Consider the following parameters file validation_dipoles_parameters.txt:

## Material properties
# Shear modulus
mu 7.0e10
# Poissons ratio
nu 0.33
# Burgers vector magnitude
BMag 2.5e-10
# Drag coefficient
drag 1.0e09
# Dipole emission
tauCritical_mean 5.0e08
tauCritical_stdev 0.2e06
tauCritical_time 1.0e-07

## Load
# Applied stress
appliedStress 0.0 0.0 0.0 0.0 2.0e09 0.0

## Simulation parameters
Stopping Time 5.0e-06
TimeStep fixed
LimitingDistance 5.0
ReactionRadius 15.0
LimitingTimeStep 1.0e-09

## Directories
Input input
Output output

## Statistics
### Name Flag(0/1) Frequency(iterations) Filename Parameters(if any)
statsDislocationPositions 0 100 validation_dislocationPositions
statsSlipPlaneStress 0 100 validation_slipPlaneStress 100
statsAllDefects 1 10 dipoles-1disl-2dipole-2GPa

## Filenames
Structure slipPlane_111_1Disl_2DislSource.txt

The applied stress is 2 GPa. The dislocation structure is provided in the file slipPlane_111_1Disl_2DislSource.txt which is as follows:

# Initial time
0.0
# Extremities
0.0 0.0 0.0
0.0 5.0e-06 5.0e-06
# Normal vector
1.0 -1.0 1.0
# Position
0.0 0.0 0.0
# Number of dislocations
1
# Dislocations
# Position(3) BurgersVector(3) LineVector(3) BurgersMagnitude(1) Mobile(1)
0.5e-06 0 0  1 0 0 0  1 0 2.5e-10 1
# Number of dislocation sources
2
# Dislocation sources
# Position(3) BurgersVector(3) LineVector(3) BurgersMagnitude(1)
3.0e-06 0 0 -1 0 0 0  1 0 2.5e-10
5.0e-06 0 0  -1 0 0 0  1 0 2.5e-10

The resulting graph is shown below: dipoles_2gpa

The solitary dislocation provided has a Burgers vector opposing that of the dislocation that is emitted by the source in the negative x-direction. Therefore these two annihilate when they meet each other.

The dislocations between the two sources are from two different sources. They have the same Burgers vectors (since Burgers vector is conserved in a loop) but have opposing line vectors. Therefore they annihilate when they meet each other. The pile-ups that form on the two ends of the slip plane are shown in more detail below:

dipoles_2gpa_zoomupperpileup

dipoles_2gpa_zoomlowerpileup

Negative stress

The same dislocation structure file is used for this test. Only the parameter file is modified to apply a negative stress. The file is shown below:

## Material properties
# Shear modulus
mu 7.0e10
# Poissons ratio
nu 0.33
# Burgers vector magnitude
BMag 2.5e-10
# Drag coefficient
drag 1.0e09
# Dipole emission
tauCritical_mean 5.0e08
tauCritical_stdev 0.2e06
tauCritical_time 1.0e-07

## Load
# Applied stress
appliedStress 0.0 0.0 0.0 0.0 -2.0e09 0.0

## Simulation parameters
Stopping Time 5.0e-06
TimeStep fixed
LimitingDistance 5.0
ReactionRadius 15.0
LimitingTimeStep 1.0e-09

## Directories
Input input
Output output

## Statistics
### Name Flag(0/1) Frequency(iterations) Filename Parameters(if any)
statsDislocationPositions 0 100 validation_dislocationPositions
statsSlipPlaneStress 0 100 validation_slipPlaneStress 100
statsAllDefects 1 10 dipoles-1disl-2dipole--2GPa

## Filenames
Structure slipPlane_111_1Disl_2DislSource.txt

The resulting graph is as follows: dipoles_-2gpa

As expected, the reversal of the applied stress reverses the direction of motion of the solitary dislocation. Note that the reversal of applied stress also reverses the sense of dipole emissions by the dislocation source. This is seen by the fact that, unlike the case for positive applied stress, the solitary dislocation does not annihilate with the dislocation emitted by the dislocation source. This is because they now have the same Burgers vector (actually, in the slip plane reference frame, they have opposing Burgers vectors but also opposing line vectors). This is shown in the zoomed-in figure below: dipoles_-2gpa_zoomlowerpileup

The pile-up formed on the other end of the slip plane is shown below: dipoles_-2gpa_zoomupperpileup

adhishm commented 10 years ago

Blocking of a dislocation source

Consider a situation in which the dipoles emitted by the dislocation source are blocked by some insurmountable obstacle. The dislocations will then pile up against this obstacle until the back stress from the pile-up will be sufficient to prevent further activation of the dislocation source.

In the present simulations, this situation arises out of the calculation of the stress-fields of the dislocations. No special treatment is necessary.

frankreadsourceblocking_0 01ms

It can be seen from the figure above that at the point when the back-stress from the pile-up increases beyond a certain value causing the total stress on the Frank-Read source to fall below the critical stress, the source is not activated any more. The dislocation dipoles emitted obviously also experience this back-stress, which is why they are seen to move slower as they approach the pile-up.