* fichier : ktest-calp.dgibi ************************************************************************ ************************************************************************ *********************************************************** * * * ktest-calp.dgibi * * * * Test de fonctionnement de l'opérateur CALP sur un * * simple exemple de plaque carrée en flexion pure. * * Plusieurs types de coques sont testées en même temps. * * * * Auteur : Michel Bulik * * * * Date : Août 1995 * * * *********************************************************** *** Options ... *** Paramètres ... * longueur et largeur de la plaque L = 1. ; * nombre de divisions le long de ses côtés nbdiv = 10 ; * module de YOUNG valyoun = 2.e+11 ; * coeff. de Poisson nul pour qu'il n'y ait pas * de courbure anticlastique valnu = 0. ; * épaisseur de la plaque ep = 1.e-2 ; * calcul linéaire ou non calclin = vrai ; * affichage graphique ou non graph = faux ; * types d'éléments testés *** Points ... p1 = 0 0 0 ; p2 = L 0 0 ; vectz = 0 0 L ; vectxz = L 0 L ; *** Lignes ... li1 = p1 d nbdiv p2 ; *** Surface ... *** Début de la boucle sur les types d'éléments ... repeter surelem nbfois ; si(ega &surelem 2) ; finsi ; mess 'On analyse actuellement l élément ' elemact ; *** Modèle ... *** Matériau ... ma1 = ma1 et ca1 ; *** Rigidité + Blocages ... si(calclin) ; finsi ; *** Chargement ... * un champ de forces obtenus par l'intégration avec les * fonctions de forme - on va le modifier pour obtenir * le chargement réparti uniformément sur le bord supérieur * de la plaque * moment appliqué par unité de longueur momtot ; *** L'affichage éventuel du chargement ... vecchar = faux ; titr 'Chargement : forces nodales' ; vecchar = vrai ; finsi ; titr 'Chargement : couples nodaux' ; vecchar = vrai ; finsi ; si(graph et vecchar) ; trac vecfo1 su1 ; finsi ; *** Résolution ... si(calclin) ; sinon ; tabnl = table ; tabnl . MODELE = mo1 ; tabnl . CARACTERISTIQUES = ma1 ; tabnl . BLOCAGES_MECANIQUES = cl1 ; tabnl . TEMPS_SAUVES = lr1 ; tabnl . GRANDS_DEPLACEMENTS = vrai ; tabn1 . 'HYPOTHESE_DEFORMATIONS'='LINEAIRE' ; tabnl . MTOL = 1.e+30 ; pasapas tabnl ; de1 = tabnl . DEPLACEMENTS . 1 ; finsi ; *** Affichage éventuel de la déformée et des DDL ... titr 'La deformee' ; si(graph) ; * lescomp = extr (redu de1 su1) comp ; repe surcomp nbcomp ; titr 'Element' elemact ' : Degre de liberte' lacomp ; fin surcomp ; finsi ; *** Contraintes ... si(calclin) ; sinon ; finsi ; *** L'affichage éventuel des contraintes ... si(graph) ; repe surcom2 nbcomp ; titr 'Element' elemact ' : Contrainte generalisee' lacomp ; fin surcom2 ; finsi ; *** Vérif de la valeur de la contrainte ... si( (valmax - valmin) > 1.e-6 ) ; * valm22 = (valmin + valmax) / 2 ; sinon ; valm22 = valmax ; finsi ; ecartrel = 100 * ((valm22 - momtot) / momtot) ; si(ecartrel > 1.e-5) ; erreur 5 ; finsi ; *** Application de CALP ... valtheor = (6 * momtot) / (ep * ep) ; ecsup = 100 * ((valsup - valtheor) / valtheor) ; si(ecsup > 1.e-5) ; erreur 5 ; finsi ; ecinf = 100 * ((valinf + valtheor) / valtheor) ; si(ecinf > 1.e-5) ; erreur 5 ; finsi ; *** Résultats analytiques pour le déplacement *** et la rotation ... * inertie par unité de longueur ... I = (ep * ep * ep) / 12 ; depanal = (momtot * L * L) / (2 * valyoun * I) ; ecdep = 100 * ((depcal - depanal) / depanal) ; si(ecdep > 0.5) ; erreur 5 ; finsi ; rotanal = (momtot * L) / (valyoun * I) ; ecrot = 100 * ((rotcal - rotanal) / rotanal) ; si(ecrot > 2.0) ; erreur 5 ; finsi ; *** Déformations généralisées ... si (calclin) ; sinon ; finsi ; *** et sur les peaux ... *** Comparaison avec les valeurs analytiques ... * RTTT si( (valmax - valmin) > 1.e-6 ) ; sinon ; valrttt = valmax ; finsi ; valanal = momtot / (valyoun * I) ; ecartrel = 100 * ((valrttt - valanal) / valanal) ; si(ecartrel > 1.e-5) ; erreur 5 ; finsi ; * EPYY (peau supérieure) valanal = (ep * valrttt) / 2 ; si( (valmax - valmin) > 1.e-6 ) ; sinon ; valepyys = valmax ; finsi ; ecartyys = 100 * ((valepyys - valanal) / valanal) ; si(ecartyys > 1.e-5) ; erreur 5 ; finsi ; si( (valmax - valmin) > 1.e-6 ) ; sinon ; valepyyi = valmax ; finsi ; ecartyyi = 100 * ((valepyyi + valanal) / valanal) ; si(ecartyyi > 1.e-5) ; erreur 5 ; finsi ; *** Fin de la boucle sur les types d'éléments ... fin surelem ; *** Bye ... fin ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales