$$$$ VARI NOTICE CHAT 11/09/12 21:18:29 7124 DATE 11/09/12 Operateur VARI Voir aussi : -------------- ------------------- | 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) ; 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) ------------------- | 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); 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) ------------------- | 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 ; 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
© Cast3M 2003 - All rights reserved.
Disclaimer