* DEADUTIL PROCEDUR GOUNAND 18/10/24 21:15:02 9970 ************************************************************************ * NOM : DEADUTIL * DESCRIPTION : * * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) * mél : gounand@semt2.smts.cea.fr ********************************************************************** * VERSION : v1, 05/04/2006, version initiale * HISTORIQUE : v1, 05/04/2006, création * HISTORIQUE : 2018/01/22 : chgt nom composante hors diago G21 au lieu * de G12 pour QEQU et QISO * HISTORIQUE : 2018/10/10 : NLINP au lieu de NLIN * HISTORIQUE : * HISTORIQUE : ************************************************************************ * Prière de PRENDRE LE TEMPS de compléter les commentaires * en cas de modification de ce sous-programme afin de faciliter * la maintenance ! ************************************************************************ * * * 'SI' ('NON' ('EXISTE' lmotcle motcle)) ; cherr = 'CHAINE' 'Keyword ' motcle ' unknown.' ; 'ERREUR' cherr ; 'FINSI' ; * 'SI' ('EGA' motcle 'AXI?') ; laxi = ('EGA' vmod 'AXIS') 'OU' ('EGA' vmod 'UNIDAXIS') 'OU' ('EGA' vmod 'UNIDAXISAXDZ') 'OU' ('EGA' vmod 'UNIDAXISAXCZ') 'OU' ('EGA' vmod 'UNIDAXISAXGZ') ; 'RESPRO' laxi ; 'FINSI' ; * 'SI' ('EGA' motcle 'SPH?') ; lsph = 'EGA' vmod 'UNIDSPHE' ; 'RESPRO' lsph ; 'FINSI' ; * 'SI' ('EGA' motcle 'DIMM') ; 'ARGUMENT' mt*'MAILLAGE' ; tabdim = 'TABLE' ; 'PYR5' 'PY13' 'CU27' 'PR21' 'TE15' 'PY19' ; fidim = FAUX ; dim = -1 ; 'SI' ('EGA' nelem 0) ; 'ERREUR' cherr ; 'FINSI' ; * 'REPETER' ielem nelem ; melem = 'EXTRAIRE' lelem &ielem ; 'REPETER' itdim 4 ; idim = ('-' &itdim 1) ; lli = tabdim . idim ; * id = ISINLIS melem lli ; * 'SI' ('NEG' id 0) ; id = 'EXISTE' lli melem ; 'SI' id ; 'SI' fidim ; 'SI' ('NEG' dim idim) ; cherr = 'CHAINE' 'Composite mesh not allowed' ; 'ERREUR' cherr ; 'FINSI' ; 'SINON' ; dim = idim ; fidim = VRAI ; 'FINSI' ; 'FINSI' ; 'FIN' itdim ; 'FIN' ielem ; * 'SI' ('NON' fidim) ; cherr = 'CHAINE' 'No known elements in this mesh' ; 'ERREUR' cherr ; 'FINSI' ; * 'RESPRO' dim ; 'FINSI' ; * * * 'SI' ('EGA' motcle 'TYPM') ; 'ARGUMENT' mt*'MAILLAGE' ; tabtyp = 'TABLE' ; * fityp = FAUX ; typ = -1 ; 'SI' ('EGA' nelem 0) ; cherr = 'CHAINE' 'Void mesh ?' ; 'MESSAGE' cherr ; 'QUITTER' TYPM ; 'FINSI' ; * 'REPETER' ielem nelem ; melem = 'EXTRAIRE' lelem &ielem ; 'REPETER' ittyp 3 ; ityp = &ittyp ; lli = tabtyp . ityp ; * id = ISINLIS melem lli ; * 'SI' ('NEG' id 0) ; id = 'EXISTE' lli melem ; 'SI' id ; 'SI' fityp ; 'SI' ('NEG' typ ityp) ; cherr = 'CHAINE' 'Composite mesh not allowed' ; 'ERREUR' cherr ; 'FINSI' ; 'SINON' ; typ = ityp ; fityp = VRAI ; 'FINSI' ; 'FINSI' ; 'FIN' ittyp ; 'FIN' ielem ; * 'SI' ('NON' fityp) ; cherr = 'CHAINE' 'No known elements in this mesh' ; 'ERREUR' cherr ; 'FINSI' ; * mtyp = 'EXTRAIRE' listyp typ ; 'RESPRO' mtyp ; 'FINSI' ; * * QISO PROCEDUR GOUNAND 06/04/06 17:53:15 5371 ************************************************************************ * NOM : QISO * DESCRIPTION : Critère de qualité d'un maillage : alignement * (= isotropie) * * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) * mél : gounand@semt2.smts.cea.fr ********************************************************************** * VERSION : v1, 11/05/2007, version initiale * HISTORIQUE : v1, 11/05/2007, création * HISTORIQUE : 2018/01/22 : chgt nom composante hors diago G21 au lieu * de G12 * HISTORIQUE : * HISTORIQUE : ************************************************************************ * Prière de PRENDRE LE TEMPS de compléter les commentaires * en cas de modification de ce sous-programme afin de faciliter * la maintenance ! ************************************************************************ * * * 'SI' ('EGA' motcle 'QISO') ; * 'ARGUMENT' _mt*'MAILLAGE' ; * * 'ARGUMENT' met/'CHPOINT' ; lmet = 'EXISTE' met ; 'SI' lmet ; 'SINON' ; metdisc = 'CSTE' ; 'FINSI' ; * ncmet = '/' ('*' idim ('+' idim 1)) 2 ; loi = 'CHAINE' 'QALI' ; * * Calcul de la fonctionnelle * numop = 1 ; numvar = 1 ; numder = vdim ; numdat = 0 ; numcof = 0 ; * A . 'VAR' . 1 . 'DISC' = 'CSTE' ; A . 'VAR' . 1 . 'VALEUR' = 1.D0 ; * numvar = 1 ; numdat = ncmet ; numcof = 1 ; B . 'VAR' . 1 . 'DISC' = 'CSTE' ; B . 'VAR' . 1 . 'VALEUR' = 1.D0 ; * idat = 0 ; 'REPETER' idi idim ; nomdat = 'CHAINE' 'G' &idi &idi ; * 'MESSAGE' ('CHAINE' 'nomdat=' nomdat) ; idat = '+' idat 1 ; B . 'DAT' . idat . 'DISC' = metdisc ; 'SI' lmet ; 'SINON' ; B . 'DAT' . idat . 'VALEUR' = 1.D0 ; 'FINSI' ; 'FIN' idi ; 'REPETER' idi idim ; nj = '-' idim &idi ; * 'MESSAGE' ('CHAINE' 'nj=' nj) ; 'SI' ('>EG' nj 1) ; 'REPETER' jdi nj ; * Mise en cohérence avec Castem * nomdat = 'CHAINE' 'G' &idi ('+' &idi &jdi) ; nomdat = 'CHAINE' 'G' ('+' &idi &jdi) &idi ; * 'MESSAGE' ('CHAINE' 'nomdat=' nomdat) ; idat = '+' idat 1 ; B . 'DAT' . idat . 'DISC' = metdisc ; 'SI' lmet ; 'SINON' ; B . 'DAT' . idat . 'VALEUR' = 0.D0 ; 'FINSI' ; 'FIN' jdi ; 'FINSI' ; 'FIN' idi ; * B . 'COF' . 1 . 'COMPOR' = loi ; B . 'COF' . 1 . 'LDAT' = lisdat ; * * vfonc = NLINP gdisc _mt A B 'ERF1' methgau ; * 'RESPRO' vfonc ; 'FINSI' ; * * QEQU PROCEDUR GOUNAND 06/04/06 17:53:15 5371 ************************************************************************ * NOM : QEQU * DESCRIPTION : Critère de qualité d'un maillage : equidistribution * * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) * mél : gounand@semt2.smts.cea.fr ********************************************************************** * VERSION : v1, 11/05/2007, version initiale * HISTORIQUE : v1, 11/05/2007, création * HISTORIQUE : 2018/01/22 : chgt nom composante hors diago G21 au lieu * de G12 * HISTORIQUE : * HISTORIQUE : ************************************************************************ * Prière de PRENDRE LE TEMPS de compléter les commentaires * en cas de modification de ce sous-programme afin de faciliter * la maintenance ! ************************************************************************ * * 'SI' ('EGA' motcle 'QEQU') ; * 'ARGUMENT' _mt*'MAILLAGE' ; * * 'ARGUMENT' met/'CHPOINT' ; lmet = 'EXISTE' met ; 'SI' lmet ; 'SINON' ; metdisc = 'CSTE' ; 'FINSI' ; ncmet = '/' ('*' idim ('+' idim 1)) 2 ; loi = 'CHAINE' 'QEQU' ; * * Calcul de la fonctionnelle * numop = 1 ; numvar = 1 ; numder = vdim ; numdat = 0 ; numcof = 0 ; * A . 'VAR' . 1 . 'DISC' = 'CSTE' ; A . 'VAR' . 1 . 'VALEUR' = 1.D0 ; * numvar = 1 ; numdat = ncmet ; numcof = 1 ; B . 'VAR' . 1 . 'DISC' = 'CSTE' ; B . 'VAR' . 1 . 'VALEUR' = 1.D0 ; * idat = 0 ; 'REPETER' idi idim ; nomdat = 'CHAINE' 'G' &idi &idi ; * 'MESSAGE' ('CHAINE' 'nomdat=' nomdat) ; idat = '+' idat 1 ; B . 'DAT' . idat . 'DISC' = metdisc ; 'SI' lmet ; 'SINON' ; B . 'DAT' . idat . 'VALEUR' = 1.D0 ; 'FINSI' ; 'FIN' idi ; 'REPETER' idi idim ; nj = '-' idim &idi ; * 'MESSAGE' ('CHAINE' 'nj=' nj) ; 'SI' ('>EG' nj 1) ; 'REPETER' jdi nj ; * Mise en cohérence avec Castem * nomdat = 'CHAINE' 'G' &idi ('+' &idi &jdi) ; nomdat = 'CHAINE' 'G' ('+' &idi &jdi) &idi ; * 'MESSAGE' ('CHAINE' 'nomdat=' nomdat) ; idat = '+' idat 1 ; B . 'DAT' . idat . 'DISC' = metdisc ; 'SI' lmet ; 'SINON' ; B . 'DAT' . idat . 'VALEUR' = 0.D0 ; 'FINSI' ; 'FIN' jdi ; 'FINSI' ; 'FIN' idi ; * B . 'COF' . 1 . 'COMPOR' = loi ; B . 'COF' . 1 . 'LDAT' = lisdat ; * * vfonci = NLINP gdisc _mt A B 'ERF1' methgau ; * rvfonci = 'MAXIMUM' ('RESULT' vfonci) ; fac = '/' rvelemr rvfonci ; * vfonc = '*' vfonci fac ; * 'SI' faux ; rvfonc = 'MAXIMUM' ('RESULT' vfonc) ; tol = '/' rvelemr 10. ; test = ('EGA' rvfonc rvelemr tol) ; 'SI' ('NON' test) ; 'ERREUR' 5 ; 'FINSI' ; 'FINSI' ; * 'RESPRO' vfonc ; * 'FINSI' ; * * End of procedure file DEADUTIL * 'FINPROC' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales