Commit 406f0378 authored by Mustapha ELLOUZE's avatar Mustapha ELLOUZE
Browse files

Merge branch 'jlf-issue34231' into 'main'

[#34231] Ambiguites AFFE_CARA_ELEM / RIGI_PARASOL

See merge request codeaster/src!571
parents 6e3646c2 d3f15a7e
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
# coding=utf-8
# --------------------------------------------------------------------
# Copyright (C) 1991 - 2022 - EDF R&D - www.code-aster.org
# Copyright (C) 1991 - 2025 - EDF R&D - www.code-aster.org
# This file is part of code_aster.
#
# code_aster is free software: you can redistribute it and/or modify
@@ -53,7 +53,7 @@ mail = MODI_MAILLAGE(
modele = AFFE_MODELE(
    MAILLAGE=mail,
    AFFE=(
        _F(GROUP_MA=("STRVOU2"), PHENOMENE="MECANIQUE", MODELISATION="3D"),
        _F(GROUP_MA=("STRVOU2", "SURFBAS2"), PHENOMENE="MECANIQUE", MODELISATION="3D"),
        _F(GROUP_MA="PFONDAT", PHENOMENE="MECANIQUE", MODELISATION="DIS_T"),
        _F(GROUP_MA="PFLUSTR", PHENOMENE="MECANIQUE", MODELISATION="DIS_T"),
    ),
+2 −2
Original line number Diff line number Diff line
# coding=utf-8
# --------------------------------------------------------------------
# Copyright (C) 1991 - 2023 - EDF R&D - www.code-aster.org
# Copyright (C) 1991 - 2025 - EDF R&D - www.code-aster.org
# This file is part of code_aster.
#
# code_aster is free software: you can redistribute it and/or modify
@@ -26,7 +26,7 @@ mail = LIRE_MAILLAGE(FORMAT="MED")
model = AFFE_MODELE(
    MAILLAGE=mail,
    AFFE=(
        _F(GROUP_MA=("DALLE", "D0403"), PHENOMENE="MECANIQUE", MODELISATION="D_PLAN"),
        _F(GROUP_MA=("DALLE", "D0403", "DALLE_2D"), PHENOMENE="MECANIQUE", MODELISATION="D_PLAN"),
        _F(GROUP_MA=("RESSORTS"), PHENOMENE="MECANIQUE", MODELISATION="2D_DIS_T"),
    ),
)
+2 −2
Original line number Diff line number Diff line
# coding=utf-8
# --------------------------------------------------------------------
# Copyright (C) 1991 - 2023 - EDF R&D - www.code-aster.org
# Copyright (C) 1991 - 2025 - EDF R&D - www.code-aster.org
# This file is part of code_aster.
#
# code_aster is free software: you can redistribute it and/or modify
@@ -24,7 +24,7 @@ mail = LIRE_MAILLAGE(FORMAT="MED")
model = AFFE_MODELE(
    MAILLAGE=mail,
    AFFE=(
        _F(GROUP_MA=("DALLE", "D0403"), PHENOMENE="MECANIQUE", MODELISATION="D_PLAN"),
        _F(GROUP_MA=("DALLE", "D0403", "DALLE_2D"), PHENOMENE="MECANIQUE", MODELISATION="D_PLAN"),
        _F(GROUP_MA=("RESSORTS"), PHENOMENE="MECANIQUE", MODELISATION="2D_DIS_T"),
    ),
)
+5 −0
Original line number Diff line number Diff line
@@ -726,6 +726,7 @@ CARTE_SDASTER
CART_ABSC_R
CART_CACOQU_R
CART_CAMA_R
CART_CADISK_R
CART_CAORIE_R
CART_CHLI_R
CART_CLAC_R
@@ -1807,6 +1808,7 @@ ELEMENTS_ACCEPTES
ELEM_ABSC_R
ELEM_CACOQU_R
ELEM_CAMA_R
ELEM_CADISK_R
ELEM_CAORIE_R
ELEM_CHLI_R
ELEM_CLAC_R
@@ -1910,6 +1912,7 @@ ELEM_VFAC_R
ELGA_ABSC_R
ELGA_CACOQU_R
ELGA_CAMA_R
ELGA_CADISK_R
ELGA_CAORIE_R
ELGA_CHLI_R
ELGA_CLAC_R
@@ -2017,6 +2020,7 @@ ELNO
ELNO_ABSC_R
ELNO_CACOQU_R
ELNO_CAMA_R
ELNO_CADISK_R
ELNO_CAORIE_R
ELNO_CHLI_R
ELNO_CLAC_R
@@ -4256,6 +4260,7 @@ NOEU_ABSC_R
NOEU_CACOQU_R
NOEU_CALCUL
NOEU_CAMA_R
NOEU_CADISK_R
NOEU_CAORIE_R
NOEU_CHLI_R
NOEU_CLAC_R

astest/zzzz145c.comm

0 → 100644
+149 −0
Original line number Diff line number Diff line
# coding=utf-8
# --------------------------------------------------------------------
# Copyright (C) 1991 - 2025 - EDF R&D - www.code-aster.org
# This file is part of code_aster.
#
# code_aster is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# code_aster is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with code_aster.  If not, see <http://www.gnu.org/licenses/>.
# --------------------------------------------------------------------
#
#

DEBUT(CODE=_F(NIV_PUB_WEB="INTERNET"), DEBUG=_F(SDVERI="OUI"), ERREUR=_F(ERREUR_F="EXCEPTION"))

mail = LIRE_MAILLAGE(FORMAT="ASTER", UNITE=22)

modT = AFFE_MODELE(
    MAILLAGE=mail,
    AFFE=(
        _F(GROUP_MA="DALLE", PHENOMENE="MECANIQUE", MODELISATION="DKT"),
        _F(GROUP_MA="RESSORT", PHENOMENE="MECANIQUE", MODELISATION="DIS_T"),
        _F(GROUP_MA="RESSORT2", PHENOMENE="MECANIQUE", MODELISATION="DIS_T"),
    ),
)

# Raideur       Translation & Rotation
kx = 11000.0
ky = 12000.0
kz = 13000.0
krx = 31000.0
kry = 32000.0
krz = 33000.0
# Amortissement Translation & Rotation
ax = 21000.0
ay = 22000.0
az = 23000.0
arx = 41000.0
ary = 42000.0
arz = 43000.0
#

# La référence
CARK1 = AFFE_CARA_ELEM(
    MODELE=modT,
    COQUE=_F(GROUP_MA="DALLE", EPAIS=0.3, COQUE_NCOU=1),
    ORIENTATION=(_F(GROUP_MA="RESSORT", CARA="ANGL_VRIL", VALE=(0.0,)),),
    RIGI_PARASOL=(
        _F(
            GROUP_MA="DALLE",
            GROUP_MA_SEG2="RESSORT",
            COEF_GROUP=1.0,
            REPERE="GLOBAL",
            CARA="K_T_D_L",
            VALE=(kx, ky, kz),
            GROUP_NO_CENTRE="PCDG",
        ),
    ),
)


# On affecte 2 fois ==> Règle de surcharge ==> Doit être identique à la référence
CARK2 = AFFE_CARA_ELEM(
    MODELE=modT,
    COQUE=_F(GROUP_MA="DALLE", EPAIS=0.3, COQUE_NCOU=1),
    ORIENTATION=(_F(GROUP_MA="RESSORT", CARA="ANGL_VRIL", VALE=(0.0,)),),
    RIGI_PARASOL=(
        _F(
            GROUP_MA="DALLE",
            GROUP_MA_SEG2="RESSORT",
            COEF_GROUP=1.0,
            REPERE="GLOBAL",
            CARA="K_T_D_L",
            VALE=(kx, ky, kz),
            GROUP_NO_CENTRE="PCDG",
        ),
        _F(
            GROUP_MA="DALLE",
            GROUP_MA_SEG2="RESSORT2",
            COEF_GROUP=1.0,
            REPERE="GLOBAL",
            CARA="K_T_D_L",
            VALE=(kx, ky, kz),
            GROUP_NO_CENTRE="PCDG",
        ),
    ),
)

Ressort1 = CREA_CHAMP(
    TYPE_CHAM="CART_CADISK_R", OPERATION="EXTR", CARA_ELEM=CARK1, NOM_CHAM=".CARDISCK"
)
TRessort1 = CREA_TABLE(
    RESU=_F(CHAM_GD=Ressort1, GROUP_MA="RESSORT", NOM_CMP=("K1", "K3", "K6", "K10", "K15", "K21"))
)

Ressort2 = CREA_CHAMP(
    TYPE_CHAM="CART_CADISK_R", OPERATION="EXTR", CARA_ELEM=CARK2, NOM_CHAM=".CARDISCK"
)
TRessort2 = CREA_TABLE(
    RESU=_F(CHAM_GD=Ressort2, GROUP_MA="RESSORT", NOM_CMP=("K1", "K3", "K6", "K10", "K15", "K21"))
)

# Comparaison de toutes les composantes sur toutes les mailles :
#   On soustrait et on compare à 0.0
Differ = FORMULE(VALE="(X1-X2)/(abs(X1)+abs(X2))", NOM_PARA=["X1", "X2"])
Compar = CALC_TABLE(
    TABLE=TRessort1,
    ACTION=(
        _F(OPERATION="RENOMME", NOM_PARA=("K1", "KK1")),
        _F(OPERATION="RENOMME", NOM_PARA=("K3", "KK3")),
        _F(OPERATION="RENOMME", NOM_PARA=("K6", "KK6")),
        _F(OPERATION="RENOMME", NOM_PARA=("K10", "KK10")),
        _F(OPERATION="RENOMME", NOM_PARA=("K15", "KK15")),
        _F(OPERATION="RENOMME", NOM_PARA=("K21", "KK21")),
        _F(OPERATION="COMB", TABLE=TRessort2, NOM_PARA="MAILLE"),
        _F(OPERATION="OPER", FORMULE=Differ, NOM_PARA="DK1", NOM_COLONNE=("KK1", "K1")),
        _F(OPERATION="OPER", FORMULE=Differ, NOM_PARA="DK3", NOM_COLONNE=("KK3", "K3")),
        _F(OPERATION="OPER", FORMULE=Differ, NOM_PARA="DK6", NOM_COLONNE=("KK6", "K6")),
        _F(OPERATION="OPER", FORMULE=Differ, NOM_PARA="DK10", NOM_COLONNE=("KK10", "K10")),
        _F(OPERATION="OPER", FORMULE=Differ, NOM_PARA="DK15", NOM_COLONNE=("KK15", "K15")),
        _F(OPERATION="OPER", FORMULE=Differ, NOM_PARA="DK21", NOM_COLONNE=("KK21", "K21")),
        _F(OPERATION="SUPPRIME", NOM_PARA=("K1", "K3", "K6", "K10", "K15", "K21")),
        _F(OPERATION="SUPPRIME", NOM_PARA=("KK1", "KK3", "KK6", "KK10", "KK15", "KK21")),
    ),
)

IMPR_TABLE(TABLE=Compar, UNITE=8)

for para in ["DK1", "DK3", "DK6", "DK10", "DK15", "DK21"]:
    TEST_TABLE(
        TABLE=Compar,
        REFERENCE="ANALYTIQUE",
        CRITERE="ABSOLU",
        VALE_REFE=0.0,
        VALE_CALC=0.0,
        ORDRE_GRANDEUR=1.0,
        FILTRE=_F(CRIT_COMP="MAXI_ABS", NOM_PARA=para),
        NOM_PARA=para,
    )

FIN()
Loading