Les routines AFRELA et AFLRCH ============================= La routine AFRELA ----------------- .. code-block:: text SUBROUTINE AFRELA (COEFR, COEFC, DDL, NOEUD , NDIM, DIRECT, + NBTERM, BETAR, BETAC, BETAF, TYPCOE, TYPVAL, LISREL) C---------------------------------------------------------------------- C BUT : AFFECTATION D'UNE RELATION ENTRE DDLS A UNE SD LISTE_RELA C (SI L'OBJET LISREL N'EXISTE PAS, IL EST CREE) C C---------------------------------------------------------------------- C COEFR(NBTERM) - IN - R - : TABLEAU DES COEFFICIENTS DE LA RELATION C LES COEFFICIENTS SONT REELS C---------------------------------------------------------------------- C COEFC(NBTERM) - IN - C - : TABLEAU DES COEFFICIENTS DE LA RELATION C LES COEFFICIENTS SONT COMPLEXES C---------------------------------------------------------------------- C DDL(NBTERM) - IN - K8 - : TABLEAU DES DDL DE LA RELATION C---------------------------------------------------------------------- C NOEUD(NBTERM) - IN - K8 - : TABLEAU DES NOEUDS DE LA RELATION C----------------------------------------------------------------------- C NDIM(NBTERM) - IN - I - : DIMENSION DU PROBLEME (0, 2 OU 3) C SI = 0 PAS DE CHANGEMENT DE REPERE C LA RELATION EST DONNEE DANS LA BASE C GLOBALE C---------------------------------------------------------------------- C DIRECT(3,NBTERM)- IN - R - : TABLEAU DES VECTEURS RELATIFS A CHAQUE C TERME DEFINISSANT LA DIRECTION DE LA C COMPOSANTE QUE L'ON VEUT CONTRAINDRE C---------------------------------------------------------------------- C NBTERM - IN - I - : NOMBRE DE TERMES DE LA RELATION C---------------------------------------------------------------------- C BETAR - IN - R - : VALEUR REELLE DU SECOND MEMBRE C---------------------------------------------------------------------- C BETAC - IN - C - : VALEUR COMPLEXE DU SECOND MEMBRE C---------------------------------------------------------------------- C BETAF - IN - K8 - : VALEUR FONCTION DU SECOND MEMBRE C---------------------------------------------------------------------- C TYPCOE - IN - K4 - : TYPE DES COEFFICIENTS DE LA RELATION : C = 'REEL' OU 'COMP' C---------------------------------------------------------------------- C TYPVAL - IN - K4 - : TYPE DU SECOND MEMBRE C = 'REEL' OU 'COMP' OU 'FONC' C---------------------------------------------------------------------- C LISREL - IN - K19 - : NOM DE LA SD LISTE_RELA C - JXVAR - C---------------------------------------------------------------------- Deux cas de figure sont à considérer : * les degrés de liberté à relier sont donnés dans le repère absolu : DX, DY, ... * certains degrés de liberté à relier sont donnés dans un repère local. **Cas A** (tout dans le repère absolu) : * NBTERMest le nombre de degrés de liberté reliés par la relation. * NDIMest un vecteur rempli de 0 * DIRECTest inutile. Exemple 1 : on veut imposer : :math:`3.\times \mathit{DX}(\mathit{N1})+2.\times \mathit{DY}(\mathit{N2})-\mathrm{4.DRZ}(\mathit{N1})=F` (fonction) .. code-block:: text NBTERM = 3 TYPCOE = 'REEL' TYPVAL = 'FONC' COEFR = (3. , 2. , -4. ) NDIM = (0 , 0 , 0 ) DDL = ('DX','DY','DRZ') NOEUD = ('N1','N2','N1' ) BETAF = 'F' **Cas B** (repère local) : Pour chaque nœud impliqué dans la relation, on peut donner un repère local dans lequel la relation est plus simple (la normale à une surface par exemple). Exemple 2 : soit :math:`n` , un vecteur unitaire de composantes :math:`(\mathit{nx},\mathit{ny},\mathit{nz})` . On veut que le déplacement suivant :math:`n` au nœud :math:`\mathit{N3}` soit nul. .. code-block:: text NBTERM = 1 TYPCOE = 'REEL' TYPVAL = 'REEL' COEFR = (1.) NDIM = (3) DIRECT = (nx,ny,nz) DDL = ('DEPL') NOEUD = ('N1') BETAR = 0. Remarques : *NBTERMn’est pas le nombre de termes de la relation finale (ici :* *3).* *Quand on emploie (pour un “terme”) la possibilité d’un repère local* *NDIM /= 0le nom du degré de libertédoit être conventionnellement* *‘DEPL’* *ou* *‘ROTA‘* Exemple 3 : RC .. csv-table:: "soient", "n1: un vecteur unitaire de composantes (n1x, n1y, n1z)" "", "n2: un vecteur unitaire de composantes (n2x, n2y, n2z)" les données suivantes : .. code-block:: text NBTERM = 3 TYPCOE = 'REEL' TYPVAL = 'REEL' COEFR = (4.,2.,-3.) NDIM = (3,0,3) DIRECT = (n1x,n1y,n1z,rbid,rbid,rbid,n2x,n2y,n2z) DDL = ('DEPL','DX','ROTA') NOEUD = ('N1','N3','N2') BETAR = 5. décrivent la relation à 7 termes : .. code-block:: text 4.*(n1x*DX(N1)+n1y*DY(N1)+n1z*DZ(N1)) + 2.*DX(N3) + -3.*(n2x*DX(N2)+n2y*DY(N2)+n2z*DZ(N2)) = 5. La routine AFLRCH ----------------- .. code-block:: text SUBROUTINE AFLRCH (LISREL, CHARGE) C ------------------------------------------------------- C AJOUT D'UNE LISTE_RELA DANS UNE CHARGE C C LES RELATIONS IDENTIQUES AU SEIN DE LISTE_RELA SONT C ELIMINEES. LE PRINCIPE DE SURCHARGE EST APPLIQUE : C C'EST LE DERNIER SECOND MEMBRE QUI EST CONSERVE. C ------------------------------------------------------- C LISREL IN/JXVAR - K19 - : NOM DE LA SD LISTE_RELA C LA LISTE_RELA EST DETRUITE C A LA FIN DE LA ROUTINE C ------------------------------------------------------- C CHARGE IN/JXVAR - K8 - : NOM DE LA SD CHARGE C LA CHARGE EST ENRICHIE C -------------------------------------------------------