C C METODO DE LOS ELEMENTOS DE CONTORNO. PROGRAMA MULTIUSO. C C Sevilla/Lulea, 1.997- Autor: Enrique Graciani Diaz C SUBROUTINE MAIN(TP,TF,NSOL,TI,PRB) C IMPLICIT NONE C INCLUDE '_param.for' INCLUDE '_struct.for' C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C VARIABLES DEL PROBLEMA C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C PRB : Variables globales del problema RECORD /S_problema/ PRB C SOL : Solidos del problema RECORD /S_solido/ SOL(N_MAX_SOL) C MAT : Materiales RECORD /S_material/ MAT(N_MAX_SOL) 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 PNT : Puntos internos del problema RECORD /S_pntint/ PNT(N_MAX_PINT) C PC : Puntos de colocacion RECORD /S_coloc/ PC(N_MAX_PC) C ZCTO : Zonas de contacto del problema RECORD /S_zncto/ ZCTO(N_MAX_ZCTO) C SAIJ(,) : Matriz del sistema. REAL*8 SAij(N_MAX_INC,N_MAX_INC) C SXJ() : Vector de incógnitas. REAL*8 SXj(N_MAX_INC) C SFI() : Termino independiente. REAL*8 SFi(N_MAX_INC) C SVT : Ecuación correspondiente a los apoyos puntuales REAL*8 SVT(3*N_MAX_SOL,N_MAX_INC) C SW : Proyeccion de los MSR sobre las incognitas REAL*8 SW(N_MAX_INC,3*N_MAX_SOL) C NPG : Numero de puntos de Gauss INTEGER NPG C tp,tf,nsol,ti : Variables auxiliares INTEGER TP,TF,NSOL,TI C CCCCCCCCCCCCCCCCCCCCCCCCCCC C C VARIABLES INTERNAS C CCCCCCCCCCCCCCCCCCCCCCCCCCC C C ETAP : Etapa de carga INTEGER ETAP C I,J : Contadores INTEGER I,J C CCCCCCCCCCCCCCC C C RUTINA C CCCCCCCCCCCCCCC C C LECTURA DEL NUMERO DE ETAPAS DE CARGA C xxx WRITE(*,*) xxx WRITE(*,*) "Numero de etapas de carga :" xxx READ(*,10) PRB.NETAP xxx PRB.NETAP=1 xxx C C BUCLE QUE RECORRE LAS ETAPAS DE CARGA C DO ETAP=1,PRB.NETAP C C Lectura de datos C CALL LECTURA(TP,TF,NSOL,TI,PRB,ETAP,SOL,MAT,CNT,ELT,NOD,PNT, @ ZCTO,NPG) C C Chequeo de continuidad y calculo de coord. locales C CALL CONECTIVIDAD(PRB,SOL,CNT,PRB.ELTP,ELT,NOD) C C Montaje de las condiciones de contorno C CALL MONTAJE_CDC(PRB,SOL,MAT,CNT,PRB.ELTP,ELT,NOD) C !xx_contacto C Montaje de las condiciones de contacto !xx_contacto C !xx_contacto CALL CONTACTO_CDC(PRB,SOL,MAT,ZCTO,CNT,ELT,NOD) !xx_contacto C C Escritura de datos de entrada en fichero de salida C CALL ESC_ENT(PRB,SOL,MAT,CNT,ELT,NOD,PNT) C !xx_apoyo C Ecuaciones para evitar movimientos de sólido rígido !xx_apoyo C !xx_apoyo CALL CALC_APOYO(PRB,SOL,NOD,SVT,SW) !xx_apoyo C C Montaje de los puntos de colocacion C CALL MONTAJE_PC(PRB,SOL,MAT,CNT,PRB.ELTP,ELT,NOD,PC) C x-i-temperatura C C Calculo de las tensiones térmicas en los nodos C SELECT CASE(PRB.TF.TIP) CASE(11,12,13,14) CONTINUE CASE(21,22,23,24) CALL TENSIONES_TERMICAS(PRB,SOL,MAT) CASE DEFAULT WRITE(F_W,00002) PRB.TF.TIP WRITE (*,00002) PRB.TF.TIP STOP END SELECT C x-f-temperatura C C Montaje de las ecuaciones integrales de contorno C CALL MONTAJE_BIE(PRB,SOL,MAT,CNT,ELT,NOD,PC,SAij,SFi,SVT,SW) C !xx_contacto C ELECCION DEL ALGORITMO DE SOLUCION !xx_contacto C !xx_contacto SELECT CASE(PRB.TF.TIP) !xx_contacto C !xx_contacto CASE(11,21) !xx_contacto C C SOLUCION DIRECTA C CALL ALG_DIRECTO(PRB,SOL,MAT,CNT,ELT,NOD,ZCTO, @ SAij,SFi,SXj,SVT,SW) C !xx_contacto CASE(12,22) !xx_contacto C !xx_contacto C ALGORITMO INCREMENTAL CON ESCALADO DE LA SOLUCION !xx_contacto C !xx_contacto CALL ALG_INCREMENTAL(PRB,SOL,MAT,CNT,ELT,NOD,ZCTO, !xx_contacto @ SAij,SFi,SXj,SVT,SW) !xx_contacto C !xx_contacto CASE(13,23) !xx_contacto C !xx_contacto C ALGORITMO INCREMENTAL CON ESCALADO DE LA SOLUCION !xx_contacto C Y MONTAJE DE TODAS LAS ECUACIONES (BIE+CTO) EN CADA PASO !xx_contacto C !xx_contacto CALL ALG_ACTUAL(PRB,SOL,MAT,CNT,ELT,NOD,PC,ZCTO, !xx_contacto @ SAij,SFi,SXj,SVT,SW) !xx_contacto C !xx_contacto CASE(14,24) !xx_contacto C !xx_contacto C ALGORITMO ITERATIVO !xx_contacto C !xx_contacto CALL ALG_ITERATIVO(PRB,SOL,MAT,CNT,ELT,NOD,ZCTO, !xx_contacto @ SAij,SFi,SXj,SVT,SW) !xx_contacto C !xx_contacto CASE DEFAULT !xx_contacto WRITE(F_W,00002) PRB.TF.TIP !xx_contacto WRITE (*,00002) PRB.TF.TIP !xx_contacto STOP !xx_contacto END SELECT !xx_contacto C C Calculo de la solucion en puntos internos C SELECT CASE(PRB.TF.TIP) CASE(11,12,13,14) CALL MONTAJE_PNTS_INT(PRB,SOL,MAT,CNT,ELT,NOD,PNT) CASE(21,22,23,24) CALL MONTAJE_PNTS_INT_TMP(PRB,SOL,MAT,CNT,ELT,NOD,PNT) CASE DEFAULT WRITE(F_W,00002) PRB.TF.TIP WRITE (*,00002) PRB.TF.TIP STOP END SELECT C C Escritura de la solucion en los puntos internos C CALL ESC_PNT(PRB,SOL,PNT) C C C Escritura de la solucion C CALL ESC_SOL(PRB,SOL,MAT,CNT,ELT,NOD,PNT,SXj) C C Borrado del sistema de ecuaciones C DO i=1,PRB.NeBIE+PRB.NeCTO+PRB.NeINT DO j=1,PRB.NINC SAij(i,j)=0.d0 END DO SFi(i)=0.d0 END DO C C FIN BUCLE QUE RECORRE LAS ETAPAS DE CARGA C END DO C CCCCCCCCCCCCCCCCCCCCCCCCC C FIN DE LA RUTINA CCCCCCCCCCCCCCCCCCCCCCCCC C WRITE(*,*) WRITE(*,*) 'Programa terminado.' WRITE(*,*) C WRITE(F_W,*) WRITE(F_W,*) 'Programa terminado.' WRITE(F_W,*) C C FORMATOS DE ESCRITURA C 00002 FORMAT(/,2x,'ERROR 00002 - MAIN - Tipo de formulacion (', @ i2,') erronea.') 10 FORMAT(i2) C C FINAL DEL PROGRAMA C END C C GRUPO DE ELASTICIDAD Y RESISTENCIA DE MATERIALES. C UNIVERSIDAD DE SEVILLA 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: