* G_CAS PROCEDUR JB251061 22/08/09 21:15:02 11426 * ============================================================================= * PROCEDURE D'ANALYSE DE LA TABLE D'ENTREE FOURNIE A G_THETA * ---------------------------------------------------------- * * DESCRIPTION : DETERMINE SI LE CALCUL DEMANDE EST PREVU PAR LA VERSION * ACTUELLE DE G_THETA, ET PREVIENT L'UTILISATEUR SI LE CAS * ENVISAGE N'EST PAS TESTE OU VALIDE PAR LA BASE DE CAS TESTS * ACTUELLE. * ON EN PROFITE EGALEMENT POUR CREER CERTAINS OBJETS QUI SERONT * UTILISES PAR G_THETA. * ============================================================================= * I - DETERMINATION DU CAS DEMANDE ET VERIFICATION DES DONNEES OBLIGATOIRES * ------------------------------------------------------------------------- MESS; NMESS = 2; NDEC = NMESS + 20; * I.1 - LECTURE DES DONNEES FOURNIES A SUPTAB * ******************************************* * I.1.A - OBJECTIF MESS 'ERREUR : IL FAUT SPECIFIER L INTEGRALE'; SINON; FINSI; FINSI; * MESSAGE * I.1.B - DIMENSION ET MODE DE CALCUL * MESSAGE MESS MESSDIME; MESS MESSMODE; * I.1.C - TYPE DE SOLUTION DONNEE SINON; MESS 'ERREUR : SOLUTION_RESO INCORRECTE.' MESS ' ON ATTEND UN ''CHPOINT''.'; FINSI; GSOLU = 'LINEAIRE'; SINON; FINSI; FINSI; * I.1.D - MODELE MECANIQUE, MATERIAU ET HYPOTHESE DE CALCUL SI (EGA GSOLU 'LINEAIRE'); FINSI; MESS 'ERREUR : IL FAUT DONNER LE CHAMP CARACTERISTIQUE'; FINSI; MOD_TOT = SUPTAB.'MODELE'; GHYPO = 'HPP'; SINON; MOD_TOT = SUPTAB.'SOLUTION_PASAPAS'.'MODELE'; WTAB = SUPTAB.'SOLUTION_PASAPAS'.'WTABLE'; MOD_MEC = WTAB.'MOD_MEC'; MAT_MEC = WTAB.'MAT_MEC'; SINON; MESS 'Absence de WTABLE ! l execution continue ...'; MOD_TOT = SUPTAB.'SOLUTION_PASAPAS'.'MODELE'; WTAB = SUPTAB.'SOLUTION_PASAPAS'; FINSI; SUPTAB.'MODELE' = MOD_MEC; SI WTAB.'GRANDS_DEPLACEMENTS'; GHYPO = 'GRANDS_DEPLACEMENTS'; SINON; GHYPO = 'HPP'; FINSI; SI WTAB.'DYNAMIQUE'; SINON; FINSI; FINSI; * COMPORTEMENT ELASTIQUE SINON; FINSI; * COMPORTEMENT PLASTIQUE MPLAS.(1) MPLAS.(2) MPLAS.(3) = 'ISOTROPE' 'PARFAIT' 'CINEMATIQUE'; FINSI; FIN I; FINSI; * COMPORTEMENT VISCOPLASTIQUE MVISC.(1) MVISC.(2) MVISC.(3) MVISC.(4) MVISC.(5) MVISC.(6) = 'NORTON' 'POLYNOMIAL' 'BLACKBURN' 'RCCMR_316' 'RCCMR_304' 'LEMAITRE'; FINSI; FIN I; FINSI; * PROPRIETES QUI DEPENDENT D'UN PARAMETRE FIN I; * PROPRIETES QUI DEPENDENT DE LA POSITION * On teste le Type car 'COVA' a des exceptions (comme 'ECRO' qui est un EVOLUTION mais consideree constante) * Amelioration a prevoir : boucle sur les SOUS-ZONES et s'assurer qu'il y a bien au moins 1 élément... * On aimerait bien avoir un operateur qui repond par VRAI ou FAUX si un objet est constant !!! PPOSI = PPOSI ET ICOMP; FINSI; FINSI; FIN I; * PROPRIETES A GRADIENT PGRAD = PPARA ET PPOSI; * DISCONTINUITES MATERIELLES DISMAT = VRAI; TABMOD = SUPTAB.'MODELES_COMPOSITES'; SINON; DISMAT = FAUX; FINSI; * MESSAGE TYPE DE SOLUTION * MESSAGE HYPOTHESE DE CALCUL * MESSAGE MATERIAU FINSI; FINSI; MESS MESSMAT; * MESSAGE VARIATION DES PROPRIETES SI DISMAT; SINON; SINON; FINSI; FINSI; MESS MESSVAR; * I.1.E - MAILLAGE ET TYPE D'ELEMENTS SUPTAB.'FISSURE' = SUPTAB.'FISSURE' ET SUPTAB.'LEVRE_SUPERIEURE'; FINSI; SUPTAB.'FISSURE' = SUPTAB.'FISSURE' ET SUPTAB.'LEVRE_INFERIEURE'; FINSI; * ELEMENTS LINEAIRES OU NONLINEAIRES FINSI; FIN I; MESS ' LE CALCUL SE POURSUIT QUAND MEME.'; FINSI; GELDEG = 1.5; SINON; GELDEG = 1; SINON; GELDEG = 2; FINSI; FINSI; * ELEMENTS XFEM OU STANDARD (MASSIF OU COQUE) SINON; MESS 'ERREUR : LE MAILLAGE SUPPORT DU MODELE EST CONSTITUE'; SINON; GELTYP = 'STD COQUE'; SINON; FINSI; FINSI; FINSI; * MESSAGE MESS MESSELEM; * I.1.F - CHARGEMENT GCHAR.'PRESSION' = 'HORS LEVRES'; SINON; GCHAR.'PRESSION' = 'SUR LEVRES'; SINON; GCHAR.'PRESSION' = 'HORS LEVRES'; FINSI; FINSI; SINON; GCHAR.'PRESSION' = 'AUCUN'; FINSI; SI (EGA GSOLU 'LINEAIRE'); SINON; GCHAR.'THERMIQUE' = 'AUCUN'; FINSI; SINON; CHAR1 = SUPTAB.'SOLUTION_PASAPAS'.'CHARGEMENT'; SINON; SINON; GCHAR.'THERMIQUE' = 'AUCUN'; FINSI; FINSI; FINSI; NBCHAR = 0; SI (NEG NBCHAR 0); MESSCHAR = ' '; FINSI; SI GCHAR.MCHAR; MESS MESSCHAR; NBCHAR = NBCHAR + 1; FINSI; FINSI; SI (NEG GCHAR.MCHAR 'AUCUN'); MESS MESSCHAR; NBCHAR = NBCHAR + 1; FINSI; FINSI; FIN I; * I.1.G - CONTACT ENTRE LEVRES DE FISSURE * I.2 - VERIFICATION QUE LE CAS EST TRAITABLE * ******************************************* * I.2.A - VERIFICATION QUE L'ON CONNAIT L'OBJECTIF SI ((NEG GOBJ 'J') ET (NEG GOBJ 'C*') ET (NEG GOBJ 'C*H') ET (NEG GOBJ 'DJ/DA') ET (NEG GOBJ 'J_DYNA') ET (NEG GOBJ 'DECOUPLAGE')); MESS 'ERREUR : ON NE CONNAIT PAS L INTEGRALE SPECIFIEE'; FINSI; * I.2.B - VERIFICATION QUE LE MATERIAU EST ISOTROPE MESS 'ERREUR : ON NE PEUT PAS TRAITER LE CAS DE MATERIAUX ANISOTROPES.'; FINSI; * I.2.C - VERIFICATION QUE L'ON A PAS A LA FOIS DES INTERFACES ET DES GRADIENTS * DE PROPRIETES MESS 'ERREUR : ON NE PEUT PAS TRAITER LE CAS DE DISCONTINUITES'; FINSI; * I.2.D - INTERFACES (2D SEULEMENT, ET ON DOIT AVOIR AU MOINS DEUX MODELES) SI DISMAT; SI (EGA GDIME 3); MESS 'ERREUR : ON NE PEUT PAS ENCORE TRAITER LES DISCONTINUITES DE'; MESS ' PROPRIETES EN 3D'; FINSI; MESS 'ERREUR : IL FAUT AU MOINS DEUX MODELES POUR'; MESS ' DETERMINER LA LIGNE COMMUNE D''INTERFACE'; FINSI; FINSI; * I.2.E - OBJECTIF : J SI (EGA GOBJ 'J'); MESS 'ERREUR : ON ATTEND UN COMPORTEMENT ELASTOPLASTIQUE POUR'; FINSI; FINSI; * I.2.F - OBJECTIF : C* OU C*H SI ((EGA GOBJ 'C*') OU (EGA GOBJ 'C*H')); MESS 'ERREUR : ON ATTEND UN COMPORTEMENT VISCOPLASTIQUE POUR'; FINSI; SI (NEG GCHAR.'THERMIQUE' 'AUCUN'); FINSI; SI (NEG GHYPO 'HPP'); MESS ' EN GRANDS DEPLACEMENTS'; FINSI; SI (EGA GOBJ 'C*H'); MESS 'ERREUR : IL FAUT UN MODELE DE FLUAGE NORTON'; FINSI; FIN I; FINSI; FINSI; * I.2.G - OBJECTIF : DJ/DA SI (EGA GOBJ 'DJ/DA'); MESS 'ERREUR : ON ATTEND UN COMPORTEMENT ELASTOPLASTIQUE POUR'; FINSI; FINSI; SI (NEG GELTYP 'STD MASSIF'); MESS ' DES ELEMENTS STANDARDS MASSIFS'; FINSI; SI (NEG GHYPO 'HPP'); MESS ' SOUS L''HYPOTHESE DES PETITES PERTURBATIONS'; FINSI; MESS 'ERREUR : IL FAUT DONNER LES BLOCAGES MECANIQUES'; FINSI; FINSI; * I.2.H - OBJECTIF : J_DYNA SI (EGA GOBJ 'J_DYNA'); MESS ' L''INTEGRALE J_DYNA'; FINSI; FINSI; FINSI; * I.2.I - OBJECTIF : DECOUPLAGE MESS 'ERREUR : ON ATTEND UN COMPORTEMENT ELASTIQUE POUR UTILISER'; MESS ' L''OPTION DECOUPLAGE'; FINSI; MESS 'ERREUR : ON NE PEUT PAS UTILISER L''OPTION DECOUPLAGE POUR UN'; MESS ' SOLIDE A GRADIENT DE PROPRIETES'; FINSI; SI (EGA GELTYP 'STD COQUE'); MESS ' CAS DE COQUES'; FINSI; * SI IL Y A DES INTERFACES IL FAUT VERIFIER QU'ELLES SONT PARALLELES A LA * FISSURE, MAIS LA DIRECTION DE CELLE-CI EST OBTENUE APRES AVOIR CALCULE * LE CHAMP THETA, DONC CETTE VERIFICATION EST FAITE DANS G_THETA FINSI; * I.2.J - CONTACT ENTRE LES LEVRES : UNIQUEMENT AVEC RESO ET XFEM SI BCONT; SI (NEG GSOLU 'LINEAIRE'); FINSI; MESS ' STANDARDS'; FINSI; FINSI; * I.2.K - ON VERIFIE QU'IL N'Y A PAS DE GRADIENT DE COEFFICIENT DE POISSON MESS 'ERREUR : ON NE SAIT PAS ENCORE TRAITER LA PRESENCE D''UN GRADIENT'; MESS ' DE COEFFICIENT DE POISSON'; FINSI; * I.3 - VERIFICATION DES DONNEES NECESSAIRES * ****************************************** * I.3.A - FRONT DE FISSURE MESS 'ERREUR : ON VEUT LE FRONT DE LA FISSURE'; FINSI; M_FRONT = SUPTAB.'FRONT_FISSURE'; FINSI; SINON; SI (NEG MTYPEL 'POI1'); SUPTAB.'FRONT_FISSURE' = M_FRONT; FINSI; FINSI; * I.3.B - FISSURE_2 ET SON FRONT POUR DJ/DA SI (EGA GOBJ 'DJ/DA'); MESS ' LES TERMES CROISES DE LA MATRICE'; FINSI; FINSI; SINON; SI (EGA SUPTAB.'COUCHE' 0); MESS 'ERREUR : LE NOMBRE DE COUCHES DOIT ETRE SUPERIEUR A'; FINSI; FINSI; FINSI; * I.3.C - PRESSION OBLIGATOIRE SI CALCUL LINEAIRE ET MODELE DE PRESSION SI ((NEG GCHAR.'PRESSION' 'AUCUN') ET (EGA GSOLU 'LINEAIRE')); MESS 'ERREUR : IL MANQUE LA DONNEE DU CHAMP DE PRESSION'; FINSI; FINSI; * I.3.D - DEFINITION DE LA FISSURE NECESSAIRE FINSI; SINON; SI (EGA GT_OBJ 'DECOUPLAGE'); MESS 'ERREUR : L''OBJECTIF DECOUPLAGE NECESSITE LES DEUX'; MESS ' LEVRES DE LA FISSURE'; FINSI; SINON; MESS 'ERREUR : IL FAUT DONNER LA FISSURE'; FINSI; FINSI; FINSI; * I.3.E - ON VERIFIE QU'ON A OU BIEN LE NOMBRE DE COUCHES OU BIEN CHAMP_THETA MESS 'ERREUR : ON VEUT LE NOMBRE DE COUCHES D ELEMENTS'; MESS ' AUTOUR DE LA FISSURE QUI SE DEPLACE'; MESS ' POUR SIMULER LA PROPAGATION DE LA FISSURE'; FINSI; * I.3.F - ON NE CALCULE PAS CORRECTEMENT LE CAS THERMIQUE AVEC DES COQUES * DONC POUR L'INSTANT ON DEBRANCHE L'OPTION SI ((EGA GELTYP 'STD COQUE') ET (NEG GCHAR.'THERMIQUE' 'AUCUN')); MESS 'ERREUR : UNE CORRECTION EST NECESSAIRE POUR TRAITER UN CHARGEMENT'; MESS ' THERMIQUE AVEC LES ELEMENTS COQUE'; FINSI; * ============================================================================= * II - STOCKAGE DES INFORMATIONS POUR TRANSFERT A G_THETA * ------------------------------------------------------- * II.1 - OBJETS ET INFOS UTILES DANS OBJUTI * ***************************************** OBJUTI.'DIMENSION' = GDIME; OBJUTI.'MOD_TOT' = MOD_TOT; OBJUTI.'MOD_MEC' = MOD_MEC; OBJUTI.'MAT_MEC' = MAT_MEC; OBJUTI.'NMESS' = NMESS; OBJUTI.'MAILLAGE' = MAILLAGE; OBJUTI.'FRONT' = M_FRONT; SI (NEG GSOLU 'LINEAIRE'); OBJUTI.'WTAB' = WTAB; FINSI; * II.2 - BOOLEENS DANS BOOL * ************************* * OBJECTIF BOOL.'J' = EGA SUPTAB.'OBJECTIF' 'J'; BOOL.'C*' = EGA SUPTAB.'OBJECTIF' 'C*'; BOOL.'C*H' = EGA SUPTAB.'OBJECTIF' 'C*H'; BOOL.'DJ/DA' = EGA SUPTAB.'OBJECTIF' 'DJ/DA'; BOOL.'J_DYNA' = EGA SUPTAB.'OBJECTIF' 'J_DYNA'; * PASAPAS * GRANDS DEPLACEMENTS BOOL.'GRANDS_DEP' = EGA GHYPO 'GRANDS_DEPLACEMENTS'; * MODELE DE PRESSION BOOL.'MODE_PRES' = NEG GCHAR.'PRESSION' 'AUCUN'; * PRESSION SUR FISSURE BOOL.'PRES_FISS' = EGA GCHAR.'PRESSION' 'SUR LEVRES'; * CHARGEMENTS THERMIQUES BOOL.'THER' = NEG GCHAR.'THERMIQUE' 'AUCUN'; * DEFORMATIONS IMPOSEES BOOL.'DEF_IMP' = GCHAR.'DEFORMATIONS IMPOSEES'; * ORDRE DES ELEMENTS BOOL.'EL_LIN' = EGA GELDEG 1; BOOL.'EL_QUA' = EGA GELDEG 2; * ELEMENTS XFEM * ELEMENTS COQUE BOOL.'COQ' = EGA GELTYP 'STD COQUE'; * ROTATION DE CORPS RIGIDE * ELEMENTS COQUE * ELEMENTS COQUE BOOL.'COQ' = EGA GELTYP 'STD COQUE'; * ROTATION DE CORPS RIGIDE * PERSO1 BOOL.'PERSO1' = SUPTAB.'PERSO1'; SINON; BOOL.'PERSO1' = FAUX; FINSI; * FROTTEMENT ENTRE LEVRES DE FISSURE * SAUT DE LIGNE AVANT DE RETOURNER DANS G_THETA SAUT 'LIGNE'; FINP OBJUTI;
© Cast3M 2003 - Tous droits réservés.
Mentions légales