# SSNV112L (uses mesh from SSNV112B) DEBUT(LANG = 'EN') # Read mesh mesh = LIRE_MAILLAGE(FORMAT = 'MED', UNITE = 20) # Define node groups mesh = DEFI_GROUP(reuse = mesh, MAILLAGE = mesh, CREA_GROUP_NO = (_F(GROUP_MA = 'A', NOM = 'A'), _F(GROUP_MA = 'F', NOM = 'F'), _F(NOM = 'N48', OPTION = 'ENV_SPHERE', POINT = (9.93712209893243E-02, 1.11964476103304E-02, 0.00000000000000E+00), RAYON = 0.002, PRECISION = 0.001), _F(NOM = 'N84', OPTION = 'ENV_SPHERE', POINT = (9.93712209893243E-02, 1.11964476103307E-02, 1.00000000000000E-02), RAYON = 0.002, PRECISION = 0.001), _F(NOM = 'N362', OPTION = 'ENV_SPHERE', POINT = (1.03360166268687E-01, 5.80458243110394E-03, 5.00000000000017E-03), RAYON = 0.002, PRECISION = 0.001))) # Define element groups mesh = DEFI_GROUP(reuse = mesh, MAILLAGE = mesh, CREA_GROUP_MA = (_F(NOM = 'M1', TYPE_MAILLE = '3D', OPTION = 'SPHERE', GROUP_NO_CENTRE = 'A', RAYON = 0.005), _F(NOM = 'M2', TYPE_MAILLE = '3D', OPTION = 'SPHERE', GROUP_NO_CENTRE = 'N48', RAYON = 0.005), _F(NOM = 'M3', TYPE_MAILLE = '3D', OPTION = 'SPHERE', GROUP_NO_CENTRE = 'N84', RAYON = 0.005), _F(NOM = 'M4', TYPE_MAILLE = '3D', OPTION = 'SPHERE', GROUP_NO_CENTRE = 'N362', RAYON = 0.005))) # Define element group from intersection mesh = DEFI_GROUP(reuse = mesh, MAILLAGE = mesh, CREA_GROUP_MA = (_F(NOM = 'M537', INTERSEC = ('M1', 'M2', 'M3', 'M4')))) # Change normal orientation mesh = MODI_MAILLAGE(reuse = mesh, MAILLAGE = mesh, ORIE_PEAU_3D = _F(GROUP_MA = ('FACEEF','FACEAE','FACEAB','FACSUP','FACINF'))) # Assign model model = AFFE_MODELE(MAILLAGE = mesh, AFFE = _F(GROUP_MA = ('VOLUME','FACEEF','FACEAE'), PHENOMENE = 'MECANIQUE', MODELISATION = '3D_INCO_UP')) # Define material inco_mat = DEFI_MATERIAU(ELAS = _F(E = 200000., NU = 0.49999, ALPHA = 0.), ECRO_LINE = _F(D_SIGM_EPSI = 0., SY = 1.E10)) # Assign material mater = AFFE_MATERIAU(MAILLAGE = mesh, AFFE = _F(TOUT = 'OUI', MATER = inco_mat)) # Define BCs bcs = AFFE_CHAR_MECA(MODELE = model, DDL_IMPO = (_F(GROUP_MA = 'FACEAB', DY = 0.), _F(GROUP_MA = 'FACSUP', DZ = 0.), _F(GROUP_MA = 'FACINF', DZ = 0.)), FACE_IMPO = (_F(GROUP_MA = 'FACEEF', DNOR = 0.), _F(GROUP_MA = 'FACEAE', DNOR = -6.E-5))) # Set up list of times l_vals = DEFI_LIST_REEL(DEBUT = 0., INTERVALLE = _F(JUSQU_A = 1., NOMBRE = 1)) # Define ramp function ramp = DEFI_FONCTION(NOM_PARA = 'INST', VALE = (0.,0., 1.,1.)) # Set up time stepping l_times = DEFI_LIST_INST(DEFI_LIST = _F(LIST_INST = l_vals)) # Run result = STAT_NON_LINE(MODELE = model, CHAM_MATER = mater, EXCIT = _F(CHARGE = bcs, FONC_MULT = ramp), COMPORTEMENT = _F(RELATION = 'VMIS_ISOT_LINE', DEFORMATION='GDEF_LOG'), INCREMENT = _F(LIST_INST = l_times), NEWTON = _F(REAC_ITER = 1), CONVERGENCE = _F(SIGM_REFE = 60.0, EPSI_REFE = 3.E-4, RESI_REFE_RELA = 1.E-3), SOLVEUR = _F(METHODE = 'MUMPS', NPREC = -1)) # Compute stresses result = CALC_CHAMP(reuse = result, RESULTAT = result, CRITERES = ('SIEQ_ELNO', 'SIEQ_NOEU'), CONTRAINTE = ('SIGM_ELNO', 'SIGM_NOEU')) # Compute strains result = CALC_CHAMP(reuse = result, RESULTAT = result, DEFORMATION = ('EPSL_NOEU')) # Compute error estimate result = CALC_ERREUR(reuse = result, RESULTAT = result, OPTION = ('ERME_ELEM','ERME_ELNO')) # Save results IMPR_RESU(FORMAT = 'MED', UNITE = 80, RESU = _F(RESULTAT = result)) #-------------------------------------------------------------- # Verification # Displacements TEST_RESU(RESU = (_F(GROUP_NO = 'A', INST = 1.0, REFERENCE = 'ANALYTIQUE', RESULTAT = result, NOM_CHAM = 'DEPL', NOM_CMP = 'DY', VALE_CALC = 0.0E+00, VALE_REFE = 0.0, CRITERE = 'ABSOLU'), _F(GROUP_NO = 'A', INST = 1.0, REFERENCE = 'ANALYTIQUE', RESULTAT = result, NOM_CHAM = 'DEPL', NOM_CMP = 'DX', VALE_CALC = 6.0094539827568E-05, VALE_REFE = 6.E-05, CRITERE = 'RELATIF', PRECISION = 2.E-3), _F(GROUP_NO = 'F', INST = 1.0, REFERENCE = 'ANALYTIQUE', RESULTAT = result, NOM_CHAM = 'DEPL', NOM_CMP = 'DY', VALE_CALC = 2.1197556491378E-05, VALE_REFE = 2.1217941E-05, CRITERE = 'RELATIF', PRECISION = 1.E-3), _F(GROUP_NO = 'F', INST = 1.0, REFERENCE = 'ANALYTIQUE', RESULTAT = result, NOM_CHAM = 'DEPL', NOM_CMP = 'DX', VALE_CALC = 2.1197556491378E-05, VALE_REFE = 2.1217941E-05, CRITERE = 'RELATIF', PRECISION = 1.E-3))) # Strains TEST_RESU(RESU = (_F(NUME_ORDRE = 1, GROUP_NO = 'A', REFERENCE = 'ANALYTIQUE', RESULTAT = result, NOM_CHAM = 'EPSL_NOEU', NOM_CMP = 'EPXX', VALE_CALC = -0.000601875797515, VALE_REFE = -0.0005994604316761909, CRITERE = 'RELATIF', PRECISION = 5.E-3), _F(NUME_ORDRE = 1, GROUP_NO = 'A', REFERENCE = 'ANALYTIQUE', RESULTAT = result, NOM_CHAM = 'EPSL_NOEU', NOM_CMP = 'EPYY', VALE_CALC = 0.000594644124527, VALE_REFE = 0.0006001799999999502, CRITERE = 'RELATIF', PRECISION = 1.E-2), _F(NUME_ORDRE = 1, GROUP_NO = 'A', REFERENCE = 'ANALYTIQUE', RESULTAT = result, NOM_CHAM = 'EPSL_NOEU', NOM_CMP = 'EPZZ', VALE_CALC = 6.92584026841E-07, VALE_REFE = 0.0, CRITERE = 'ABSOLU', PRECISION = 5.E-3), _F(NUME_ORDRE = 1, GROUP_NO = 'A', REFERENCE = 'ANALYTIQUE', RESULTAT = result, NOM_CHAM = 'EPSL_NOEU', NOM_CMP = 'EPXY', VALE_CALC = -2.06659214482E-05, VALE_REFE = 0.0, CRITERE = 'ABSOLU', PRECISION = 3.E-2), _F(NUME_ORDRE = 1, GROUP_NO = 'F', REFERENCE = 'ANALYTIQUE', RESULTAT = result, NOM_CHAM = 'EPSL_NOEU', NOM_CMP = 'EPXX', VALE_CALC = -3.16616085397E-07, VALE_REFE = 2.250674796533403e-08, CRITERE = 'ABSOLU', PRECISION = 2.E-3), _F(NUME_ORDRE = 1, GROUP_NO = 'F', REFERENCE = 'ANALYTIQUE', RESULTAT = result, NOM_CHAM = 'EPSL_NOEU', NOM_CMP = 'EPYY', VALE_CALC = -6.26231651455E-07, VALE_REFE = 2.250674796533403e-08, CRITERE = 'ABSOLU', PRECISION = 2.E-3), _F(NUME_ORDRE = 1, GROUP_NO = 'F', REFERENCE = 'ANALYTIQUE', RESULTAT = result, NOM_CHAM = 'EPSL_NOEU', NOM_CMP = 'EPZZ', VALE_CALC = 3.12812740484E-07, VALE_REFE = 0.0, CRITERE = 'ABSOLU', PRECISION = 2.5E-3), _F(NUME_ORDRE = 1, GROUP_NO = 'F', REFERENCE = 'ANALYTIQUE', RESULTAT = result, NOM_CHAM = 'EPSL_NOEU', NOM_CMP = 'EPXY', VALE_CALC = -0.000149226519473, VALE_REFE = -0.0001500224932519667, CRITERE = 'RELATIF', PRECISION = 6.E-3))) # Stresses TEST_RESU(RESU = (_F(NUME_ORDRE = 1, GROUP_NO = 'A', REFERENCE = 'ANALYTIQUE', RESULTAT = result, NOM_CHAM = 'SIGM_NOEU', NOM_CMP = 'SIYY', VALE_CALC = 98.62324310315, VALE_REFE = 99.9566, CRITERE = 'RELATIF', PRECISION = 0.02), _F(NUME_ORDRE = 1, GROUP_NO = 'A', REFERENCE = 'ANALYTIQUE', RESULTAT = result, NOM_CHAM = 'SIGM_NOEU', NOM_CMP = 'SIXX', VALE_CALC = -60.914207914005, VALE_REFE = -59.9955, CRITERE = 'RELATIF', PRECISION = 0.02), _F(NUME_ORDRE = 1, GROUP_NO = 'A', REFERENCE = 'ANALYTIQUE', RESULTAT = result, NOM_CHAM = 'SIGM_NOEU', NOM_CMP = 'SIZZ', VALE_CALC = 19.428975515274, VALE_REFE = 19.9326, CRITERE = 'RELATIF', PRECISION = 0.03), _F(NUME_ORDRE = 1, GROUP_NO = 'A', REFERENCE = 'ANALYTIQUE', RESULTAT = result, NOM_CHAM = 'SIGM_NOEU', NOM_CMP = 'SIXY', VALE_CALC = -2.759603216176, VALE_REFE = 0.0, CRITERE = 'ABSOLU', PRECISION = 3.0), _F(NUME_ORDRE = 1, GROUP_NO = 'F', REFERENCE = 'ANALYTIQUE', RESULTAT = result, NOM_CHAM = 'SIGM_NOEU', NOM_CMP = 'SIXX', VALE_CALC = 19.946852256401, VALE_REFE = 20.003, CRITERE = 'RELATIF', PRECISION = 3.E-3), _F(NUME_ORDRE = 1, GROUP_NO = 'F', REFERENCE = 'ANALYTIQUE', RESULTAT = result, NOM_CHAM = 'SIGM_NOEU', NOM_CMP = 'SIYY', VALE_CALC = 19.905532099373, VALE_REFE = 20.003, CRITERE = 'RELATIF', PRECISION = 5.E-3), _F(NUME_ORDRE = 1, GROUP_NO = 'F', REFERENCE = 'ANALYTIQUE', RESULTAT = result, NOM_CHAM = 'SIGM_NOEU', NOM_CMP = 'SIZZ', VALE_CALC = 20.03075773209, VALE_REFE = 20.003, CRITERE = 'RELATIF', PRECISION = 2.E-3), _F(NUME_ORDRE = 1, GROUP_NO = 'F', REFERENCE = 'ANALYTIQUE', RESULTAT = result, NOM_CHAM = 'SIGM_NOEU', NOM_CMP = 'SIXY', VALE_CALC = -19.897015086153, VALE_REFE = -20.003, CRITERE = 'RELATIF', PRECISION = 1.E-2))) # Equivalent stresses TEST_RESU(RESU = (_F(GROUP_NO = 'A', INST = 1.0, REFERENCE = 'ANALYTIQUE', RESULTAT = result, NOM_CHAM = 'SIEQ_NOEU', NOM_CMP = 'VMIS', VALE_CALC = 138.26656386354, VALE_REFE = 138.52260000000001, CRITERE = 'RELATIF', PRECISION = 2.E-3, GROUP_MA = 'M1'), _F(GROUP_NO = 'A', INST = 1.0, REFERENCE = 'ANALYTIQUE', RESULTAT = result, NOM_CHAM = 'SIEQ_NOEU', NOM_CMP = 'TRESCA', VALE_CALC = 159.65144212962, VALE_REFE = 159.9521, CRITERE = 'RELATIF', PRECISION = 2.E-3, GROUP_MA = 'M1'), _F(GROUP_NO = 'A', INST = 1.0, REFERENCE = 'ANALYTIQUE', RESULTAT = result, NOM_CHAM = 'SIEQ_NOEU', NOM_CMP = 'PRIN_1', VALE_CALC = -60.969943062956, VALE_REFE = -59.9955, CRITERE = 'RELATIF', PRECISION = 2.E-2, GROUP_MA = 'M1'), _F(GROUP_NO = 'A', INST = 1.0, REFERENCE = 'ANALYTIQUE', RESULTAT = result, NOM_CHAM = 'SIEQ_NOEU', NOM_CMP = 'PRIN_2', VALE_CALC = 19.426454700711, VALE_REFE = 19.9326, CRITERE = 'RELATIF', PRECISION = 3.E-2, GROUP_MA = 'M1'), _F(GROUP_NO = 'A', INST = 1.0, REFERENCE = 'ANALYTIQUE', RESULTAT = result, NOM_CHAM = 'SIEQ_NOEU', NOM_CMP = 'PRIN_3', VALE_CALC = 98.681499066663, VALE_REFE = 99.9566, CRITERE = 'RELATIF', PRECISION = 1.5E-2, GROUP_MA = 'M1'), _F(GROUP_NO = 'A', INST = 1.0, REFERENCE = 'ANALYTIQUE', RESULTAT = result, NOM_CHAM = 'SIEQ_NOEU', NOM_CMP = 'VMIS_SG', VALE_CALC = 138.26656386354, VALE_REFE = 138.52260000000001, CRITERE = 'RELATIF', PRECISION = 2.E-3, GROUP_MA = 'M1'))) # Error estimates TEST_RESU(RESU = _F(INST = 1.0, POINT = 1, RESULTAT = result, NOM_CHAM = 'ERME_ELEM', NOM_CMP = 'NUEST', VALE_CALC = 1.4249235683863, CRITERE = 'RELATIF', GROUP_MA = 'M537')) TEST_RESU(RESU = _F(GROUP_NO = 'A', INST = 1.0, RESULTAT = result, NOM_CHAM = 'ERME_ELNO', NOM_CMP = 'ERREST', VALE_CALC = 4.3238541664061E-04, CRITERE = 'RELATIF', GROUP_MA = 'M537')) # End FIN()