Difference between revisions of "TriaxialTest"
From Yade
(Created page with 'Yade includes tools to simulate triaxial loadings on dense samples. The pre-processor TriaxialTest (and a few variants) do the following : *generate random loose packings and co…') |
|||
Line 1: | Line 1: | ||
+ | =Triaxial Test= |
||
+ | |||
Yade includes tools to simulate triaxial loadings on dense samples. The pre-processor TriaxialTest (and a few variants) do the following : |
Yade includes tools to simulate triaxial loadings on dense samples. The pre-processor TriaxialTest (and a few variants) do the following : |
||
Line 5: | Line 7: | ||
− | + | ==Essential engines :== |
|
# The''' TrixialCompressionEngine''' is used for controlling the state of the sample and simulating loading paths. TrixialCompressionEngine inherits from TriaxialStressController, which can compute stress- strain-like quantities in the packing and maintain a constant level of stress at each boundary. TriaxialCompressionEngine has few more members in order to impose constant strain rate and control the transition between isotropic compression and triaxial test. |
# The''' TrixialCompressionEngine''' is used for controlling the state of the sample and simulating loading paths. TrixialCompressionEngine inherits from TriaxialStressController, which can compute stress- strain-like quantities in the packing and maintain a constant level of stress at each boundary. TriaxialCompressionEngine has few more members in order to impose constant strain rate and control the transition between isotropic compression and triaxial test. |
||
Line 14: | Line 16: | ||
− | + | ==Frequently asked questions :== |
|
− | "How is generated the packing? How to change particles sizes distribution? Why do I have a message "Exceeded 3000 tries to insert non-overlapping sphere"?" |
+ | *"How is generated the packing? How to change particles sizes distribution? Why do I have a message "Exceeded 3000 tries to insert non-overlapping sphere"?" |
The initial positioning of spheres is done by generating random (x,y,z) in a box and checking if a sphere of radius R (R also randomly generated with respect to a uniform distribution between mean*(1-std_dev) and mean*(1+std_dev) can be inserted at this location without overlaping with others. |
The initial positioning of spheres is done by generating random (x,y,z) in a box and checking if a sphere of radius R (R also randomly generated with respect to a uniform distribution between mean*(1-std_dev) and mean*(1+std_dev) can be inserted at this location without overlaping with others. |
||
Line 25: | Line 27: | ||
The dense state will be obtained in the second step (compaction, see below). |
The dense state will be obtained in the second step (compaction, see below). |
||
− | "How is the compaction done, what are the parameters maxWallVelocity and finalMaxMultiplier?" |
+ | *"How is the compaction done, what are the parameters maxWallVelocity and finalMaxMultiplier?" |
Compaction is done (1) by moving rigid boxes or (2) by increasing the sizes of the particles (decided using the option "internalCompaction"). Both algorithm needs numerical parameters to prevent instabilities. For instance, with method (1) maxWallVelocity is the maximum wall velocity, with method (2) finalMaxMultiplier is the max value of the multiplier applied on sizes at each iteration (always something like 1.00001). |
Compaction is done (1) by moving rigid boxes or (2) by increasing the sizes of the particles (decided using the option "internalCompaction"). Both algorithm needs numerical parameters to prevent instabilities. For instance, with method (1) maxWallVelocity is the maximum wall velocity, with method (2) finalMaxMultiplier is the max value of the multiplier applied on sizes at each iteration (always something like 1.00001). |
Revision as of 13:48, 8 December 2009
Triaxial Test
Yade includes tools to simulate triaxial loadings on dense samples. The pre-processor TriaxialTest (and a few variants) do the following :
- generate random loose packings and compress them under isotropic confining stress, either squeezing the packing between moving rigid boxes or expanding the particles while boxes are fixed (depending on flag "InternalCompaction").
- simulate all sorts of triaxial loading path (there is however a default loading path corresponding to constant lateral stress in 2 directions and constant strain rate on the third direction - this loading path is used when the flag AutoCompressionActivation = true, otherwise the simulation stops after isotropic compression)
Essential engines :
- The TrixialCompressionEngine is used for controlling the state of the sample and simulating loading paths. TrixialCompressionEngine inherits from TriaxialStressController, which can compute stress- strain-like quantities in the packing and maintain a constant level of stress at each boundary. TriaxialCompressionEngine has few more members in order to impose constant strain rate and control the transition between isotropic compression and triaxial test.
- The class TriaxialStateRecorder is used to write to a file the history of stresses and strains.
- TriaxialTest is currently using GlobalStiffnessTimeStepper to compute an appropriate dt for the numerical scheme. The TriaxialTest is the only preprocessor using these classes in Yade because they have been developped AFTER most of preprocessor examples, BUT they can be used in principle in any situation and they have nothing specifically related to the triaxial test.
NOTE : TriaxialStressController::ComputeUnbalancedForce(...) returns a value that can be usefull for evaluating the stability of the packing. It is defined as (mean force on particles)/(mean contact force), so that it tends to 0 in a stable packing. This parameter is checked by TriaxialCompressionEngine to switch from one stage of the simulation to the next one (e.g. stop isotropic confinment and start axial loading)
Frequently asked questions :
- "How is generated the packing? How to change particles sizes distribution? Why do I have a message "Exceeded 3000 tries to insert non-overlapping sphere"?"
The initial positioning of spheres is done by generating random (x,y,z) in a box and checking if a sphere of radius R (R also randomly generated with respect to a uniform distribution between mean*(1-std_dev) and mean*(1+std_dev) can be inserted at this location without overlaping with others.
If the sphere overlaps, new (x,y,z)'s are generated until you a suitable place for the new sphere is found. This explains the message you have : after 3000 trial-and-error, the sphere couldn't be placed, so the algorithm stops.
You get the message above if you try to generate an initialy dense packing, which is not possible with this method. You should keep the default value of porosity (~0.3). The dense state will be obtained in the second step (compaction, see below).
- "How is the compaction done, what are the parameters maxWallVelocity and finalMaxMultiplier?"
Compaction is done (1) by moving rigid boxes or (2) by increasing the sizes of the particles (decided using the option "internalCompaction"). Both algorithm needs numerical parameters to prevent instabilities. For instance, with method (1) maxWallVelocity is the maximum wall velocity, with method (2) finalMaxMultiplier is the max value of the multiplier applied on sizes at each iteration (always something like 1.00001).