CARVIEW |
Select Language
HTTP/2 200
date: Sat, 11 Oct 2025 15:42:00 GMT
content-type: text/html; charset=UTF-8
server: cloudflare
x-frame-options: DENY
x-content-type-options: nosniff
x-xss-protection: 1;mode=block
vary: accept-encoding
cf-cache-status: DYNAMIC
content-encoding: gzip
set-cookie: _csrf-frontend=d3a7c29327133a801342e2d17748fcd5e607efb63a43d1a9279084a4c87dcb0ba%3A2%3A%7Bi%3A0%3Bs%3A14%3A%22_csrf-frontend%22%3Bi%3A1%3Bs%3A32%3A%22TqjrhCR1cOm2TDkqCd3aRYLdrXGAz68l%22%3B%7D; HttpOnly; Path=/
cf-ray: 98cf77012dd78a2a-BLR
Finite Differences 2D Not OK - Pastebin.com
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- MODULE Finite_differences
- USE, intrinsic :: iso_fortran_env, only: real64
- USE DATA
- USE Aproximacion
- USE Linear_System_Solver, ONLY: Band_Relaxation_Method
- PRIVATE
- PUBLIC:: Solver_BVP
- CONTAINS
- SUBROUTINE Solver_BVP()
- !Ax=b
- REAL(kind=real64),DIMENSION(Extension, Extension)::Mat_Coeficientes !A
- REAL(kind=real64),DIMENSION(Extension)::Mat_Independiente !B
- REAL(kind=real64),DIMENSION(Extension):: Temperatura !x
- REAL(kind=real64):: Pos_x,Pos_y
- REAL(kind=real64):: Temperatura_Frontera
- REAL(kind=real64):: Fuente
- INTEGER I,J,Nodo_Iter
- OPEN(Unit=1,File="write_outs.dat")
- Mat_Coeficientes=0.0_real64; Mat_Independiente=0.0_real64; Temperatura=0.0_real64 !Inicializacion de las matrices en cero
- DO I=1,Extension !Asigno a toda la matriz de coeficientes la matriz identidad => Mat_Coeficientes=I
- Mat_Coeficientes(i,i)=1.0_real64
- END DO
- !----------------------------ASIGNACION DE VALORES DE FRONTERA---------------------------------------------------------------
- !-------------------------------FRONTERA DERECHA-----------------------------------------------------------------------------
- DO I= 1,Segmentos_y+1 !Cantidad de nodos en el eje Vertical
- Pos_x = X_Final !Me mantengo siempre en el borde de la derecha
- Pos_y = Y_initial + (i-1)*Incremento_y !Voy subiendo a medida que pasan las iteraciones
- CALL Condicion_Borde_Der(Pos_x,Pos_y,Temperatura_Frontera)
- Mat_Independiente(I*(Segmentos_x+1))=Temperatura_Frontera
- END DO
- !-------------------------------FRONTERA IZQUIERDA----------------------------------------------------------------------------
- DO I= 1,Segmentos_y+1 !Cantidad de nodos en el eje vertical
- Pos_x = X_Initial !Me mantengo siempre en el borde de la izquierda
- Pos_y = Y_initial + (i-1)*Incremento_y !Voy subiendo a medida que pasan las iteraciones
- CALL Condicion_Borde_Izq(Pos_x,Pos_y,Temperatura_Frontera)
- Mat_Independiente((i-1)*(Segmentos_x+1)+1)=Temperatura_Frontera
- END DO
- !------------------------------FRONTERA INFERIOR--------------------------------------------------------------------------------
- DO I= 1,Segmentos_x+1 !Cantidad de nodos en el eje horizontal
- Pos_x = X_Initial + (i-1)*Incremento_x !Voy desplazandome hacia la derecha a medida que pasan las iteraciones
- Pos_y = Y_initial !Me mantengo en la frontera inferior
- CALL Condicion_Borde_Inf(Pos_x,Pos_y,Temperatura_Frontera)
- Mat_Independiente(I)=Temperatura_Frontera
- END DO
- !------------------------------FRONTERA SUPERIOR---------------------------------------------------------------------------------
- DO I= 1,Segmentos_x+1 !Cantidad de nodos en el eje horizontal
- Pos_x = X_Initial + (i-1)*Incremento_x !Voy desplazandome hacia la derecha a medida que pasan las iteraciones
- Pos_y = Y_Final !Me mantengo en la frontera inferior
- CALL Condicion_Borde_Sup(Pos_x,Pos_y,Temperatura_Frontera)
- Mat_Independiente((Extension-Segmentos_x)+(I-1))=Temperatura_Frontera
- END DO
- !--------------------------------------------------------------------------------------------------------------------------------
- !----------------------------ASIGNACION DE VALORES DE MAT_INDEPENDIENTE (FUENTE)-------------------------------------------------
- DO I= 1,Segmentos_y !Cantidad de nodos internos en el eje vertical
- DO J= 1,Segmentos_x !Cantidad de nodos internos en el eje horizontal
- Pos_x= X_Initial + j*Incremento_x !Me voy desplazando horizontalmente hacia la derecha a medida que aumenta J
- Pos_y= Y_Initial + i*Incremento_y !Me voy desplazando verticalmente hacia arriba a medida que aumenta I
- CALL Fuente_de_Calor(Pos_x,Pos_y,Fuente)
- Mat_Independiente(I*(Segmentos_x+1)+1+J) = Fuente/Conductividad
- END DO
- END DO
- !----------------------------------------------------------------------------------------------------------------------------------
- !-------------------------ASIGNACION DE VALORES MATRIZ DE COEFICIENTES-------------------------------------------------------------
- DO J = 1, Segmentos_y-1 !Cantidad de veces que debo subir para cubrir todos los nodos incognita
- I = J*(Segmentos_x+1) !Me ubica en el nodo final de cada fila
- DO Nodo_iter = I+2, I+Segmentos_x !Recorro los nodos internos en cada fila
- Mat_Coeficientes(Nodo_Iter,Nodo_Iter) =-2.0_real64*(Cte_x+Cte_y)
- Mat_Coeficientes(Nodo_Iter,Nodo_Iter-1) = Cte_x
- Mat_Coeficientes(Nodo_Iter,Nodo_Iter+1) = Cte_x
- Mat_Coeficientes(Nodo_Iter,Nodo_Iter - Segmentos_x - 1) = Cte_y
- Mat_Coeficientes(Nodo_Iter,Nodo_Iter + Segmentos_x + 1) = Cte_y
- END DO
- END DO
- CALL Band_Relaxation_Method(Mat_Coeficientes,Mat_Independiente,Temperatura,Extension)
- DO I=1,Segmentos_y+1
- DO J=1,Segmentos_x+1
- Pos_x= X_Initial + (j-1)*Incremento_x !Me voy desplazando horizontalmente hacia la derecha a medida que aumenta J
- Pos_y= Y_Initial + (i-1)*Incremento_y !Me voy desplazando verticalmente hacia arriba a medida que aumenta I
- Write(1,*) Pos_x, Pos_y, Temperatura((I-1)*(Segmentos_x+1)+J)
- END DO
- END DO
- END SUBROUTINE Solver_BVP
- END MODULE Finite_Differences
Tags:
Fortran
Advertisement
Add Comment
Please, Sign In to add comment
-
⭐⭐⭐Exchange Exploit T I⭐⭐
Java | 7 sec ago | 0.10 KB
-
✅⭐ Make huge profits on trading ⭐⭐ T
JavaScript | 10 sec ago | 0.24 KB
-
Free Crypto Method (NEVER SEEN BEFORE)⭐⭐ M
JavaScript | 11 sec ago | 0.24 KB
-
⭐✅ Marketplace Glitch ✅ Working ✅ NEVER SEEN...
JavaScript | 16 sec ago | 0.24 KB
-
⭐✅ MAKE $2500 IN 15 MIN⭐⭐⭐ I
JavaScript | 21 sec ago | 0.24 KB
-
⭐✅ Swapzone Glitch ✅ Working⭐⭐⭐ 4
JavaScript | 23 sec ago | 0.24 KB
-
✅⭐ Make $2500 in 15 minutes ✅ NEVER SEEN BEFO...
JavaScript | 26 sec ago | 0.24 KB
-
⭐✅ Exploit 2500$ in 15 Minutes⭐⭐⭐ 7
JavaScript | 32 sec ago | 0.24 KB
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand