$$$$ VARI NOTICE SERRE 16/07/20 21:15:09 9017 DATE 16/07/20 Operateur VARI Voir aussi : -------------- Section : Mecanique Resolution Section : Multi-physique Multi-physique FRAN========================================================== -------------------- | 1ere possibilite | -------------------- Objet : _______ L'operateur VARI calcule un champ variable a partir d'un champ donne et d'une loi de variation donnee sous la forme d'une fonction. ANGL========================================================== ------------------- | 1st possibility | ------------------- Description : _____________ The VARI operator calculates a variable field from a given field and a given variation law in the form of a function. =========================================================== CHEL2 = VARI | MODL1 CHEL1 EVOL1 | (MOT1) ; | MODL1 CHPO1 EVOL1 | ou CHPO2 = VARI CHPO1 EVOL1 (MOT2) ; FRAN========================================================== Commentaire : _____________ MODL1 : Objet modele (type MMODEL) CHEL1 : Champ donne (type MCHAML) S'il a plusieurs composantes, on prend celle dont le nom est en abscisse de la loi de variation. CHPO1 : Champ donne (type CHPOINT) S'il a plusieurs composantes, on prend celle dont le nom est en abscisse de la loi de variation. EVOL1 : Objet definissant la loi de variation (type EVOLUTION) MOT1 : Objet de type MOT, sur 8 caracteres, servant a preciser le support du champ scalaire. Les noms possibles sont : 'NOEUD ' : Scalaire aux noeuds 'GRAVITE ' : Scalaire au centre de gravite 'RIGIDITE' : Scalaire aux points d'integration de la raideur 'MASSE ' : Scalaire aux points d'integration de la masse 'STRESSES' : Scalaire aux points de calcul des contrainte Le nom pris par defaut est 'RIGIDITE'. MOT2 : nom a attribuer a la composante du champ par point resultat. Par defaut, on prend le nom en ordonnee de la loi de variation. CHPO2 : champ par points (type CHPOINT) a une seule composante de meme nature que CHPO1. CHEL2 : objet resultat (type MCHAML, de sous-type SCALAIRE). ANGL========================================================== Contents : __________ MODL1 : model object (MMODEL type) CHEL1 : given field (MCHAML type) If there are several components, the one to be accepted is that with the name in the variation law abscissa. CHPO1 : given field (CHPOINT type) If there are several components, the one to be taken is that with the name in the variation law abscissa. EVOL1 : object defining the variation law (EVOLUTION type) MOT1 : MOT type object (8 letters) used to specify the scalar field support. The possible names are : 'NOEUD ' : scalar at the nodes 'GRAVITE ' : scalar at the centre of gravity 'RIGIDITE' : scalar at the stiffness integration points 'MASSE ' : scalar at the mass integration points 'STRESSES' : scalar at the stress calculation points The default name is 'RIGIDITE'. MOT2 : name to be allocated to the component of the generated field by point. By default, the name in the variation law ordinate is taken. CHPO2 : field by points (CHPOINT type) with a single component keeps the same nature than CHPO1 CHEL2 : generated object (MCHAML type, SCALAIRE subtype) FRAN========================================================== -------------------- | 2eme possibilite | -------------------- Objet : _______ La valeur de certaines composantes d'un champ/element (ex : les proprietes materielles) depend en un point d'un parametre (ex : la temperature). Les lois de variation de ces composantes en fonction de leur parametre respectif sont donnees par des objets de type EVOLUTION ou NUAGE (FLOTTANT - EVOLUTION ou FLOTTANT-FLOTTANT-EVOLUTION). (note : operateur MATE accepte les objets de ces types). Etant donne un champ/point ou un champ/element, l'operateur VARI determine la valeur des composantes du champ/element selon leurs lois de variation en chaque point. Remarque 1 : Le parametre sus-cite peut varier d'un point a l'autre du champ/element . Remarque 2 : Dans le cas d'un nuage sous la forme FLOTTANT-FLOTTANT-EVOLUTION, il est necessaire que le nuage soit defini sous la forme d'une grille (memes valeurs donnees au deuxieme FLOTTANT pour chaque valeur du premier FLOTTANT) Extension : evaluation externe de composantes --------- La valeur de certaines composantes d'un champ/element (ex : les proprietes materielles) depend en un point d'un ou de plusieurs parametres. Ces composantes sont decrites par des objets LISTMOTS donnant les listes de leurs parametres respectifs. (note : operateur MATE accepte les objets de type LISTMOTS) Les lois de variation de ces composantes en fonction de leurs parametres sont programmees par l'utilisateur dans le module externe COMPUT et ses dependances, qui ont ete compiles et lies au reste du code. Etant donne un champ/point ou un champ/element donnant les valeurs des parametres, l'operateur VARI appelle le module externe COMPUT pour evaluer les composantes en chaque noeud ou point d'integration du support demande. Remarque 1 : la description d'une composante par un objet LISTMOTS doit etre uniforme sur toutes les sous-zones du modele, car la fonction externe evaluant la composante est unique. Remarque 2 : le module externe COMPUT est appele pour TOUTES les composantes devant etre evaluees par des fonctions externes. La programmation de l'utilisateur doit faire la distinction des composantes par leur nom. Remarque 3 : avant l'evaluation de chaque composante, un premier appel au module externe COMPUT est effectue, afin de verifier la coherence entre la description de la composante et la programmation du module externe : meme nombre de parametres et memes noms de parametres. Apres cette verification, le module COMPUT est appele pour evaluer la composante en chaque point du support demande. Remarque 4 : mode operatoire 1 - Programmer le module externe COMPUT et ses dependances : - Reprendre le module exemple integre au code. Il faut conserver imperativement la premiere carte du module exemple pour assurer le succes de la compilation. - Respecter l'interface d'appel de la routine. - Prevoir une sequence de verification initiale dissociee des operations d'evaluation. 2 - Compiler le module externe et ses dependances, puis edition de liens avec le reste du code. 3 - Mise en oeuvre en langage Gibiane en respectant la syntaxe decrite ci-apres. Remarque 5 : interface du module externe COMPUT SUBROUTINE COMPUT(IVERI,NOMCMP,NOMPAR,VALPAR,NPARA,VALCMP,IERUT) IMPLICIT REAL*8(A-H,O-Z) INTEGER IVERI, NPARA, IERUT CHARACTER*4 NOMCMP, NOMPAR(NPARA) REAL*8 VALPAR(NPARA), VALCMP ENTREE : IVERI : INTEGER, indicateur de verification IVERI=1 : On fait les verifications puis retour a l'appelant sans faire de calcul IVERI=0 : On ne fait pas les verifications On calcule directement la composante demandee ENTREE : NOMCMP : CHARACTER*4, nom de la composante a evaluer ENTREE : NOMPAR : CHARACTER*4(NPARA), noms des parametres ENTREE : VALPAR : REAL*8(NPARA), valeurs des parametres ENTREE : NPARA : INTEGER, nombre de parametres SORTIE : VALCMP : REAL*8, valeur de la composante SORTIE : IERUT : INTEGER, code retour IERUT= 0 : OK IERUT<>0 : NOOK Les cas d'erreur pris en charge par la programmation de l'utilisateur doivent faire l'objet d'une affectation de IERUT differente de 0 ANGL========================================================== ------------------- | 2nd possibility | ------------------- Description : _____________ The value of certain components of a MCHAML type field (ex : material properties) depends in each point upon a parameter (ex : temperature). The variation laws of these components in function of their parameters are given by objects of EVOLUTION or NUAGE (FLOTTANT-EVOLUTION or FLOTTANT-FLOTTANT-EVOLUTION) type. (note : operator MATE accepte object of such types). With a given field of CHPOINT or MCHAML type, the VARI operator determines the value of the components following their variation laws at each point. the parameter can change upon the structure . The FLOTTANT-FLOTTANT-EVOLUTION NUAGE object must be defined as a "Grid" (same values given for the second FLOTTANT value for each first FLOTTANT value). Extension : external evaluation of components --------- The value of certain components of a MCHAML type field (ex : material properties) depends in each point upon one or many parameters. These components are described by objects of type LISTMOTS, which give the names of their parameters. (note : operator MATE accepts objects of type LISTMOTS) The variation laws of these components in function of their parameters are coded by the user in the external subroutine COMPUT and its dependancies, which have been compiled and linked to the rest of the code. With a given field of CHPOINT or MCHAML type giving the values of the parameters, the VARI operator calls the external subroutine COMPUT in order to evaluate the components at each node or integration point of the requested support. Note 1 : the description of a component by a LISTMOTS object must be uniform all over the regions of the model, because the external function which evaluates the component is unique. Note 2 : the external subroutine COMPUT is called for ALL the components which have to be evaluated by external functions. The user's code must make the distinction between the components, with their name. Note 3 : before evaluating each component, a first call to the COMPUT subroutine is made, in order to check the coherency between the description of the component and the code : same number of parameters and same names of parameters. After checking, the COMPUT subroutine is called to evaluate the component at each point of the requested support. Note 4 : operating rules 1 - Code the COMPUT subroutine and its dependancies : - Take the example COMPUT subroutine integrated in CAST3M. It is necessary to keep the first card of the example subroutine, in order to compile successfully. - Keep the calling interface of the routine. - Separate an initial sequence of checking and the sequence of evaluation. 2 - Compile the external subroutine COMPUT and its dependancies, then edit links with the rest of the code. 3 - Use the VARI operator in Gibiane language, with respect to the syntax described below. Note 5 : interface of the external subroutine COMPUT SUBROUTINE COMPUT(IVERI,NOMCMP,NOMPAR,VALPAR,NPARA,VALCMP,IERUT) IMPLICIT REAL*8(A-H,O-Z) INTEGER IVERI, NPARA, IERUT CHARACTER*4 NOMCMP, NOMPAR(NPARA) REAL*8 VALPAR(NPARA), VALCMP IN : IVERI : INTEGER, checking flag IVERI=1 : check and go back to the calling subprogram, without computing the component IVERI=0 : No check Direct computing of the requested component IN : NOMCMP : CHARACTER*4, name of the component to evaluate IN : NOMPAR : CHARACTER*4(NPARA), names of the parameters IN : VALPAR : REAL*8(NPARA), values of the parameters IN : NPARA : INTEGER, number of parameters OUT : VALCMP : REAL*8, value of the component OUT : IERUT : INTEGER, error flag IERUT= 0 : OK IERUT<>0 : NOOK Error cases detected by the user's code have to be translated into a value of IERUT not equal to 0. =========================================================== CHEL2 = VARI 'NUAG' MODL1 CHEL1 CHEP1 (MOT1) (MOT2); FRAN========================================================== Commentaire : _____________ NUAG : Mot cle MODL1 : Objet modele (type MMODEL) CHEL1 : Champ donne (type MCHAML). Ses composantes peuvent etre des objets de type 1) FLOTTANT si la composante est constant sur toute la structure; 2) EVOLUTIO si la composante en ce point depend du parametre cite en haut; 3) NUAGE si la composante elle-meme est decrite par un objet de type EVOLUTIO qui est une fonction du parametre cite en haut. CHEP1 : Champ donne (type CHPOINT ou MCHAML) ayant les composantes necessaires au calcul MOT1 : Objet de type MOT, sur 8 caracteres, servant a preciser le support du champ scalaire. Les noms possibles sont : 'NOEUD ' : Scalaire aux noeuds 'GRAVITE ' : Scalaire au centre de gravite 'RIGIDITE' : Scalaire aux points d'integration de la raideur 'MASSE ' : Scalaire aux points d'integration de la masse 'STRESSES' : Scalaire aux points de calcul des contrainte Le nom pris par defaut est 'RIGIDITE'. MOT2 : Objet de type MOT servant a indiquer un sous-type pour le MCHAML resultat. Par defaut, il aura le meme sous-type que celui de MCHAML donne CHEL1. CHEL2 : objet resultat (type MCHAML, de meme sous-type que le champ CHEL1). REMARQUE : __________ Si CHEP1 est de type MCHAML, il convient de respecter l'ordre d'ecriture des arguments. ANGL========================================================== Contents : __________ NUAG : Key word MODL1 : model object (MMODEL type) CHEL1 : given field (MCHAML type). Ses components may be object of following type 1) FLOTTANT if the component is constant through whole structure; 2) EVOLUTIO if the component in this point depend on the parameter mentioned above; 3) NUAGE if the component is described by an object of EVOLUTIO type which is a function of the parameter mentioned above. CHEP1 : given field (CHPOINT oy MCHAML type) having the compulsery components. MOT1 : MOT type object (8 letters) used to specify the scalar field support. The possible names are : 'NOEUD ' : scalar at the nodes 'GRAVITE ' : scalar at the centre of gravity 'RIGIDITE' : scalar at the stiffness integration points 'MASSE ' : scalar at the mass integration points 'STRESSES' : scalar at the stress calculation points The default name is 'RIGIDITE'. MOT2 : object of MOT type used to indicate a sub-type for the resulting MCHAML. By defaut, it will have the same sub-type as that of input MCHAML CHEL1. CHEL2 : generated object (MCHAML type, with the same subtype as the CHEL1 field) FRAN========================================================== -------------------- | 3eme possibilite | -------------------- Objet : _______ L'operateur VARI permet d'evaluer les tables de l'eau. Les objets OBJi sont tous de meme type (FLOTTANT, CHPOINT ou LISTREEL). ANGL========================================================== ------------------- | 3nd possibility | ------------------- Description : _____________ The VARI operator enables to calculate the water-steam tables. The OBJi objects are of the same type: (FLOTTANT, CHPOINT, or LISTREEL). =========================================================== OBJ3 = 'VARI' MOT1 OBJ1 OBJ2 ; FRAN========================================================== Commentaire : _____________ 1) OBJ3 = 'VARI' 'CPLIQ' OBJ1 OBJ2 ; avec OBJ1 : Pression totale (en Pa) OBJ2 : Enthalpie liquide specifique (en J/kg) OBJ3 : Capacite calorifique de l'eau liquide (en J/kg/K) 2) OBJ3 = 'VARI' 'HLS' OBJ1 (OBJ2) ; avec OBJ1 : Pression totale (en Pa) OBJ2 : Temperature (en K) OBJ3 : Enthalpie liquide specifique (en J/kg) Note : En absence de temperature, evaluation a saturation. 3) OBJ3 = 'VARI' 'HVS' OBJ1 (OBJ2) ; avec OBJ1 : Pression partielle de vapeur (en Pa) OBJ2 : Temperature (en K) OBJ3 : Enthalpie vapeur specifique (en J/kg) Note : En absence de temperature, evaluation a saturation. 4) OBJ3 = 'VARI' 'LATENT' OBJ1 ; avec OBJ1 : Pression partielle de vapeur (en Pa) OBJ3 : Chaleur latente de vaporisation (en J/kg) 5) OBJ3 = 'VARI' 'PSATT' OBJ1 ; avec OBJ1 : Temperature (en K) OBJ3 : Pression partielle de vapeur a saturation (en Pa) 6) OBJ3 = 'VARI' 'TSATP' OBJ1 ; avec OBJ1 : Pression partielle de vapeur (en Pa) OBJ3 : Temperature a saturation (en K) 7) OBJ3 = 'VARI' 'PVAP' OBJ1 OBJ2 ; avec OBJ1 : Densite de vapeur (en kg/m3) OBJ2 : Temperature (en K) OBJ3 : Pression partielle de vapeur (en Pa) 8) OBJ3 = 'VARI' 'ROLIQ' OBJ1 OBJ2 ; avec OBJ1 : Pression de l'enceinte (en Pa) OBJ2 : Enthalpie liquide specifique (en J/kg) OBJ3 : Densite de l'eau liquide (en kg/m3) 9) OBJ3 = 'VARI' 'ROVAP' OBJ1 (OBJ2) ; avec OBJ1 : Pression partielle de vapeur (en Pa) OBJ2 : Temperature (en K) OBJ3 : Densite de la vapeur d'eau (en kg/m3) Note : En absence de temperature, evaluation a saturation. 10) OBJ3 = 'VARI' 'TLIQ' OBJ1 OBJ2 ; avec OBJ1 : Pression totale (en Pa) OBJ2 : Enthalpie liquide specifique (en J/kg) OBJ3 : Temperature de l'eau liquide (en K) 11) OBJ3 = 'VARI' 'ZVAP' OBJ1 OBJ2 ; avec OBJ1 : Densite de la vapeur d'eau (en kg/m3) OBJ2 : Temperature de la vapeur d'eau (en K) OBJ3 : Correction gaz reel de la vapeur (-) 12) OBJ3 = 'VARI' 'DHVDT' OBJ1 OBJ2 ; avec OBJ1 : Pression partielle de vapeur (en Pa) OBJ2 : Temperature de la vapeur d'eau (en K) OBJ3 : Derivee partielle de l'enthalpie vapeur par rapport a la temperature 13) OBJ3 = 'VARI' 'DHVDP' OBJ1 OBJ2 ; avec OBJ1 : Pression partielle de vapeur (en Pa) OBJ2 : Temperature de la vapeur d'eau (en K) OBJ3 : Derivee partielle de l'enthalpie vapeur par rapport a la pression partielle de vapeur 14) OBJ3 = 'VARI' 'DHVDT' OBJ1 OBJ2 ; avec OBJ1 : Pression totale (en Pa) OBJ2 : Temperature (en K) OBJ3 : Derivee partielle de l'enthalpie liquide par rapport a la temperature 15) OBJ3 = 'VARI' 'DHLDP' OBJ1 OBJ2 ; avec OBJ1 : Pression totale (en Pa) OBJ2 : Temperature (en K) OBJ3 : Derivee partielle de l'enthalpie liquide rapport a la pression totale 16) OBJ3 = 'VARI' 'DPSAT' OBJ1 ; avec OBJ1 : Temperature (en K) OBJ3 : Derivee partielle de la pression de saturation par rapport a la temperature 17) OBJ3 = 'VARI' 'DZVDP' OBJ1 OBJ2 ; avec OBJ1 : Pression partielle de vapeur (en Pa) OBJ2 : Temperature (en K) OBJ3 : Derivee partielle du facteur de compressibilite rapport a la pression partielle de vapeur 18) OBJ3 = 'VARI' 'DZVDT' OBJ1 OBJ2 ; avec OBJ1 : Pression partielle de vapeur (en Pa) OBJ2 : Temperature (en K) OBJ3 : Derivee partielle du facteur de compressibilite rapport a la temperature 19) OBJ3 = 'VARI' 'DRVDP' OBJ1 OBJ2 ; avec OBJ1 : Pression partielle de vapeur (en Pa) OBJ2 : Temperature (en K) OBJ3 : Derivee partielle de la densite de vapeur par rapport a la pression partielle de vapeur 20) OBJ3 = 'VARI' 'DRVDT' OBJ1 OBJ2 ; avec OBJ1 : Pression partielle de vapeur (en Pa) OBJ2 : Temperature (en K) OBJ3 : Derivee partielle de la densite de vapeur par rapport a la temperature 21) OBJ3 = 'VARI' 'MULIQ' OBJ1 ; avec OBJ1 : Temperature (en K) OBJ3 : Viscosité dynamique de l'eau (en kg/m/s) 22) OBJ3 = 'VARI' 'LBDALIQ' OBJ1 OBJ2 ; avec OBJ1 : Pression (en Pa) OBJ2 : Temperature (en K) OBJ3 : Conductivité thermique de l'eau (en W/m/K) ANGL========================================================== Comment : 1) OBJ3 = 'VARI' 'CPLIQ' OBJ1 OBJ2 ; with OBJ1 : Total pressure (en Pa) OBJ2 : Liquid water specific enthalpy (in J/kg) OBJ3 : Liquid water iosobaric heat capacity (in J/kg/K) 2) OBJ3 = 'VARI' 'HLS' OBJ1 (OBJ2) ; avec OBJ1 : Total pressure (in Pa) OBJ2 : Temperature (in K) OBJ3 : Liquid water specific enthalpy (in J/kg) 3) OBJ3 = 'VARI' 'HVS' OBJ1 (OBJ2) ; avec OBJ1 : Steam partial pressure (in Pa) OBJ2 : Temperature (en K) OBJ3 : Steam specific enthalpy (in J/kg) 4) OBJ3 = 'VARI' 'LATENT' OBJ1 ; avec OBJ1 : Steam partial pressure (in Pa) OBJ3 : Specific heat of evaporation (in J/kg) 5) OBJ3 = 'VARI' 'PSATT' OBJ1 ; avec OBJ1 : Temperature (in K) OBJ3 : Steam partial pressure in case of saturation (in Pa) 6) OBJ3 = 'VARI' 'TSATP' OBJ1 ; avec OBJ1 : Steam partial pressure (in Pa) OBJ3 : Saturation temperature (en K) 7) OBJ3 = 'VARI' 'PVAP' OBJ1 OBJ2 ; avec OBJ1 : Steam density (in kg/m3) OBJ2 : Temperature (in K) OBJ3 : Steam partial pressure (in Pa) 8) OBJ3 = 'VARI' 'ROLIQ' OBJ1 OBJ2 ; avec OBJ1 : Total pressure (en Pa) OBJ2 : Liquid specific enthalpy (in J/kg) OBJ3 : Liquid density (in kg/m3) 9) OBJ3 = 'VARI' 'ROVAP' OBJ1 (OBJ2) ; avec OBJ1 : Steam partial pressure (in Pa) OBJ2 : Temperature (in K) OBJ3 : Steam density (in kg/m3) 10) OBJ3 = 'VARI' 'TLIQ' OBJ1 OBJ2 ; avec OBJ1 : Total pressure (in Pa) OBJ2 : Liquid specific enthalpy (in J/kg) OBJ3 : Liquid water temperature (in K) 11) OBJ3 = 'VARI' 'ZVAP' OBJ1 OBJ2 ; avec OBJ1 : Steam density (en kg/m3) OBJ2 : Steam temperature (in K) OBJ3 : Steam compressibility factor (-) 12) OBJ3 = 'VARI' 'DHVDT' OBJ1 OBJ2 ; avec OBJ1 : Steam partial pressure (in Pa) OBJ2 : Temperature (en K) OBJ3 : Partial derivative of steam enthalpy with respect to temperature 13) OBJ3 = 'VARI' 'DHVDP' OBJ1 OBJ2 ; avec OBJ1 : Steam partial pressure (in Pa) OBJ2 : Temperature (en K) OBJ3 : Partial derivative of steam enthalpy with respect to steam partial pressure 14) OBJ3 = 'VARI' 'DHVDT' OBJ1 OBJ2 ; avec OBJ1 : Total pressure (in Pa) OBJ2 : Temperature (in K) OBJ3 : Partial derivative of liquid specific enthalpy with respect to temperature 15) OBJ3 = 'VARI' 'DHLDP' OBJ1 OBJ2 ; avec OBJ1 : Total pressure (in Pa) OBJ2 : Temperature (in K) OBJ3 : Partial derivative of liquid specific enthalpy with respect to pressure 16) OBJ3 = 'VARI' 'DPSAT' OBJ1 ; avec OBJ1 : Temperature (in K) OBJ3 : Derivative of steam saturation pressure with respect to temperature 17) OBJ3 = 'VARI' 'DZVDP' OBJ1 OBJ2 ; avec OBJ1 : Steam partial pressure (in Pa) OBJ2 : Temperature (in K) OBJ3 : Partial derivative of compressibility factor with respect to steam partial pressure 18) OBJ3 = 'VARI' 'DZVDT' OBJ1 OBJ2 ; avec OBJ1 : Steam partial pressure (in Pa) OBJ2 : Temperature (en K) OBJ3 : Partial derivative of compressibility factor with respect to temperature 19) OBJ3 = 'VARI' 'DRVDP' OBJ1 OBJ2 ; avec OBJ1 : Steam partial pressure (in Pa) OBJ2 : Temperature (en K) OBJ3 : Partial derivative of steam density with respect to steam partial pressure 20) OBJ3 = 'VARI' 'DRVDT' OBJ1 OBJ2 ; avec OBJ1 : Steam partial pressure (in Pa) OBJ2 : Temperature (en K) OBJ3 : Partial derivative of steam density with respect to temperature 21) OBJ3 = 'VARI' 'MULIQ' OBJ1 ; avec OBJ1 : Temperature (in K) OBJ3 : Dynamic viscosity of water (in kg/m/s) 22) OBJ3 = 'VARI' 'LBDALIQ' OBJ1 OBJ2 ; avec OBJ1 : Pressure (en Pa) OBJ2 : Temperature (en K) OBJ3 : Thermal conductivity of water (in W/m/K)