2. Structure de définition du contact#
sd_contact (K8) ::= record
/FORMULATION = toutes
(o) “.CHME.MODEL.NOMO” : V K8 long = 1 (o) “.CONTACT.PARACI” : V I long = ZPARI (o) “.CONTACT.PARACR” : V R long = ZPARR (o) “.TYPE” : V K8 long = 1
/FORMULATION = “LIAISON_UNIL”
(o) “.UNILATE.NDIMCU” : V I long = 2 (o) “.UNILATE.CMPGCU” : V K8 long = NCMPG (o) “.UNILATE.COED” : V K8 long = NNOCU (o) “.UNILATE.COEG” : V K8 long = NCMPG (o) “.UNILATE.LISNOE” : V I long = NNOCU (o) “.UNILATE.POINOE” : V I long = NNOCU+1 (o) “.UNILATE.COEFPE” : V Rlong = NNOCU
/FORMULATION = contact unilatéral (“DISCRETE” ou “CONTINUE” ou “XFEM”)
“.CONTACT.NDIMCO” : V I long = ZDIME
/FORMULATION = maillées (“DISCRETE” ou “CONTINUE”)
(o) “.CONTACT.METHCO” : V I long = ZMETH*NZOCO (o) “.CONTACT.DIRAPP” : V K8 long = 3*NZOCO (o) “.CONTACT.DIRNOR” : V K8 long = ZDIRN*NZOCO (o) “.CONTACT.JFO1CO” : V K8 long = NZOCO (o) “.CONTACT.JFO2CO” : V K8 long = NZOCO (o) “.CONTACT.TOLECO” : V R long = ZTOLE*NZOCO (o) “.CONTACT.JEUCOQ” : V R long = NMACO (o) “.CONTACT.JEUPOU” : V R long = NMACO
(o) “.CONTACT.PZONECO” : V I long = NZOCO+1 (o) “.CONTACT.PSUMACO” : V I long = NSUCO+1 (o) “.CONTACT.PSUNOCO” : V I long = NSUCO+1 (o) “.CONTACT.MAILCO” : V I long = NMACO (o) “.CONTACT.NOEUCO” : V I long = NNOCO (o) “.CONTACT.MANOCO” : V I long = NMANO (o) “.CONTACT.PMANOCO” : V I long = 1+NNOCO (o) “.CONTACT.NOMACO” : V I long = NNOMA (o) “.CONTACT.PNOMACO” : V I long = 1+NMACO
(f) “.CONTACT.PSSNOCO” : V I long = 1+NZOCO (f) “.CONTACT.SSNOCO” : V I long = STOCNO
(o) “.CONTACT.TYPENO” : V I long = ZTYPN*NNOCO (o) “.CONTACT.TYPEMA” : V I long = ZTYPM*NMACO (o) “.CONTACT.MAESCL” : V I long = ZMAES*NTMAE
/FORMULATION = “DISCRETE” (o) “.CONTACT.CARADF” : V R long = ZCMDF*NZOCO
“.CHME” : V sd_char_meca
/FORMULATION = “CONTINUE” (o) “.CONTACT.CARACF” : V R long = ZCMCF*NZOCO (f) “.CONTACT.PSANOFR” : V I long = 1+NZOCO (f) “.CONTACT.SANOFR” : V I long = STOCNO (f) “.CONTACT.EXCLFR” : V R long = ZEXCL*NZOCO
“.CHME.LIGRE” : V sd_ligrel
/FORMULATION = “XFEM” (o) “.CONTACT.CARAXF” : V R long = ZCMXF*NZOCO (o) “.CONTACT.MODELX” : V K8 long = 1 (o) “.CONTACT.XFIMAI” : V K8 long = NZOCO (o) “.CONTACT.XNRELL” : V K24 long = NFIS (o) “.CONTACT.MAESCX” : V I long = ZMESX*NTMAE
La longueur des SD pour le contact est stockée dans la routine FORTRAN CFMMVD. L’appel est simple:
ZDIME = CFMMVD('ZDIME')
Par exemple, ZDIMEdonne la longueur de l’objet DEFICO(1:16)//”.NDIMCO”. Lorsque la SD est multi-zones, la valeur ZLONGretournée par CFMMVDest un multiplicateur (la longueur totale de l’objet vaut alors NZOCO*ZLONGavec NZOCO le nombre de zones en contact). Tout changement de la longueur des SD de contact doit passer par cet utilitaire. On prendra garde à répercuter simultanément le changement dans sd_contact.py.