.. include:: ../../../../../_cache/math_styles.rst Discretization ============== Calculated options ----------------- Finite skin elements (surface elements immersed in three-dimensional space) are used to discretize the real and virtual movements involved in surface expressions such as :eq:`eq-5` and :eq:`eq-16`. The latter make it possible to express respectively the second member vector and the stiffness matrix due to pressure, the use of which by the algorithm of STAT_NON_LINE is specified in [:ref:`R5.03.01 `] We therefore develop four options: 1. RIGI_MECA_PRSU_R: stiffness matrix for a follower pressure as a real constant 2. RIGI_MECA_PRSU_F: stiffness matrix for a follower pressure as a real function 3. CHAR_MECA_PRSU_R: second-member vector for a follower pressure as a real constant 4. CHAR_MECA_PRSU_F: second-member vector for a follower pressure as a real function These options are developed for 3D elements, D_ PLAN and AXIS. It is possible to apply normal follower pressure but no follower tangent shear. Pressure can be a real function of time or a real constant. Discretization of differential geometry terms ----------------------------------------------------- We note :math:`\discVect{G_{\alpha}}` the discretized version of the vectors of the covariant basis with :math:`{\alpha={1,2}}`. ` The first two vectors of the covariant base :math:`\discVect{G_{\alpha={1,2}}}` are calculated from the vector of discretized displacements at the nodes :math:`\discVect{U}` and from the derivatives of the form functions :math:`\discMatr{B_{\alpha}}`: .. math:: : label: eq-20 \ discVect {G_ {\ alpha}} = \ discMatr {B_ {\ alpha}}}\,\ discVect {U} Normal :math:`\normal` is calculated as the cross product of these first two :math:`\vector{g_{\alpha}}` vectors: .. math:: : label: eq-21 \nnormal = \ frac {{\ vector {g}} _ {1} {\ wedge} {\ wedge} {\ vector {g}} {\ vector {g}} _ {1} {\ wedge} {\ wedge} {\ wedge} {\ vector {g}}} _ {2}\ Green} We can also calculate the discretized metric tensor in covariant components :math:`\discMatr{G_{\alpha \beta}}`: .. math:: :label: eq-22 \ discMatr {G_ {\ alpha\ beta}} = \ discVect {G_\ alpha}\ discVectLine {{G} _ {\ beta}} And Jacobian sound: .. math:: :label: eq-23 \ JacobTransfor = \ det\ discMatr {G_ {\ alpha\ beta}} We can calculate the contravariant metric matrix that will be noted :math:`\discMatr{G^{\delta \gamma}}` .. math:: :label: eq-24 \ discMatr {G^ {\ delta\ gamma}} = \ inverse {\ discMatr {G_ {\ alpha\ beta}}} And finally extract the contravariant database :math:`\discVectCmp{G}{\delta}`: .. math:: :label: eq-25 \ discVect {G^\ delta} = \ discMatr {G^ {\ delta\ gamma}}}\,\ discVect {G_\ alpha} Vector of the following forces ---------------------------- The calculation of the virtual work of pressure forces :eq:`eq-5` is in fact identical to that carried out in small movements, provided that the geometry is updated beforehand. We start from the expression virtual works: .. math:: :label: eq-26 \ work {\ pres} (\ disp) = {\ int} _ {\ bound NCurr (\ disp)} {-\ pres\,\normalCurr\ cdot\ dispVirt\ measBound} In discretized form: .. math:: : label: eq-27 \ work {\ pres} (\ disp) = \ discVectLine {\ delta V}\ discVect {{F} ^ {\ pres}\ left (\ disp\ right)} The variation in displacements is written from the form functions: .. math:: : label: eq-28 \ DispVirt = \ discMatr {\ shapeFunc}\,\ left\ {\ delta V\ right\} We have discretized all the terms of differential geometry in the previous paragraph, all we have to do is discretize the integral using a Gauss diagram with weights :math:`\quadWeight{\quadPointIndex}`. On any quantity :math:`A`, we will have .. math:: :label: eq-29 {\ int} _ {\ bound NCurr (\ disp)} {A\ measBound} = \ sum_ {\ quadpointIndex} {\ onQuadpoint {A} {\ quadpointIndex}\,\ quadWeight {\ quadpointIndex}} The :math:`\pres` pressure given by AFFE_CHAR_MECA is located at the nodes, We must therefore interpolate the pressure :math:`\pres` from its values on the nodes that we note :math:`\onNode{\pres}{\nodeIndex}` to the Gauss point with coordinates :math:`\onQuadPoint{\xi}{\quadPointIndex}`: .. math:: : label: eq-30 \ onQuadpoint {\ pres} {\ quadpointIndex} = \ sum_ {\ nodeIndex} {\ onNode {\ ShapeFunc (\ onQuadPoint {\ xi} {\ quadPointIndex})} {\ nodeIndex}\\,\ onNode {\ pres} {\ pres} {\nodeIndex}} We denote :math:`\onNode{\shapeFunc(\onQuadPoint{\xi}{\quadPointIndex})}{\nodeIndex}` the value of the shape function of the node :math:`\nodeIndex` at the point of gauss with coordinates :math:`\onQuadPoint{\xi}{\quadPointIndex}`. Finally: .. math:: : label: eq-31 \ discVect {{F} ^ {\ pres}\ left (\ disp\ right)} = - \ sum_ {{\ quadPointIndex}} { \ onQuadpoint {\ pres} {\ quadpointIndex} \, \ quadWeight {\ quadPointIndex} \, \ onQuadpoint {\ JacobTransfor} {\ quadpointIndex} {\ quadpointIndex} \, \ transpose {\ discMatr {\ onQuadpoint {\ ShapeFunc} {\ quadPointIndex}}}} \, \ discVect {\ onQuadpoint {\ normal} {\ quadpointIndex}} } Matrix of the following forces ---------------------------- The variation in the virtual work of pressure efforts is expressed by the expression :eq:`eq-16` .. math:: :label: eq-32 \ frac {\ partial\ work {\ pres} (\ pres} (\ disp)} {\ partial\ disp}\ cdot\ delta\ disp\ cdot\ dispVirt = {\ int} _ {\ bound NCurr (\ disp)} { -\ presCurr\, \ left [ \ left (\ frac {\ partial\ delta\ disp} {\ partial {\ theta} ^ {\ alpha}}\ cdot\ VectorBasect {\ alpha}\ disp} {\ right) \, \ left (\ DispVirt\ cdot\normal\ right) - \ left (\ frac {\ partial\ delta\ disp} {\ partial {\ theta} ^ {\ alpha}}\ cdot\normal\ disp}} {\ partial\ delta\ disp} {\ partial\ disp} {\ partial {\ theta} ^ {\ alpha}}\ cdot\normal\ \, \ left (\ dispVirt\ cdot\ VectorBasect {\ alpha}\ right) \ right]\ measBound} It allows you to extract the tangent matrix :math:`\discMatr{{K}^{\pres}\left(\disp\right)}` from the following forces: .. math:: :label: eq-33 \ frac {\ partial\ work {\ pres} (\ pres} (\ disp)} {\ partial\ disp}\ cdot\ delta\ disp\ cdot\ dispVirt = \ discVectLine {\ delta V}\ discMatr {{-K} ^ {\ pres}\ left (\ disp\ right)}\ discVect {\ delta U} The minus sign comes from the fact that the matrix's contribution is to the first member. Finally: .. math:: :label: eq-34 \ discMatr {{K} ^ {\ pres}\ left (\ disp\ right)} = \ sum_ {{\ quadPointIndex}} { \ onQuadpoint {\ pres} {\ quadpointIndex} \, \ quadWeight {\ quadPointIndex} \, \ onQuadpoint {\ JacobTransfor} {\ quadpointIndex} {\ quadpointIndex} \, \ transpose {\ discMatr {\ onQuadpoint {\ shape DFunc} {\ quadpointIndex}}} \ left ( \ discVect {\ onQuadpoint {G^\ delta} {\ quadpointIndex}} \, \ discVectLine {\ onQuadpoint {\normal} {\ quadpointIndex}} - \ discVect {\ onQuadpoint {\ normal} {\ quadpointIndex}} \, \ discVectLine {\ onQuadpoint {G^\ delta} {\ quadpointIndex}} \ right) \, {\ discMatr {\ onQuadpoint {\ shapeFunc} {\ quadpointIndex}}} } with :math:`\discMatr{\onQuadPoint{ \shapeDFunc} {\quadPointIndex} }` the matrix of derivatives of form functions. Choice of the matrix ------------------- In general, the matrix :math:`\discMatr{{K}^{\pres}\left(\disp\right)}` is **not symmetric** (except in the specific case of a structure subjected to constant internal or external pressure). We also note in practice that for strong variations in geometry (using hyper-elastic behavior in large deformations like ELAS_HYPER), the fact of symmetrizing this matrix is not a good strategy (convergence failure). We therefore decide to keep this non-symmetric matrix, despite the (slight) additional cost induced by the factorization of such a matrix.