The global strain system enables capturing the volume change, shear deformation etc. while still maintaining the periodicity. It relaxes the stresses along the periodic directions and allows the corresponding deformation. This, combined with the periodic displacement, enforces the strain periodicity.
The global strain is computed by setting integral of each of the stress components in the periodic direction to zero such that
Here, indices and corresponds to the periodic directions and associated periodic displacement components, respectively. denotes the components of the stress tensor representing the applied loads in the periodic directions. The components of the global strain are considered constant over the whole domain.
The total strain at any point is calculated considering the contribution of the global strain tensor as,
where are the strain components calculated from the displacement gradients, are the global strain components, and are the eigen strain components. An additional displacement field is generated to visualize the effect of the global strain as
where is the position vector, is the location of the reference point, and is the global strain tensor. The reference point could be any fixed () point in the domain. For maintaining periodicity, it is recommended to fix the center point of the simulation domain as the reference point.
The total displacement is represented as
where is the local displacement field calculated from the mechanical equilibrium.
GlobalStrainAction can be used to set up the model for global strain and corresponding displacement calculation. This action can be created using the following syntax.
Example Input File Syntax
[./GlobalStrain] [./global_strain] scalar_global_strain = global_strain displacements = 'u_x u_y u_z' auxiliary_displacements = 'disp_x disp_y disp_z' [../] [../]
The subblocks of the GlobalStrain action triggers MOOSE objects to be built. It can be applied to the whole domain using a single subblock
[Modules/TensorMechanics/GlobalStrain] [./all] ... [../] 
or multiple subblocks can be used to apply block restrictions to the objects
[Modules/TensorMechanics/GlobalStrain] [./block_a] ... [../] [./block_b] ... [../] 
- Tensor Mechanics App
- GlobalStrainActionSet up the GlobalStrainAction environment