Welcome to the forums. Please post in English or French.

You are not logged in.

#1 2021-04-09 14:01:10

GuillermoBarraza
Member
Registered: 2016-05-24
Posts: 49

Overconstrained DOFs with FACE_IMPO for symmetry

Hello everyone,

I've been working on a simple model like the one in the attached image (bc_setup.png). The problem is simple:

1. I impose a symmetry boundary condition on the cylindrical face by means of:

symm=AFFE_CHAR_MECA(
    MODELE=MODEL,
    FACE_IMPO=_F(
        DNOR=0.0,
        GROUP_MA=('face1'),
        ),
    );

2. Then, on the top face I impose a fixed constraint by means of:

support==AFFE_CHAR_CINE(
    MODELE=MODEL,
    MECA_IMPO=_F(
        DX=0.0,
        DY=0.0,
        DZ=0.0,
        GROUP_NO=('face2'),
        ),
    );

3. Finally, I apply a face force on the bottom face:

force=AFFE_CHAR_MECA(
    MODELE=MODEL,
    FORCE_FACE=_F(
        FX=0,
        FY=0,
        FZ=10,
        GROUP_MA=('face3'),
        ),
    );

After running my simple linear static simulation (MECA_STATIQUE) I run into the following problem:

 !------------------------------------------------------------------------------------------------------------------------------!
   ! <EXCEPTION> <FACTOR_11>                                                                                                      !
   !                                                                                                                              !
   ! Problème : la matrice est singulière ou presque singulière :                                                                 !
   !   Lors de la factorisation de la matrice, on a rencontré un problème                                                         !
   !   (pivot nul ou presque nul) à la ligne 3843 qui correspond au degré de liberté donné ci-dessus.                             !
   !                                                                                                                              !
   ! Risques et conseils :                                                                                                        !
   !    * Si la ligne correspond a un degré de liberté physique, il s'agit probablement d'un mouvement                            !
   !      de corps rigide mal bloqué.                                                                                             !
   !      Vérifiez les conditions aux limites.                                                                                    !
   !      Si vous faites du contact, il ne faut pas que la structure ne "tienne" que par le contact.                              !
   !      Vérifiez également les caractéristiques matériaux (module d'Young, ...).                                                !
   !                                                                                                                              !
   !    * Si la ligne correspond a un degré de liberté de Lagrange, il s'agit sans doute d'une condition                          !
   !      limite redondante.                                                                                                      !
   !      En particulier, il se peut que la relation linéaire surabondante provienne des conditions de contact.                   !
   !      Peut-être devriez vous exclure certains noeuds des conditions de contact                                                !
   !      (mots clés SANS_NOEUD et SANS_GROUP_NO).                                                                                !
   !                                                                                                                              !
   !    * Si le solveur utilisé est LDLT ou MULT_FRONT, vous pouvez utiliser le solveur MUMPS                                     !
   !      car celui-ci est le seul à pouvoir factoriser les matrices qui ne sont pas définies positives.                          !
   !                                                                                                                              !
   !    * Parfois, en parallèle, le critère de détection de singularité de MUMPS est trop pessimiste ! Il reste néanmoins souvent !
   !      possible de faire passer le calcul complet en relaxant ce critère (augmenter de 1 ou 2 la valeur du mot-clé NPREC) ou   !
   !      en le débranchant (valeur du mot-clé NPREC=-1) ou en relançant le calcul sur moins de processeurs.                      !
   !                                                                                                                              !
   !    * Il se peut aussi que ce phénomène soit tout à fait normal avec X-FEM si la fissure passe                                !
   !      très près d'un noeud.                                                                                                   !
   !      Si le nombre de décimales perdues n'est pas trop grand (max 10 décimales),                                              !
   !      vous pouvez relancer le calcul en augmentant le nombre de décimales perdues autorisé :                                  !
   !      mot-clé NPREC du mot clé facteur SOLVEUR.                                                                               !
   !      Sinon, contactez l'équipe de développement.                                                                             !
   !------------------------------------------------------------------------------------------------------------------------------!

By looking into the problem a bit more in detail I found that one node which belongs to the symmetry boundary condition (symm) is overconstrained:

 Degré de liberté de Lagrange associé à une relation linéaire entre plusieurs degrés de liberté.
  La relation linéaire a été définie par la commande ayant produit le concept de nom symm.
  La liste des noeuds impliqués dans cette relation linéaire est la suivante:
    Node N1257
    Node N1257
    Node N1257

The "geometry" displayed in the image is a simplification of the real problem, where I cannot replace FACE_IMPO with DNOR=0 since the normal is not the same at every node on the face.

Any idea how can I overcome this problem?


*NOTE* I have already tried to remove the nodes on the shared edge from the support boundary condition, but this leads to the displacement of these nodes in the Z direction (violating the imposed zero displacements on the upper face)

Any help is really appreciated!

Last edited by GuillermoBarraza (2021-04-11 18:27:22)

Offline

#2 2021-04-09 14:17:39

GuillermoBarraza
Member
Registered: 2016-05-24
Posts: 49

Re: Overconstrained DOFs with FACE_IMPO for symmetry

I forgot to attach the image. Here it is:


Attachments:
bc_setup.png, Size: 71.29 KiB, Downloads: 184

Offline

#3 2021-04-15 14:38:02

Ect
Member
From: Switzerland
Registered: 2008-05-15
Posts: 103

Re: Overconstrained DOFs with FACE_IMPO for symmetry

Hello,

Over constraints aren't automatically solved, still having this feature would really help lazy people like me.

It can be easily circumvented by excluding the offending nodes:

mesh = DEFI_GROUP (reuse = mesh, MAILLAGE = mesh,
             CREA_GROUP_NO = (
                 _F (NOM='exclude', INTERSEC=('face1','face2')),
             )
         )

symm = AFFE_CHAR_MECA(...
              FACE_IMPO=(
                  _F(GROUP_MA='face1', DNOR=0.0, SANS_GROUP_NO=('exclude',)),
              ),
          )

Cheers,
Ect

Offline

#4 2021-04-16 11:42:06

GuillermoBarraza
Member
Registered: 2016-05-24
Posts: 49

Re: Overconstrained DOFs with FACE_IMPO for symmetry

Thanks for your reply Ect.

I have tried that before. Nevertheless, by doing what you propose, I am removing a group of nodes from the symmetry condition, which will result in wrong behavior. Take as an example the following:

Assume that instead of imposing only 0 displacement/rotation to the nodes of the top face (as depicted in the image I shared) I do the following:

mesh = DEFI_GROUP (reuse = mesh, MAILLAGE = mesh,
             CREA_GROUP_NO = (
                 _F (NOM='exclude', INTERSEC=('face1','face2')),
             )
         )

# Let's apply a displacement in the X direction on the top face
disp=AFFE_CHAR_CINE(
    MODELE=MODEL,
    MECA_IMPO=_F(
        DX=0.0,
        DY=1.0,
        DZ=0.0,
        GROUP_NO=('face2'),
        ),

symm = AFFE_CHAR_MECA(...
              FACE_IMPO=(
                  _F(GROUP_MA='face1', DNOR=0.0, SANS_GROUP_NO=('exclude',)),
              ),
          )
    );

then, the nodes on the shared edge between disp and symm will have some displacements in the y-direction, violating the symmetry condition.

Guillermo

Offline

#5 2021-04-19 16:30:00

Ect
Member
From: Switzerland
Registered: 2008-05-15
Posts: 103

Re: Overconstrained DOFs with FACE_IMPO for symmetry

Hello,

If I understand correctly the two boundary conditions are not compatible. It’s more a modeling question then...

Regards,
Ect

Offline