SDT-nlsim
Contents  
Functions  
 
 PDF Index |
One is interested in solving equations of the general form
| (1.1) |
with
Estimation of the non-linear forces can, in a very general fashion, be decomposed in three steps: observation of strains, evaluation of constitutive law at a material point to compute stresses, application of stresses on the model as detailed below.
| (1.2) |
where strains may represent quantities dependent on the model displacement (relative motion, mechanical strain, ...), but also possibly internal states of the non-linearity if those are included in the definition of q. For HBM solutions qNL will be assumed to be part of q but for transient simulations this may not be optimal.
Strategies for the construction of the observation matrix c will be discussed for point to point connection in section 1.2.1, surfaces in section 1.2.2, volumes in section 1.2.3.
For time domain, generalized strains є (noted .unl in the code) are obtained by computing
| (1.3) |
In a similar fashion, if the NL.vnl field exists strain rates are obtained using
| (1.4) |
In the implementation, the strain vector may have NE components ei, and strains at NG material points (Gauss or physical points) may be stored as a single vector to allow vectorization of non-linearities of a given kind, thus leading to ei,gk components.
For HBM computations NT times will be evaluated and stored as columns. The internal storage in field NL.unl is thus of the form
| (1.5) |
| (1.6) |
The generic representation of non-linearities should verify classical assumptions on objectivity and on the validity of constitutive relations, which is compatible with the idea that generalized strains are defined at a material point.
The definition of a non-linear constitutive relation giving a definition of generalized stresses snl which has the same (NE × NC) × NT size as unl and is thus stored NL.unl field to allow overwrite. This allows memory optimization even though the output result is a force and not a strain). When internal states are present, the strain field NL.unl may not be efficiently used to store stresses, it is then possible to store stresses in field NL.snl of size (NS × NG)× NT) with NS the number of stress components.
| (1.7) |
In the proposed framework,
Many iterative schemes need derivatives of the non-linear forces with respect to strains (stiffness)
| (1.8) |
or strain rates (damping matrix)
| (1.9) |
See nl_spring NLJacobianUpdate for low level documentation and nl_solve TgtMdl for global calls. The derivatives at each integration point (often named Gauss point in the documentation) ∂ snl/∂ unl correspond to the material stiffness matrix called dd or Lambda in different parts of SDT. Since the b and c matrices combine all gauss points, the assembled matrix containing one block for each gauss point, is sometimes stored in a ddg field when individually modifying the gauss points is of interest (topology optimization applications for example).
When splitting of Jacobians is of interest xxx.