guide choice of strain measure that makes sense
This commit is contained in:
parent
a2a4054a37
commit
e658f3126b
|
@ -1194,12 +1194,14 @@ class Result:
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _add_strain(F: Dict[str, Any], t: Literal['V', 'U'], m: float) -> Dict[str, Any]:
|
def _add_strain(F: Dict[str, Any], t: Literal['V', 'U'], m: float) -> Dict[str, Any]:
|
||||||
|
side = 'left' if t == 'V' else 'right'
|
||||||
return {
|
return {
|
||||||
'data': mechanics.strain(F['data'],t,m),
|
'data': mechanics.strain(F['data'],t,m),
|
||||||
'label': f"epsilon_{t}^{m}({F['label']})",
|
'label': f"epsilon_{t}^{m}({F['label']})",
|
||||||
'meta': {
|
'meta': {
|
||||||
'unit': F['meta']['unit'],
|
'unit': F['meta']['unit'],
|
||||||
'description': f"strain tensor of {F['label']} ({F['meta']['description']})",
|
'description': f'strain tensor of order {m} based on {side} stretch tensor '+\
|
||||||
|
f"of {F['label']} ({F['meta']['description']})",
|
||||||
'creator': 'add_strain'
|
'creator': 'add_strain'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1224,18 +1226,24 @@ class Result:
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
--------
|
--------
|
||||||
Add the Biot strain based on the deformation gradient 'F':
|
Add the Euler-Almansi strain:
|
||||||
|
|
||||||
>>> import damask
|
>>> import damask
|
||||||
>>> r = damask.Result('my_file.hdf5')
|
>>> r = damask.Result('my_file.hdf5')
|
||||||
>>> r.add_strain(t='U',m=0.5)
|
>>> r.add_strain(t='V',m=-1.0)
|
||||||
|
|
||||||
Add the plastic Euler-Almansi strain based on the
|
Add the plastic Biot strain:
|
||||||
plastic deformation gradient 'F_p':
|
|
||||||
|
|
||||||
>>> import damask
|
>>> import damask
|
||||||
>>> r = damask.Result('my_file.hdf5')
|
>>> r = damask.Result('my_file.hdf5')
|
||||||
>>> r.add_strain('F_p','V',-1)
|
>>> r.add_strain('F_p','U',0.5)
|
||||||
|
|
||||||
|
Notes
|
||||||
|
-----
|
||||||
|
The incoporation of rotational parts into the elastic and plastic
|
||||||
|
deformation gradient requires it to use material/Lagragian strain measures
|
||||||
|
(based on 'U') for plastic strains and spatial/Eulerian strain measures
|
||||||
|
(based on 'V') for elastic strains when calculating averages.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
self._add_generic_pointwise(self._add_strain,{'F':F},{'t':t,'m':m})
|
self._add_generic_pointwise(self._add_strain,{'F':F},{'t':t,'m':m})
|
||||||
|
|
Loading…
Reference in New Issue