* DEADKTAN PROCEDUR GOUNAND 18/10/24 21:15:02 9970 ************************************************************************ * NOM : DEADKTAN * DESCRIPTION : La matrice tangente (Huang) * * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) * mél : gounand@semt2.smts.cea.fr ********************************************************************** * VERSION : v1, 30/04/2007, version initiale * HISTORIQUE : v1, 30/04/2007, création * HISTORIQUE : 2018/01/22 : chgt nom composante hors diago G21 au lieu * de G12 * 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 ! ************************************************************************ * * 'ARGUMENT' _mt*'MAILLAGE' ; 'ARGUMENT' theta*'FLOTTANT' ; 'ARGUMENT' gamma*'FLOTTANT' ; 'ARGUMENT' dppri*'LISTMOTS' ; 'ARGUMENT' dpdua*'LISTMOTS' ; * dpdis = gdisc ; * * 'ARGUMENT' met/'CHPOINT' ; lmet = 'EXISTE' met ; 'SI' lmet ; * metdisc = gdisc ; 'SINON' ; metdisc = 'CSTE' ; 'FINSI' ; * debloi = 'CHAINE' 'AHU' ; ncmet = '/' ('*' idim ('+' idim 1)) 2 ; loi = 'CHAINE' debloi 'J' ; * 'FINSI' ; 'ARGUMENT' idir/'ENTIER' ; 'SI' ('EXISTE' idir) ; 'SINON' ; 'ARGUMENT' ldir/'LISTENTI' ; 'SI' ('NON' ('EXISTE' ldir)) ; 'FINSI' ; 'FINSI' ; 'FINSI' ; * * Calcul du jacobien complet (jaco = 1) * numop = '*' ('**' vdim 2) ('**' idim 2) ; numder = vdim ; numvar = idim ; numdat = 0 ; numcof = 0 ; * numdat = '+' ncmet 2 ; numcof = numop ; 'REPETER' ivar numvar ; A . 'VAR' . &ivar . 'DISC' = dpdis ; B . 'VAR' . &ivar . 'DISC' = dpdis ; 'FIN' ivar ; iop = 0 ; 'REPETER' i idim ; 'REPETER' j vdim ; 'REPETER' k idim ; 'REPETER' l vdim ; iop = iop '+' 1 ; nomloi = 'CHAINE' loi &i &j &k &l ; * 'MESSAGE' ('CHAINE' 'Nomloi=' nomloi) ; B . 'COF' . iop . 'COMPOR' = nomloi ; B . 'COF' . iop . 'LDAT' = lisdat ; 'FIN' l ; 'FIN' k ; 'FIN' j ; 'FIN' i ; 'FINSI' ; numop = '*' nldir ('**' vdim 2) ; numder = vdim ; numvar = idim ; numdat = 0 ; numcof = 0 ; * numdat = '+' ncmet 2 ; numcof = numop ; 'REPETER' ivar numvar ; A . 'VAR' . &ivar . 'DISC' = dpdis ; B . 'VAR' . &ivar . 'DISC' = dpdis ; 'FIN' ivar ; iop = 0 ; 'REPETER' i nldir ; idir = 'EXTRAIRE' ldir &i ; 'REPETER' j vdim ; 'REPETER' l vdim ; iop = iop '+' 1 ; nomloi = 'CHAINE' loi idir &j idir &l ; * 'MESSAGE' ('CHAINE' 'Nomloi=' nomloi) ; B . 'COF' . iop . 'COMPOR' = nomloi ; B . 'COF' . iop . 'LDAT' = lisdat ; 'FIN' l ; 'FIN' j ; 'FIN' i ; 'FINSI' ; * numop = '**' vdim 2 ; numop = '*' nldir vdim ; numder = vdim ; numvar = idim ; numdat = 0 ; numcof = 0 ; * numdat = '+' ncmet 2 ; numcof = numop ; 'REPETER' ivar numvar ; A . 'VAR' . &ivar . 'DISC' = dpdis ; B . 'VAR' . &ivar . 'DISC' = dpdis ; 'FIN' ivar ; iop = 0 ; 'REPETER' i nldir ; idir = 'EXTRAIRE' ldir &i ; 'REPETER' j vdim ; iop = iop '+' 1 ; nomloi = 'CHAINE' loi idir &j idir &j ; * 'MESSAGE' ('CHAINE' 'Nomloi=' nomloi) ; B . 'COF' . iop . 'COMPOR' = nomloi ; B . 'COF' . iop . 'LDAT' = lisdat ; 'FIN' j ; 'FIN' i ; 'FINSI' ; * * Partie commune * 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 ; idat = '+' idat 1 ; B . 'DAT' . idat . 'DISC' = 'CSTE' ; B . 'DAT' . idat . 'VALEUR' = theta ; idat = '+' idat 1 ; B . 'DAT' . idat . 'DISC' = 'CSTE' ; B . 'DAT' . idat . 'VALEUR' = gamma ; * jac = NLINP gdisc _mt A B 'EREF' methgau ; * 'RESPRO' jac ; * * End of procedure file DEADKTAN * 'FINPROC' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales