Download vari-youn-2-auto.dgibi

Back to the list

* fichier :  vari-youn-2-auto.dgibi
**************************************************************
*
*   C'est un k-test dont le but est de tester le fonctionnement
*   de PASAPAS avec la variation des données matérielles.
*
*   Il s'agit d'une barre en traction simple. Son module de Young
*   dépend linéairement du paramètre d'évolution (à la fin du
*   chargement on descend à 10% de la valeur initiale).
*
*   Pour la résolution, on utilise le mécanisme de traitement
*   des matériaux variables implanté dans PASAPAS. La variable
*   utilisée par cette mécanique porte le nom LDPL, ce chargement
*   n'est donc pas considéré comme un chargement thermique. Le
*   pilotage dans PASAPAS est automatique.
*
**************************************************************

*** Options ...

    opti dime 2 mode plan defo elem seg2 echo 1 ;
* ajout de option epsilon lineaire pour la precision des test!
OPTION epsilon lineaire;
    graph = faux ;

*** Paramètres ...

    L = 10. ;
    H =  1. ;
    S = H * 1. ;

    E_0 = 2.E+11 ;
*    E_1 = (2.0 * E_0) / (0.01 * L) ;
    E_1 = (-0.9 * E_0) / (1.0 * L) ;

*    F = 1.E+10 ;
    F = 9.9E+9 ;

    nbdiv = 1 ;

*** Points ...

    dens (L / nbdiv) ;

    p1 = 0 0 ;
    p2 = 0 H ;

*** Ligne ...

    li1 = p1 d 1 p2 ;

*** Surface ...

    opti elem qua4 ;

    vectx = L 0 ;
    su1 = li1 tran nbdiv vectx ;
    pu = su1 poin proc vectx ;

    titr 'Le maillage du modele' ;
    si(graph) ;
       trac su1 ;
    finsi ;

*** Modèle ...

    listdepl = prog (-0.9 * L) (0.9 * L) ;
    listyoun = prog ;
    lon = dime listdepl ;
    repeter surdpl lon ;
       valdep = extr listdepl &surdpl ;
       valyou = E_0 + (E_1 * valdep) ;
       listyoun = listyoun et (prog valyou) ;
    fin surdpl ;
    titr 'Module de Young (deplacement)' ;
    evyou = evol manu LDPL listdepl YOUN listyoun ;
    si(graph) ;
       dess evyou ;
    finsi ;

    mo1 = mode su1 mecanique elastique ;
    ma1 = mate mo1 NU 0.0 YOUN evyou ;

*** Préparation de la table pour PASAPAS ...

    tabnl = table ;
*    tabnl . GRANDS_DEPLACEMENTS = vrai ;
    tabnl . MODELE = mo1 ;
    tabnl . CARACTERISTIQUES = ma1 ;
    cl1 = (bloq ux li1) et (bloq uy  p1) ;
    tabnl . BLOCAGES_MECANIQUES = cl1 ;
    tabnl . AUTOMATIQUE = vrai ;

    ordmax = 8.0 ;
    ldpl0 = manu CHML mo1 LDPL 1.0 STRESSES ;
    evconst = evol manu 't'    (prog 0.    1.)
                        'f(t)' (prog 0.    ordmax) ;
    chavar0 = char LDPL ldpl0 evconst ;

    fobid = forc fx F (cote 3 su1) ;
    lr1 = prog 0. 1. ;
    lr2 = prog 0. 1. ;
    evbid = evol manu 't' lr1 'f(t)' lr2 ;
    chabid = char fobid evbid MECA ;
    tabnl . CHARGEMENT = chavar0 et chabid ;

    nb_dt = 5 ;
    dt = 1.0 / nb_dt ;
    tabnl . TEMPS_CALCULES = prog 0. PAS dt 1. ;

*** Le calcul ...

    pasapas tabnl ;

*** Petit post-traitement ...

    listt  = prog ;
    listux = prog ;
    listuxt = prog ;
    listfx = prog ;
    nbpas = dime (tabnl . TEMPS) ;
    repeter surpas nbpas ;
       lindice = &surpas - 1 ;
       listt = listt et (prog (tabnl . TEMPS . lindice)) ;
       laforc = F * (tabnl . TEMPS . lindice) ;
       listfx = listfx et (prog laforc) ;
       fauxdepl = ipol (tabnl . TEMPS . lindice) (extr evconst
                       ABSC) (extr evconst ORDO) ;
mess '-------------------------------------' ;
mess 'fauxdepl = ' fauxdepl ;
       E_act = E_0 + (E_1 * fauxdepl) ;
mess 'E_act = ' E_act ;
       uxbid = (laforc * L) / (E_act * S) ;
       listuxt = listuxt et (prog uxbid) ;
       depact = tabnl . DEPLACEMENTS . lindice ;
       ledepl = extr depact UX pu ;
       listux = listux et (prog ledepl) ;
    fin surpas ;

    titr 'La deformee' ;
    defo0 = defo su1 depact 0.0 ;
    defo1 = defo su1 depact ROUG ;
    si(graph) ;
       trac (defo0 et defo1) ;
    finsi ;

    titr 'Courbe de traction provenant de PASAPAS' ;
    courbetr = evol manu 'FX' listfx 'UX' listux ;
    si(graph) ;
       dess courbetr ;
    finsi ;

    titr 'Courbes de traction PASAPAS + théorique' ;
    courbteo = evol ROUG manu 'FX' listfx 'UX' listuxt ;
    si(graph) ;
       dess (courbetr et courbteo) ;
    finsi ;

*** Vérification de la précision du calcul ...

    chtit = chai 'Difference entre le depl. fourni par PASAPAS'
            ' et le depl. analytique' ;
    titr chtit ;
    ladiff = courbetr - courbteo ;
    ladiff = evol manu (extr ladiff ABSC) (abs (extr ladiff ORDO)) ;
    si(graph) ;
       dess ladiff ;
    finsi ;
    precis = maxi (extr ladiff ORDO) ;
    mess 'Écart maxi = ' precis ;

    si(precis > 1.e-14) ;
       erre 5 ;
    finsi ;

*** Bye ...

    fin ;

 

 

© Cast3M 2003 - All rights reserved.
Disclaimer