C Rutina 061 C------------------------------------------------------------------PC_BIE--- C C SUBRUTINA PC_BIE C C MONTAJE DE LAS ECUACIONES INTEGRALES DE CONTORNO C CORRESPONDIENTES A UN PUNTO DE COLOCACION C SUBROUTINE PC_BIE(PRB,SOL,MAT,CNT,ELT,NOD,PC,SAij,SFi,CEC) C IMPLICIT NONE INCLUDE '_param.for' INCLUDE '_struct.for' C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C VARIABLES EXTERNAS CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C PRB : Variables globales del problema RECORD /S_problema/ PRB C SOL : Solido RECORD /S_solido/ SOL C MAT : Material RECORD /S_material/ MAT C CNT : Contornos del problema RECORD /S_contorno/ CNT(N_MAX_CNT) C ELT : Elementos del problema RECORD /S_elemento/ ELT(N_MAX_ELT) C NOD : Nodos del problema RECORD /S_nodo/ NOD(N_MAX_NOD) C PC : Punto de colocacion RECORD /S_coloc/ PC C SAIJ(,) : Matriz del sistema. REAL*8 SAij(N_MAX_INC,N_MAX_INC) C SFi() : Termino independiente. REAL*8 SFi(N_MAX_INC) C CEC : Ecuacion INTEGER CEC C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C VARIABLES INTERNAS CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C K,M,N,P,Q,R,S : Contadores INTEGER k,m,n,p,q,r,s C CCNT,CELTP,CELT,CNOD,CMAT,CINC,CNDTP,CBC :Contadores INTEGER CCNT,CELTP,CELT,CNOD,CINC,CNDTP,CBC C ELTPNNI,N1,N2 : Variables auxiliares INTEGER ELTPNNI,N1,N2 C INTEGER II,JJ C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C VALORES INICIALES CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C Calculo de las constantes de integracion C C ESCRITURA EN LA BASE DE DATOS C IF(W_D.GE.1) THEN WRITE(F_D,01) 'P.C.: ', PC.NUM WRITE(F_D,*) 'Cij: ' WRITE(F_D,02) ((PC.Cij(ii,jj),jj=1,2),ii=1,2) 01 FORMAT(2x,a,i4) 02 FORMAT(2x,e14.8,1x,e14.8,1x) END IF C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CALCULO DE LAS MATRICES Eij C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C CALL CALC_EIJ(PRB,PC,MAT,SOL,CNT,ELT,NOD) C C SEGUN SEA EL P.C. MONTAMOS LAS COMPONENTES DE LA ECUACION C SELECT CASE (PC.CMP) CASE(1) C Ambas componentes n1=1 n2=2 CASE(2) C Primera componente n1=1 n2=1 CASE(3) C Segunda componente n1=2 n2=2 CASE DEFAULT WRITE(F_W,08211) PC.NUM , PC.CMP WRITE (*,08211) PC.NUM , PC.CMP STOP END SELECT C C BUCLE QUE RECORRE LAS COMPONENTES DE LA ECUACION C DO n = n1 , n2 cec=cec+1 C C BUCLE QUE RECORRE LOS CONTORNOS DEL SOLIDO C DO k = 1 , SOL.NCNT ccnt=SOL.CNT(k) C C BUCLE QUE RECORRE LOS ELEMENTOS DEL CONTORNO C DO m = 1 , CNT(ccnt).NELT celt=CNT(ccnt).ELT(m) celtp=ELT(celt).TIP ELTPNNI=PRB.ELTP(celtp).NNI C C BUCLE QUE RECORRE LOS NODOS DEL ELEMENTO C DO p = 1 , ELTPNNI cnod=ELT(celt).NI(p) cndtp=PRB.ELTP(celtp).TNI(p) C DO r = 1 , PRB.ELTP(celtp).NVE DO s = 1 , PRB.NDTP(cndtp).NINC C C CALCULO DE LA MATRIZ DEL SISTEMA C DO q = 1 , NOD(cnod).NINC cinc=NOD(cnod).INC(q) SAij(cec,cinc)=SAij(cec,cinc)+ @ PC.Eij(celt).Eij(n,r)* @ PRB.ELTP(celtp).Rij(p,r,s)* @ NOD(cnod).Gij(s,q) END DO C C CALCULO DEL TERMINO INDEPENDIENTE C DO q=1 , NOD(cnod).NBC cbc=NOD(cnod).NINC+q SFi(cec)=SFi(cec)- @ PC.EIJ(celt).Eij(n,r)* @ PRB.ELTP(celtp).Rij(p,r,s)* @ NOD(cnod).Gij(s,cbc)* @ NOD(cnod).VBC(q) END DO C END DO END DO C C FIN BUCLE QUE RECORRE LOS NODOS DEL ELEMENTO C END DO C C CALCULO DEL TERMINO TERMICO C x-i-temperatura C SFi(cec)=SFi(cec)-PC.EIJ(celt).Eij(n,5)*SOL.D_TEMP @ -PC.EIJ(celt).Eij(n,6)*SOL.D_TEMP C x-i-temperatura C C FIN BUCLE QUE RECORRE LOS ELEMENTOS DEL CONTORNO C END DO C C FIN BUCLE QUE RECORRE LOS CONTORNOS DEL SOLIDO C END DO C C FIN BUCLE QUE RECORRE LAS COMPONENTES DE LA ECUACION C END DO C C FIN DE LA RUTINA C RETURN C C FORMATOS DE ESCRITURA. C 08211 FORMAT(/,2x,'ERROR 08211 - PC_BIE - Punto de colocacion ',i4, @ '. Codigo ',i2,' no valido.') 08212 FORMAT(/,2x,'ERROR 08212 - PC_BIE - Tipo de problema ',i2, @ '. No implementado.') 08213 FORMAT(/,2x,'ERROR 08213 - PC_BIE - Tipo de formulacion ',i2, @ '. No implementada.') C END C e-REdING. Biblioteca de la Escuela Superior de Ingenieros de Sevilla.


ANÁLISIS DEL PROBLEMA TERMOELÁSTICO DE CONTACTO MEDIANTE EL MÉTODO DE LOS ELEMENTOS DE CONTORNO CON MALLAS CONFORMES Y NO CONFORMES

: MORALES SIERRA, DIÓGENES
: Ingeniería Industrial
Contenido del proyecto: