Download slotevol.dgibi

Back to the list

* fichier :  slotevol.dgibi
*  Jeu de données GIBIANE:
* Description :
* -------------
* Ce jeu de données permet la discrétisation éléments finis d'un
* écoulement dans une hypothèse de bas Mach. Il s'agit ici de comparer
* les résultats obtenus avec CASTEM et ceux issus de l'article
* Chenoweth et Paolucci (1986).
*
* Auteur : Franck PIGEONNEAU.
* --------
*
* Date : 22/06/99
* ------

*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><
*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><
*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><
*<><><><><><><><><><><>  DEBUT DU JEUX DE DONNEES  <><><><><><><><><><><
*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><
*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><
*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><

*=======================================================================
*                   DEFINITION DE L'ESPACE PHYSIQUE:
*=======================================================================

'OPTION' 'DIME' 2 'ELEM' 'QUA8';
'OPTION' ECHO 0;

COMPLET = FAUX;
'SI' (COMPLET);

*  Constantes du maillage :
*  ------------------------

   nx = 40;
   ny = 40;
   
*  Nombre d'itérations :

   nbit = 100;
   
*  Nombre d'itérations dans la boucle de température :

   itmax = 5;
'SINON';
*  Constantes du maillage :
*  ------------------------

   nx = 7;
   ny = 7;
   
*  Nombre d'itérations :

   nbit = 1;
   
*  Nombre d'itérations dans la boucle de température :

   itmax = 1;
'FINSI';

*=======================================================================
*               DEFINITION DE 'TYPE' DE DISCRETISATION :
*=======================================================================

DISVIT = 'QUAF';
DISPRE = 'CENTREP1';

*=======================================================================
*                   Définition des constantes du problème
*=======================================================================

* Eccart de température adimensionné :
eps   = 0.01;
* Precision spatiale pour les 'ELIMINER' :
epsi  = 1.D-7;
* Rapport d'aspect :
A     = 1.;
* Nombre de Prandtl :
pr    = 0.71;
* Nombre de Rayleigh :
ra    = 1.E+6;
* Inverse du nombre de Froude :
invfr = (ra*pr)/(2.*eps);
* Coefficients des lois de Sutherland pour la conductibilité thermique
* et la viscosité dynamique :
sk    = 0.648;
skp1  = 1.+sk;
smu   = 0.368;
smup1 = 1.+smu;
* Rapport des chaleurs spécifiques :
gamma = 1.4;
* Résilience du fluide :
reli  = (gamma-1.)/gamma;
* Pas de temps :
dt = 1.D-3;

* Valeur de la précision sur la pression et la température :
ecarpre = 1.D-4;
* Valeur de la précision sur la vitesse, la pression et la température :
ecarmax = 1.D-6;

*=======================================================================
*                                MAILLAGE
*=======================================================================


* Construction des points :
* -------------------------

p1 = 0. 0.;
p2 = 1. 0.;
p3 = 1. (0.5*A);
p4 = 1. A;
p5 = 0. A;
p6 = 0. (0.5*A);
p7 = (0.5*A) 0.;
p8 = (0.5*A) 1.;
p9 = (0.5*A) (0.5*A);

* Densités d'éléments :
* ---------------------

d1 = 0.8;
d2 = 0.83;

* Construction des lignes :
* -------------------------

p1p7 = p1 d (-1*nx) dini d1 dfin d2 p7;
p7p2 = p7 d (-1*nx) dini d2 dfin d1 p2;
p1p2 = p1p7 et p7p2;
p2p3 = p2 d (-1*ny) dini d1 dfin d2 p3;
p3p4 = p3 d (-1*ny) dini d2 dfin d1 p4;
p4p8 = p4 d (-1*nx) dini d1 dfin d2 p8;
p8p5 = p8 d (-1*nx) dini d2 dfin d1 p5;
p4p5 = p4p8 et p8p5;
p5p6 = p5 d (-1*ny) dini d1 dfin d2 p6;
p6p1 = p6 d (-1*ny) dini d2 dfin d1 p1;
p3p9 = p3 d (-1*nx) dini d1 dfin d2 p9;
p9p6 = p9 d (-1*nx) dini d2 dfin d1 p6;
p3p6 = p3p9 et p9p6;
p6p3 = 'INVERSE' p3p6;

* Construction des contours servant à l'établissement des conditions
* ------------------------------------------------------------------
* aux limites :
* -------------

lgau = 'INVERSE' (p5p6 et p6p1);
ldro = 'INVERSE' (p2p3 et p3p4);
lbas = p1p2;
lhau = p4p5;

* Construction des surfaces :
* ---------------------------

s1 = 'DALLER' p1p2 p2p3 p3p6 p6p1;
s2 = 'DALLER' p6p3 p3p4 p4p5 p5p6;
'ELIMINER' epsi s1 s2;
domtot = s1 et s2;

* Détermination de la surface extérieure :
* ----------------------------------------

surtot = 'CONTOUR' domtot;
surtot = 'ENVELOPPE' surtot;

*=======================================================================
*                          Création du modèle
*=======================================================================

* Transformations des éléments du maillage en QUAF :
* --------------------------------------------------

£domtot = 'CHANGER' domtot 'QUAF';
£gau    = 'CHANGER' lgau   'QUAF';
£dro    = 'CHANGER' ldro   'QUAF';
£bas    = 'CHANGER' lbas   'QUAF';
£hau    = 'CHANGER' lhau   'QUAF';
£surtot = 'CHANGER' surtot 'QUAF';

* Récupération du nombre de noeuds :
* ----------------------------------

ntot = 'NBNO' £domtot;

* Elimination des eventuels points en doubles :
* ---------------------------------------------

'ELIMINER' epsi (£domtot et £gau et £dro et £bas et £hau);

* Création des objets MMODEL :
* ----------------------------

* Modèles Navier Stokes :
* -----------------------

$domtot = 'MODELE' £domtot 'NAVIER_STOKES' DISVIT;
$hau    = 'MODELE' £hau    'NAVIER_STOKES' DISVIT;
$bas    = 'MODELE' £bas    'NAVIER_STOKES' DISVIT;
$gau    = 'MODELE' £gau    'NAVIER_STOKES' DISVIT;
$dro    = 'MODELE' £dro    'NAVIER_STOKES' DISVIT;
$surtot = 'MODELE' £surtot 'NAVIER_STOKES' DISVIT;

mdomtot = 'DOMA' £domtot;

* Modèles Thermique :
* ------------------

modelt  = 'MODELE' domtot 'THERMIQUE';

*                             ====================
*                             Calcul des volumes :
*                             ====================

vol  = 'DOMA' $domtot 'VOLUME';
volt = 'SOMT' vol;
vol  = 'KCHT' $domtot 'SCAL' 'CENTRE' vol;

*=======================================================================
*                 CREATION DE LA TABLE DE RESOLUTION
*
* A l'instant tn-1, on connait TNM1 (la température), PTNM1 (la pression
* thermodynamique), MUNM1 (la viscosité dynamique), KNM1 (la conductivité
* thermique), RHONM1 (la masse volumique). L'algorithme de résolution
* est le suivant:
*
* 1- Résolution de l'équation d'énergie permettant le calcul de TN;
* 2- Détermination de MUN et KN à partir des lois de Sutherland;
* 3- Résolution de l'équation portant sur PTN;
* 4- Détermination de RHON à l'aide de l'équation d'état;
* 5- Calcul de RHOM = 0.5(RHONM1+RHON) et de ZN = Ln(RHOM);
* 6- Résolution des équation de Navier-Stokes avec masse volumique
*    variable.
*
*=======================================================================

* Discrétisation des équations Navier-Stokes à masse volumique variable:
* ----------------------------------------------------------------------

* Discrétisation de la dérivée temporelle :

RVU = 'EQEX' 'NITER' 1 'OMEGA' 1.0  'ITMA' 1
      'OPTI' 'EF' 'CENTREE'
      'ZONE' $domtot
      'OPER' 'DFDT' 'RHOM' 'UN' 'DT'
      'INCO' 'UN';

* Discrétisation du terme de convection :

RVU = 'EQEX' RVU
      'OPTI' 'EF' 'CENTREE' 'IMPL'
      'ZONE' $domtot
      'OPER' 'KONV' 'RHOM' 'UN' 'MUN'
      'INCO' 'UN';

* Discrétisation du terme de diffusion visqueuse :

RVU = 'EQEX' RVU
      'OPTI' 'EF' 'CENTREE' 'IMPL'
      'ZONE' $domtot
      'OPER' 'LAPN' 'MUN'
      'INCO' 'UN';

* Discrétisation du terme source de l'équation de QDM :

RVU = 'EQEX' RVU
      'OPTI' 'EF' 'CENTREE'
      'ZONE' $domtot
      'OPER' 'TOIM' 'RHOG'
      'INCO' 'UN';
     
* Discrétisation de la pression :

RVU = 'EQEX' RVU
      'OPTI' 'EF' 'CENTREE' DISPRE
      'ZONE' $domtot
      'OPER' 'KBBT' (+1.)
      'INCO' 'UN' 'PN';

* Ajout du terme source dans l'équation de continuité :

RVU = 'EQEX' RVU
      'OPTI' 'EF' 'CENTREE' 'INCOD' DISPRE
      'ZONE' $domtot
      'OPER' 'FIMP' 'SN'
      'INCO' 'PN';

* Conditions aux limites :
* ------------------------

RVU = 'EQEX' RVU
      'CLIM' 'UN' 'UIMP' (£bas et £hau et £dro et £gau) 0.
             'UN' 'VIMP' (£bas et £hau et £dro et £gau) 0.
             ;
bcp='ELEM' ('DOMA' $domtot DISPRE)  POI1 (lect 1) ;
* Suppression des modes de pression constante
RVU = EQEX  RVU
   'CLIM'
          'PN' 'TIMP' bcp 0.D0  ;

* Etablissement de la table des inconues et conditions initiales:
* ---------------------------------------------------------------

RVU.INCO        = 'TABLE' INCO;

* Inconnues liées à la table RVU :

RVU.INCO.'UN'   = 'KCHT' $domtot 'VECT' 'SOMMET' (0. 0.);
RVU.INCO.'PN'   = 'KCHT' $domtot 'SCAL' DISPRE 0.;

* Variables associées à la discrétisation des équations de
* Navier-Stokes :

RVU.INCO.'RHON' = 'KCHT' $domtot 'SCAL' 'CENTRE'   1.;
RVU.INCO.'RHOM' = 'KCHT' $domtot 'SCAL' 'CENTRE'   1.;
RVU.INCO.'MUN'  = 'KCHT' $domtot 'SCAL' 'CENTRE'   pr;
RVU.INCO.'RHOG' = 'KCHT' $domtot 'VECT' 'CENTRE'  (0. 0.);

* Variables complémentaires :

RVU.INCO.'UNM1' = 'KCHT' $domtot 'VECT' 'SOMMET' (0. 0.);
RVU.INCO.'UNM'  = 'KCHT' $domtot 'VECT' 'SOMMET' (0. 0.);
RVU.INCO.'PTN'  = 1.;
RVU.INCO.'TN'   = 'KCHT' $domtot 'SCAL' 'SOMMET' 0.;
RVU.INCO.'KN'   = 'KCHT' $domtot 'SCAL' 'CENTRE' 1.;
RVU.INCO.'PRES' = 'PROG' 1.;
RVU.INCO.'TPS'  = 'PROG' 0.;
RVU.INCO.'STN'  = 0.;

* Paramètres de la méthode d'inversion :

RVU.'METHINV'.TYPINV = 1;
RVU.'METHINV'.NITMAX = 600;
RVU.'METHINV'.RESID  = 1.E-7;

* Pas de temps :
* --------------

RVU.INCO.'DT'= dt;

* Numero du pas de temps :

nupadt = 0;

*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><
*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><
*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><
*<><><><><><><><><><><><><  PROCEDURE BASMACH  <><><><><><><><><><><><><
*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><
*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><
*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><

'DEBPROC' BASMACH;
*   ====================================================================
*                       DEBUT DE LA PROCEDURE BASMACH
*   ====================================================================

'ARGUMENT' nbit*'ENTIER';

tps = 0.;

'REPETER' BCLTPS nbit;

    nupadt= nupadt + 1;
    mess 'Nombre de pas de temps' nupadt;

*   Initialisation des champs nécessaire à la résolution de l'équation
*   sur la température :

    PTNM1 = RVU.INCO.'PTN';
    PT    = PTNM1;
    TNM1  = RVU.INCO.'TN';
    TT    = TNM1;
    RHON  = RVU.INCO.'RHON';
    UM    = RVU.INCO.'UNM';
    KN    = RVU.INCO.'KN';
    STN   = RVU.INCO.'STN';
    
    'REPETER' BCLTEMP itmax;
*      =================================================================
*                       ETAPE 1 : DETERMINATION DE TN
*      =================================================================
       
       TN = CAL_TEMP TNM1 RHON UM KN STN;
       
*      Détermination de la convergence sur la température :
*      ----------------------------------------------------

       errt = 'KOPS' TN '-' TT;
       errt = errt*errt;
       errt = 'CHANGER' 'CHAM' errt modelt 'MASSE';
       errtl2 = 'INTG' modelt errt;
       errtl2 = errtl2**0.5;
       TT = TN;

*      =================================================================
*                      ETAPE 2 : DETERMINATION DE PTN
*      =================================================================

*      Détermination de l'inverse de la température :
*      ----------------------------------------------

       TNC = 'NOEL' $domtot TN;
       TNC = 'KOPS' TNC '+' 1.;
       invtn = 'KOPS' 1. '/' TNC;
       moyinvt = 'SOMT' (vol*invtn);
       moyinvt = moyinvt/volt;
       PTN = 1./moyinvt;

*      Détermination de la convergence sur la pression :
*      -------------------------------------------------

       errpre = 'ABS' (PTN-PT);
       PT = PTN;
       
*      ==============================================================
*                         ETAPE 3 : CALCUL DE KN
*      ==============================================================

*       KN  = 'KOPS' ('KOPS' skp1 '*' ('KOPS' TNC '**' 1.5)) '/' ('KOPS'
*              TNC '+' sk);
*       KN  = 'KCHT' $domtot 'SCAL' 'CENTRE' KN;
       KN  = 'KCHT' $domtot 'SCAL' 'CENTRE' 1.;

*      ==============================================================
*                  ETAPE 4 : DETERMINATIONS DE dpdt ET STN
*      ==============================================================
 
*      Calcul de dpdt :
*      ----------------

*      Calcul du débit volumique :
*      ---------------------------

       usurf = 'REDU' UM £surtot;
       phi = 'DBIT' usurf $surtot;
       phi = phi/volt;
       
*      Calcul du flux de chaleur :
*      ---------------------------

       TM1 = 'NOMC' 'T' TN;
       gradt = 'GRAD' modelt TM1;
    
*      NOTA BENE : Attention ici, gradt est un champ par élément.
*      Transformation du champ par élément en champ point :

       gradt = 'CHANGER' 'CHPO' modelt gradt;
    
*      Multiplication par KN :
*      -----------------------

*      Extraction des composantes :

       gradtx = 'EXCO' 'T,X' gradt 'GX' 'NATURE' 'DISCRET';
       gradty = 'EXCO' 'T,Y' gradt 'GY' 'NATURE' 'DISCRET';
       gradtx = 'KCHT' $domtot 'SCAL' 'SOMMET' 'COMP' 'GX' gradtx;
       gradty = 'KCHT' $domtot 'SCAL' 'SOMMET' 'COMP' 'GY' gradty;
    
*      Multiplication de chaque composante par KN :
*      --------------------------------------------

       KN1 = 'ELNO' $domtot KN;
       KN1 = 'KCHT' $domtot 'SCAL' 'SOMMET' KN1;
       kngratx = 'KOPS' KN1 '*' gradtx;
       kngraty = 'KOPS' KN1 '*' gradty;
       kngratx = 'NOMC' 'GX' kngratx 'NATURE' 'DISCRET';
       kngraty = 'NOMC' 'GY' kngraty 'NATURE' 'DISCRET';
       kngratx = 'KCHT' $domtot 'SCAL' 'SOMMET' 'COMP' 'GX' kngratx;
       kngraty = 'KCHT' $domtot 'SCAL' 'SOMMET' 'COMP' 'GY' kngraty;
    
*      Calcul de la div(KN GRAD T) :
*      -----------------------------

*      1. Composante suivant x :
*      -------------------------

       UX = 'NOMC' 'T' kngratx 'NATURE' 'DISCRET';
       gradUX = 'GRAD' modelt UX;

*      Extraction de la composante suivant x du gradient :
       UX,X = 'EXCO' 'T,X' gradUX 'div';
    
*      2. Composante suivant y :
*      -------------------------

       UY = 'NOMC' 'T' kngraty 'NATURE' 'DISCRET';
       gradUY = 'GRAD' modelt UY;

*      Extraction de la composante suivant y du gradient :
       UY,Y = 'EXCO' 'T,Y' gradUY 'div';

*      3. Détermination de la divergence par sommation :
*      -------------------------------------------------

       div = UX,X+UY,Y;

*      Calcul de dpdt/gamma par intégration de div :
*      ---------------------------------------------

       dpdtgm1 = 'INTG' modelt div;
       dpdtgm1 = dpdtgm1/volt;
       dpdt = (dpdtgm1*gamma) + ((gamma*PTN)*phi);

*      Détermination du terme source de l'équation de la chaleur :
*      -----------------------------------------------------------

       STN = (reli*dpdt);

*      ==============================================================
*                    ETAPE 5 : DETERMINATION DE RHON
*      ==============================================================
          
       RHON = 'KOPS' PTN '/' TNC;
       RHON = 'KCHT' $domtot 'SCAL' 'CENTRE' RHON;

*      Test de la convegence dans la boucle de température :

       erregl = 'PROG' errtl2 errpre;
       errmax = 'MAXIMUM' erregl;
       mess 'L erreur est de ' errmax;
       'SI' (errmax < ecarpre);
         'QUITTER' BCLTEMP;
       'FINSI';
   'FIN' BCLTEMP;
   
*   Détermination de la convergence sur la température :
*   ----------------------------------------------------

    errt   = 'KOPS' TN '-' TNM1;
    errt   = errt*errt;
    errt   = 'CHANGER' 'CHAM' errt modelt 'MASSE';
    errtl2 = 'INTG' modelt errt;
    errtl2 = errtl2**0.5;
    
*   Détermination de la convergence sur la pression :
*   -------------------------------------------------

    errpre = 'ABS' (PTN-PTNM1);
    
*   Sauvegarde pour l'itération temporelle suivante :

    RVU.INCO.'TN' = TN;
    RVU.INCO.'KN' = KN;
    RVU.INCO.'PTN'  = PTN;
    RVU.INCO.'STN'  = STN;
    mess 'La pression est égale à ' PTN;
    PRES = 'PROG' PTN;
    RVU.INCO.'PRES'= RVU.INCO.'PRES' et PRES;
    
*   ====================================================================
*                  ETAPE 6 : DETERMINATIONS DE RHOM et RHOG
*   ====================================================================

    RHONM1 = RVU.INCO.'RHON';
    RVU.INCO.'RHON' = RHON;
    
*   Calcul de la masse volumique moyenne entre les instants tn et tn-1 :

    RHOM  = 0.5*(RHON+RHONM1);
    RVU.INCO.'RHOM' = 'KCHT' $domtot 'SCAL' 'CENTRE' RHOM;
    
*   Détermination du terme source de l'équation de QDM :

    rhog = 'KOPS' invfr '*' ('KOPS' RHOM '-' 1.);
    rgy  = 'NOMC' 'GY' rhog 'NATURE' 'DISCRET';
    RHGX = 'KCHT' $domtot 'SCAL' 'CENTRE' 'COMP' 'GX' 0.;
    RHGY = 'KCHT' $domtot 'SCAL' 'CENTRE' 'COMP' 'GY' rgy;
    RVU.INCO.'RHOG' = 'KCHT' $domtot 'VECT' 'CENTRE' 'COMP' 'GX' 'GY' 
                      (RHGX ET RHGY);

*   ====================================================================
*            ETAPE 7 : DETERMINATION DU TERME SOURCE SN DE
*                           L'EQUATION DE CONTINUITE
*   ====================================================================
    
*   Calcul de la dérivée logarithmique de PTN divivée par gamma :
*   -------------------------------------------------------------

    dlnpdt = dpdtgm1/PTN;
    
*   Calcul de la -div(KN GRAD T)/PTN :
*   ----------------------------------

    div = div/(-1.*PTN);
    
*   Création du CHAML dlnpdt :

    dlnpdt = 'KCHT' $domtot 'SCAL' 'SOMMET' 'COMP' 'div' dlnpdt;
    dlnpdt = 'CHANGER' 'CHAM' dlnpdt modelt 'MASSE';

*   Calcul de la dlnpdt - div(KN GRAD T)/PTN :
*   ------------------------------------------

    div = div + dlnpdt;

*   Changement de div de CHAML en 'CHPO' :

    div = 'CHANGER' 'CHPO' modelt div;
        
*   Application de div sur le support du modèle Navier Stokes :
    
    RVU.INCO.'SN' = 'KCHT' $domtot 'SCAL' 'SOMMET' 'COMP' 'div' div;
    
*   ====================================================================
*                      ETAPE 8 : CALCUL DE MUN
*   ====================================================================

*    MUN = 'KOPS' ('KOPS' (pr*smup1) '*' ('KOPS' TNC '**' 1.5)) '/'
*          ('KOPS' TNC '+' smu);
*    RVU.INCO.'MUN' = 'KCHT' $domtot 'SCAL' 'CENTRE' MUN;
    RVU.INCO.'MUN' = 'KCHT' $domtot 'SCAL' 'CENTRE' pr;

*   ====================================================================
*              ETAPE 9 : RESOLUTION DES EQUATIONS DE NAVIER-STOKES
*   ====================================================================

    EXEC RVU;
    
*   ====================================================================
*                ETAPE 10 : CALCUL DE UNM ET SAUVEGARDE DE UNM1
*   ====================================================================

    UN   = RVU.INCO.'UN';
    UNM1 = RVU.INCO.'UNM1';
    UNM  = 0.5*((3.*UN)-UNM1);

*   Calcul de la convergence sur la vitesse :

    DUN    = 'KOPS' UN '-' UNM1;
    DUNS   = 'KOPS' DUN 'PSCA' DUN;
    DUNS   = 'CHANGER' 'CHAM' DUNS modelt 'MASSE';
    errvl2 = 'INTG' modelt DUNS;
    errvl2 = errvl2**0.5;

*   Sauvegarde des champs par points dans le liste d'inconnues de RVU :

    RVU.INCO.'UNM'  = 'KCHT' $domtot 'VECT' 'SOMMET' UNM;
    RVU.INCO.'UNM1' = 'KCHT' $domtot 'VECT' 'SOMMET' UN;
    
*   Incrémentation du pas de temps :

    tps = tps + RVU.INCO.'DT' ;
    tt  = 'PROG' tps;
    RVU.INCO.'TPS' = RVU.INCO.'TPS' et tt;
    
*   Création de la liste de réels regroupant l'ensemble des erreurs
*   ---------------------------------------------------------------
*   sur la température et sur la pression :
*   ---------------------------------------

    erregl = 'PROG' errtl2 errpre errvl2;
    errmax = 'MAXIMUM' erregl;
    
    'SI' (errmax < ecarmax);
       mess 'L état stationnaire est atteint.';
       'QUITTER' BCLTPS;
    'FINSI';
    
'FIN' BCLTPS;

*   ====================================================================
*                          FIN DE LA PROCEDURE BASMACH
*   ====================================================================
'FINPROC';

'DEBPROC' CAL_TEMP;
*   ====================================================================
*                       DEBUT DE LA PROCEDURE TEMPERATURE
*   ====================================================================

'ARGUMENT' TNM1*'CHPOINT' RHON*'CHPOINT' UM*'CHPOINT' KN*'CHPOINT'
           STN*'FLOTTANT';

*                =============================================
*                Discrétisation de l'équation sur la chaleur :
*                =============================================

* Discrétisation de la dérivée temporelle :
* -----------------------------------------

RVT = 'EQEX' 'NITER' 1 'OMEGA' 1.0  'ITMA' 1
      'OPTI' 'EF' 'CENTREE'
      'ZONE' $domtot
      'OPER' 'DFDT' 'RHON' 'TNM1' 'DT'
      'INCO' 'TN';

* Discrétisation du terme de convection :
* ---------------------------------------

RVT = 'EQEX' RVT
      'OPTI' 'EF' 'CENTREE' 'IMPL'
      'ZONE' $domtot
      'OPER' 'KONV' 'RHON' 'UM' 'KN'
      'INCO' 'TN';

* Discrétisation du terme de diffusion :
* --------------------------------------

RVT = 'EQEX' RVT
      'OPTI' 'EF' 'CENTREE' 'IMPL'
      'ZONE' $domtot
      'OPER' 'LAPN' 'KN'
      'INCO' 'TN';

* Discrétisation du terme source :
* --------------------------------

RVT = 'EQEX' RVT
      'OPTI' 'EF'
      'ZONE' $domtot
      'OPER' 'FIMP' 'STN'
      'INCO' 'TN';

* Discrétisation de la condition au limite de type Neumann sur les
* ----------------------------------------------------------------
* parois supérieure et inférieure :
* ---------------------------------

RVT = 'EQEX' RVT
      'OPTI' 'EF'
      'ZONE' ($bas et $hau)
      'OPER' 'FIMP' 0.
      'INCO' 'TN';

* Conditions aux limites sur l'équation de la chaleur :
* -----------------------------------------------------

RVT = 'EQEX' RVT
      'CLIM' 'TN' 'TIMP' £gau eps
             'TN' 'TIMP' £dro (-1.*eps);

* Etablissement de la table inco relative à RVT :
* -----------------------------------------------

RVT.INCO        = 'TABLE' INCO;
RVT.INCO.'TN'   = 'KCHT' $domtot 'SCAL' 'SOMMET' 0.;
RVT.INCO.'TNM1' = TNM1;
RVT.INCO.'KN'   = KN;
RVT.INCO.'STN'  = STN;
RVT.INCO.'RHON' = RHON;
RVT.INCO.'UM'   = UM;
RVT.INCO.'DT'   = dt;

*=======================================================================
*                    RESOLUTION DE L'EQUATION SUR LA TEMPERATURE
*=======================================================================

EXEC RVT;

TN = RVT.INCO.'TN';

*=======================================================================
*                       FIN DE LA PROCEDURE TEMPERATURE
*=======================================================================
'FINPROC' TN;

*=======================================================================
*                      EXECUTION DE LA RESOLUTION
*=======================================================================

BASMACH nbit;

* 'FIN' de jeux de données:
fin;
 

 

© Cast3M 2003 - All rights reserved.
Disclaimer