* fichier : nlin-mchaml.dgibi ************************************************************************ ************************************************************************ 'OPTION' 'ECHO' 0 ; ************************************************************************ * NOM : NLIN-MCHAML * DESCRIPTION : Un cas-test où on donne et on reçoit des MCHAMLs * avec NLIN * * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stephane GOUNAND (CEA/DES/ISAS/DM2S/SEMT/LTA) * mel : stephane.gounand@cea.fr ********************************************************************** * VERSION : v1, 18/05/2021, version initiale * HISTORIQUE : v1, 18/05/2021, création * HISTORIQUE : * HISTORIQUE : ************************************************************************ * * interact= faux ; graph = faux ; * ************************************************************************ * NOM : EGARIG * DESCRIPTION : Regarde si deux matrices sont égales a une tolerance * tol près. * * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stephane GOUNAND (CEA/DES/ISAS/DM2S/SEMT/LTA) * mail : stephane.gounand@cea.fr ********************************************************************** * VERSION : v1, 19/05/2021, version initiale * HISTORIQUE : v1, 19/05/2021, creation * HISTORIQUE : * HISTORIQUE : ************************************************************************ * 'DEBPROC' EGARIG ; 'ARGUMENT' rig1*'RIGIDITE' ; 'ARGUMENT' rig2*'RIGIDITE' ; 'FINS' ; * lok = vrai ; *'MESS' 'dcmm, tol=' dcmm tol ; tst = ('<' dcmm tol) ; lok = lok 'ET' tst ; 'REPE' icomp ncomps ; * 'MESS' 'Composante i=' &icomp ' ' com ; 'REPE' inode nnodes ; * 'MESS' ' noeu i=' &inode ' ' ('NOEU' nod) ; lig1 = '*' rig1 ch1 ; lig2 = '*' rig2 ch1 ; * 'MESS' ' dlig, tol=' dlig tol ; tst = ('<' dlig tol) ; lok = lok 'ET' tst ; 'FIN' inode ; 'FIN' icomp ; * 'RESPRO' lok ; * * End of procedure file EGARIG * 'FINPROC' ; * * ************************************************************************ * NOM : MASSS * DESCRIPTION : Matrice de masse scalaire avec NLIN * * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stephane GOUNAND (CEA/DES/ISAS/DM2S/SEMT/LTA) * mail : stephane.gounand@cea.fr ********************************************************************** * VERSION : v1, 06/11/2024, version initiale * HISTORIQUE : v1, 06/11/2024, creation * HISTORIQUE : * HISTORIQUE : ************************************************************************ * 'DEBP' MASSS ; * Lecture mots cles valeur 'REPE' bcle ; 'QUIT' bcle ; 'SINO' ; 'ARGU' vcle ; tcle . mocle = vcle ; 'SINO' ; 'FINS' ; 'FINS' ; 'FIN' bcle ; * numop = 1 ; numvar = 1 ; numdat = 0 ; numcof = 0 ; * A . 'VAR' . 1 . 'NOMDDL' = 'SCAL' ; A . 'VAR' . 1 . 'DISC' = tcle . 'NPRI' ; A . 'VAR' . 1 . 'VALEUR' = tcle . 'VPRI' ; 'FINS' ; A . 1 . 1 . 0 = 0 ; * 'SI' lcof ; numdat = 1 ; numcof = 1 ; 'FINS' ; B . 'VAR' . 1 . 'NOMDDL' = 'SCAL' ; B . 'VAR' . 1 . 'DISC' = tcle . 'NDUA' ; B . 'VAR' . 1 . 'VALEUR' = tcle . 'VDUA' ; 'FINS' ; 'SI' lcof ; B . 'DAT' . 1 . 'NOMDDL' = 'SCAL' ; B . 'DAT' . 1 . 'DISC' = tcle . 'NCOF' ; B . 'DAT' . 1 . 'VALEUR' = tcle . 'VCOF' ; B . 'COF' . 1 . 'COMPOR' = 'IDEN' ; B . 'COF' . 1 . 'LDAT' = 1 ; icof = 1 ; 'SINO' ; icof = 0 ; 'FINS' ; B . 1 . 1 . 0 = icof ; * 'SI' lcham ; vcham = tcle . 'MCHA' ; 'SI' vcham ; mocham = 'CHAM' ; 'FINS' ; 'FINS' ; 'RESP' mat ; 'FINP' ; ************************************************************************ * * Début de jeu de données * ************************************************************************ 'SI' ('NON' interact) ; 'OPTION' 'TRAC' 'PSC' ; 'SINON' ; 'OPTION' 'TRAC' 'X' ; 'FINSI' ; * 'REPE' iidim 3 ; idim = &iidim ; 'SI' ('EGA' idim 1) ; 'FINS' ; 'SI' ('EGA' idim 2) ; 'FINS' ; 'SI' ('EGA' idim 3) ; 'FINS' ; 'SI' ('EGA' vdim 1) ; nx = 3 ; _mt = 'CHANGER' mt 'QUAF' ; 'FINS' ; 'SI' ('EGA' vdim 2) ; p1 = 0. 0. ; p2 =1. 0. ; mt = 'ET' mt11 mt12 ; _mt = 'CHANGER' mt 'QUAF' ; 'FINS' ; * * Plus tard, quand les QUAF 3Ds marcheront mieux, il faudra faire un * maillage avec plusieurs types d'éléments. * 'SI' ('EGA' vdim 3) ; p1 = 0. 0. 0. ; p2 =1. 0. 0. ; mts = 'ET' mt11 mt12 ; * p3 = 0. 1. 0. ; p4 =0. 0. 1. ; * mt = 'VOLU' ('MANU' 'TRI3' p1 p2 p3) 1 'TRAN' p4 ; _mt = 'CHANGER' mt 'QUAF' ; ; 'FINS' ; * 'SI' graph ; 'TRACER' mt 'NOEUD' 'TITRE' ('CHAINE' 'Maillage') ; 'FINSI' ; * * * Des tests * lok = vrai ; discg = 'LINE' ; * * Test 0 matrices avec tout en LINE * *'LIST' ccof ; mmassa = MASSS mtl discg 'NPRI' 'LINE' 'NDUA' 'LINE' 'NCOF' 'LINE' 'VCOF' ccofl ; mmassb = MASSS _mt discg 'NPRI' 'LINE' 'NDUA' 'LINE' 'NCOF' 'LINE' 'VCOF' xcoo ; tst = egarig mmassa mmassb ; lok = lok 'ET' tst ; * * Test 0 bis matrices avec tout en QUAI * *'LIST' ccof ; mmassc = MASSS mtq discg 'NPRI' 'QUAI' 'NDUA' 'QUAI' 'NCOF' 'QUAI' 'VCOF' ccofq ; mmassd = MASSS _mt discg 'NPRI' 'QUAI' 'NDUA' 'QUAI' 'NCOF' 'QUAI' 'VCOF' xcoo ; tst = egarig mmassc mmassd ; lok = lok 'ET' tst ; * * Test 0 ter matrices un petit mix * mmasse = MASSS mtq discg 'NPRI' 'QUAI' 'NDUA' 'QUAI' 'NCOF' 'LINE' 'VCOF' ccofl ; mmassf = MASSS _mt discg 'NPRI' 'QUAI' 'NDUA' 'QUAI' 'NCOF' 'LINE' 'VCOF' xcoo ; tst = egarig mmasse mmassf ; lok = lok 'ET' tst ; * * Test 1 matrices avec un coefficient QUAF * *ccof = 'MANU' 'CHML' _mt 'SCAL' 1.D0 ; *'LIST' ccof ; mmass1 = MASSS _mt discg 'NPRI' 'QUAF' 'NDUA' 'QUAF' 'NCOF' 'QUAF' 'VCOF' ccof ; mmass2 = MASSS _mt discg 'NPRI' 'QUAF' 'NDUA' 'QUAF' 'NCOF' 'QUAF' 'VCOF' xcoo ; tst = egarig mmass1 mmass2 ; lok = lok 'ET' tst ; * * Test 1bis matrices avec un coefficient QUAD (QUAI en terminologie NLIN) * *'LIST' ccof ; mmass1b = MASSS _mt discg 'NPRI' 'QUAF' 'NDUA' 'QUAF' 'NCOF' 'QUAI' 'VCOF' ccofb ; mmass2b = MASSS _mt discg 'NPRI' 'QUAF' 'NDUA' 'QUAF' 'NCOF' 'QUAI' 'VCOF' xcoob ; tst = egarig mmass1b mmass2b ; lok = lok 'ET' tst ; * * Test 1ter matrices avec un coefficient LINE * *'LIST' ccof ; mmass1c = MASSS _mt discg 'NPRI' 'QUAF' 'NDUA' 'QUAF' 'NCOF' 'LINE' 'VCOF' ccofc ; mmass2c = MASSS _mt discg 'NPRI' 'QUAF' 'NDUA' 'QUAF' 'NCOF' 'LINE' 'VCOF' xcooc ; tst = egarig mmass1c mmass2c ; lok = lok 'ET' tst ; * * Test 2 matrices avec un coefficient QUAF qui a ete moyenne avec chan * gravite (constant par maille) * *'LIST' ccof2 ; mmass3 = MASSS _mt discg 'NPRI' 'QUAF' 'NDUA' 'QUAF' 'NCOF' 'QUAF' 'VCOF' ccof2 ; mmass4 = MASSS _mt discg 'NPRI' 'QUAF' 'NDUA' 'QUAF' 'NCOF' 'QUAF' 'VCOF' ccof3 ; tst = egarig mmass3 mmass4 ; lok = lok 'ET' tst ; * * Test 2b matrices avec un coefficient QUAI qui a ete moyenne avec chan * gravite (constant par maille) * ccof2 = ccofqg ; *'LIST' ccof2 ; mmass3 = MASSS mtq discg 'NPRI' 'QUAI' 'NDUA' 'QUAI' 'NCOF' 'QUAI' 'VCOF' ccof2 ; mmass4 = MASSS _mt discg 'NPRI' 'QUAI' 'NDUA' 'QUAI' 'NCOF' 'QUAI' 'VCOF' ccof3 ; tst = egarig mmass3 mmass4 ; lok = lok 'ET' tst ; * * Test 2c matrices avec un coefficient LINE qui a ete moyenne avec chan * gravite (constant par maille) * ccof2 = ccoflg ; *'LIST' ccof2 ; mmass3 = MASSS mtq discg 'NPRI' 'LINE' 'NDUA' 'LINE' 'NCOF' 'LINE' 'VCOF' ccof2 ; mmass3b = MASSS mtl discg 'NPRI' 'LINE' 'NDUA' 'LINE' 'NCOF' 'LINE' 'VCOF' ccof2 ; mmass4 = MASSS _mt discg 'NPRI' 'LINE' 'NDUA' 'LINE' 'NCOF' 'LINE' 'VCOF' ccof3 ; tst = egarig mmass3 mmass4 ; lok = lok 'ET' tst ; tst = egarig mmass3b mmass4 ; lok = lok 'ET' tst ; * * Test 3 matrices avec un coefficient uniforme sur le maillage * mmass5 = MASSS _mt discg 'NPRI' 'QUAF' 'NDUA' 'QUAF' 'NCOF' 'QUAF' 'VCOF' ccof ; mmass6 = MASSS _mt discg 'NPRI' 'QUAF' 'NDUA' 'QUAF' 'NCOF' 'QUAF' 'VCOF' PI ; tst = egarig mmass5 mmass6 ; lok = lok 'ET' tst ; * * Test 4, 5, 6 matrice avec la donnée de la primale et sortie CHAMELEM * * cmass1 = MASSS _mt discg 'NPRI' 'QUAF' 'VPRI' 1. 'NDUA' 'QUAF' 'MCHA' vrai ; cmass1b = MASSS _mt discg 'NPRI' 'QUAF' 'VPRI' 1. 'NDUA' 'QUAF' 'MCHA' faux ; tst = 'EGA' mas1 mas vprec ; lok = lok 'ET' tst ; tst = 'EGA' dcm1 0. vprec ; lok = lok 'ET' tst ; * cmass2 = MASSS _mt discg 'NPRI' 'QUAF' 'NDUA' 'QUAF' 'VDUA' 1.D0 'MCHA' vrai ; cmass2b = MASSS _mt discg 'NPRI' 'QUAF' 'NDUA' 'QUAF' 'VDUA' 1.D0 'MCHA' faux ; tst = 'EGA' mas2 mas vprec ; lok = lok 'ET' tst ; tst = 'EGA' dcm2 0. vprec ; lok = lok 'ET' tst ; * cmass3 = MASSS _mt discg 'NPRI' 'QUAF' 'VPRI' 1.D0 'NDUA' 'QUAF' 'VDUA' 1.D0 'MCHA' vrai ; cmass3b = MASSS _mt discg 'NPRI' 'QUAF' 'VPRI' 1.D0 'NDUA' 'QUAF' 'VDUA' 1.D0 'MCHA' faux ; tst = 'EGA' mas3 mas vprec ; lok = lok 'ET' tst ; tst = 'EGA' dcm3 0. vprec ; lok = lok 'ET' tst ; * * Fin boucle sur la dimension * 'FIN' iidim ; * * Test final * 'SI' ('NON' lok) ; 'ERREUR' 5 ; 'SINON' ; 'MESSAGE' ('CHAINE' 'Tout sest bien passe !') ; 'FINSI' ; * 'SI' interact ; 'OPTION' 'ECHO' 1 ; 'OPTION' 'DONN' 5 ; 'FINSI' ; * * End of dgibi file NLIN-MCHAML * 'FIN' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales