**non_local
#
Description#
This post increment method provides a “smoothing” of specified material variables in order to constrain the gradient in those variables to be below a given limit. This is an important method in eliminating localization when stiffness drops according to those parameters (i.e. damage or strain softening). This is a “weak” method in that it allows localization during the solution convergence of a given increment.
Let \(d\) be the non–local variable ; \(\Delta d\) the local time increment ; \(\Delta d_{\rm nl}\) the non–local time increment.
where \(N=1,2,3\) is the space dimension.
Using the FE method integrals are discretized using Gauss quadrature. So that
and \(V_j\) the volume associated to Gauss point \(j\). where \(x_i\), \(x_j\) are the positions of the Gauss points (\(G\) number of Gauss points).
Due to numerical integration and other limitations (optimizing memory) it is necessary to correct the \(M\) matrix which should fulfill the conditions
Several correction methods can be proposed (\(M\to M^\prime\)):
average_line
\(M^\prime_{ij} = M_{ij}/\sum_i M_{ij}\). [c\(_2\)] is not fulfilled.
average_column
\(M^\prime_{ij} = M_{ij}/\sum_j M_{ij}\). [c\(_1\)] is not fulfilled.
diagonal_line
\(M^\prime_{ii} = M_{ii} + (1-\sum_i M_{ij})\) and \(M^\prime_{ij} = M_{ij}\) for \(i\ne j\). [c\(_2\)] is not fulfilled.
diagonal_column
\(M^\prime_{ii} = M_{ii} + (1-\sum_j M_{ij})\) and \(M^\prime_{ij} = M_{ij}\) for \(i\ne j\). [c\(_1\)] is not fulfilled.
iterative
Line \(i\) is multiply by a scalar \(l_i\) and column \(j\) is multiply by a scalar \(c_j\). Conditions [c\(_1\)] and c[c\(_2\)]can be fulfilled simultaneously. There are \(2\times G\) equations
(106)#\[\sum_i l_i c_j M_{ij}=c_j\sum_i l_i M_{ij}=1\](107)#\[\sum_j l_i c_j M_{ij}=l_i\sum_j c_j M_{ij}=1\]Coefficient can be found iteratively:
(108)#\[c_j^{k+1} = \frac{1}{\sum_i l^k_i M_{Ia}}=\frac{1}{\left.M^T l^k\right|j}\](109)#\[l_i^{k+1} = \frac{1}{\sum_j c^k_j M_{ij}}=\frac{1}{\left.M c^k\right|i}\]with \(l_i^0=1\) and \(c_j^0=1\).
Syntax#
The command syntax is described below, with a few sub-commands.
**non_local
\(~\,\) *lambda
lam
\(~\,\) *variable
var1 … varN
\(~\,\) *elset
elset-name
\(~\,\) *cut_off
val
\(~\,\) *normalize
type
*lambda
takes a real value for \(\lambda\)
*variable
lists the material variables which are to be the subject of non-local.
*elset
apply the method to the given elset name.
*cut_off
specify a real value for the cut-off.
*normalize
replace type with one of the keywords described above (
average_line
, etc).