sábado, 26 de noviembre de 2022

Consejos para Realizar una Interfaz

 En esta entrada se aborda un tema poco tratado a lo largo del blog, dicho tema es la creación de la interfaz gráfica, para ello surgen diferentes preguntas como: ¿Por qué se debe crear una interfaz?, ¿Qué debe de llevar la interfaz?, ¿Cómo se sabe que la interfaz es útil para el usuario?, etc.
 
Este tema es bastante extenso y complicado de abordar dado a la diversidad de pensamiento y creatividad de cada persona, por lo anterior se proporcionan algunos consejos que se han obtenido a lo largo del tiempo. Tenga en mente que no tengo la razón absoluta y es mi experiencia obtenida a lo largo de 4 años como programador.
 
Antes de comenzar con los consejos se han de aclarar las preguntas planteadas anteriormente. Empezando con la primera pregunta, ¿Por qué se debe crear una interfaz?, esta pregunta es relativamente sencilla de responder dado a que no todas las personas saben programar o poseen un buen dominio de la computación, por lo que se busca facilitar el uso de los programas a esas personas que no saben mucho de programación. Continuando con la segunda, ¿Qué debe de llevar la interfaz?, como respuesta se puede decir que depende, ya que la interfaz puede ser robusta o sencilla según las necesidades del programador y del usuario, en sí la sencillez de la interfaz dependerá de la habilidad de programador. Algo que se sabe es que entre más sencillo sea el programa para el usuario el programador trabajo demasiado para que así sea. Por ultimo ¿Cómo se sabe que la interfaz es útil para el usuario?, esta pregunta es muy importante dado que el programador busca que más usuarios usen sus creaciones, esto supone un mayor ingreso económico al programador, por lo que debe buscar el balance entre satisfacer al público y seguir su instinto en la creación de los programas. Por ello  tiene que poner atención a las personas que utilizan los programas, escuchando con criterio las propuestas, separando las propuestas viables y las que no lo son, evitando caer en las complacencias y el egoísmo. 
 
A continuación se proporcionan los pasos que sigo para crear una interfaz gráfica.
 
1.- Lo primero que debe hacer es tener el programa ya definido, cómo es esto, bueno se debe tener una idea clara de lo que se quiere hacer.
2.- Ubicar lo que necesita el programa para funcionar y lo que devuelve.
3.- Realizar un diseño intuitivo y fácil de utilizar. Esto se realiza dividiendo la ventana en cajas u otra cosa que le haga saber al usuario los espacios y las opciones que puede utilizar. En los códigos que se han subido al blog se observa el uso de este tema, Labelframes.
4.- Evite colocar muchos botones u opciones que confundan al usuario es mejor ser sencillo y conciso al momento de realizar la interfaz.
5.- Comience por hacer programas sencillos en los que se ingresen números, se seleccione un botón y devuelva un resultado, con el tiempo podrá ir agregando más cuestiones como limpiar datos o guardar los mismos.
 
Estos fueron algunos consejos que me han ayudado para realizar los programas que hay en el blog, sé que me falta mucho camino que recorrer pero sigo buscando formas de mejorar. Por último, no olvide que la práctica hace al maestro, no deje de intentar lo que se proponga y continué aprendiendo.

sábado, 12 de noviembre de 2022

Flujo Miltifásico Pozo de Agua Código

En esta entrada se muestra el código del cálculo de las caídas de presión en el pozo de agua.
 
import math as MATE
  
# Datos
 
Indice_Produccion = 15      # bpd/psia
Diametro_TP = 2             # in
Presion_Fondo_F_Pozo = 800  # psi
Presion_Fondo_E_Pozo = 850  # psi
Presion_Cabeza_Pozo = 0     # psi
Viscosidad_Agua = 1         # cp
Rugosidad = 0.0006          # in
Densidad_Agua = 1           #
Longitud_Pozo = 250         # m
Angulo_Pozo = 90            # ° es un pozo vertical
Gasto_Agua = 0              # bpd
 
Longitud_Pozo = Longitud_Pozo*3.2808
Angulo_Pozo = MATE.radians(Angulo_Pozo)
 
# Cálculo de los pozos
 
if Presion_Cabeza_Pozo == 0:
 
    Gasto_Agua = Indice_Produccion*(Presion_Fondo_E_Pozo-Presion_Fondo_F_Pozo)
 
elif Presion_Cabeza_Pozo != 0:
 
    Gasto_Agua = Indice_Produccion*(Presion_Fondo_E_Pozo-Presion_Cabeza_Pozo)
 
else:
 
    print("La opción no existe")
 
Gradiente_Elevacion = 0.433*Densidad_Agua*Longitud_Pozo*MATE.sin(Angulo_Pozo)
 
Reynolds = 92.2*(Gasto_Agua*Densidad_Agua)/(Diametro_TP*Viscosidad_Agua)
 
fD0 = 0.01
 
fD0 = (-2*MATE.log10((Rugosidad/(3.715*Diametro_TP))+(2.514/(Reynolds*MATE.sqrt(fD0)))))**-2
 
Error = 1
 
while Error > 1E-20:
 
    fD = (-2*MATE.log10((Rugosidad/(3.715*Diametro_TP))+(2.514/(Reynolds*MATE.sqrt(fD0)))))**-2
 
    Error = abs(fD0-fD)/(fD0)
 
    fD0 = fD
 
Gradiente_Friccion = ((1.147*10**-5)*fD0*1*(Gasto_Agua**2)*Longitud_Pozo)/(Diametro_TP**5)
 
Gradiente_Total = Gradiente_Elevacion+Gradiente_Friccion
 
if Presion_Cabeza_Pozo == 0:
 
    Presion_Cabeza_Pozo = Presion_Fondo_F_Pozo-Gradiente_Total
 
elif Presion_Cabeza_Pozo != 0:
 
    Presion_Fondo_F_Pozo = Presion_Cabeza_Pozo+Gradiente_Total
 
else:
 
    print("La opción no existe")
 
print(Presion_Cabeza_Pozo,Presion_Fondo_F_Pozo,Gradiente_Total,Gradiente_Elevacion,Gradiente_Friccion,Gasto_Agua)  

miércoles, 2 de noviembre de 2022

Flujo Multifásico Pozo de Agua

En esta entrada se aborda el pozo de agua, el cual es uno de los pozos más sencillos que hay debido a las propiedades del agua. En la presente entrada se trae un ejemplo con el cual explicar cómo se calculan las caídas de presión en un pozo de agua. Para este ejemplo se tienen las siguientes consideraciones: Índice de producción de 15 bpd/psia, un diámetro de 2 pulgadas, presión de fondo fluyendo de 800 psi, presión de fondo estática de 850 psi, la viscosidad se considera como un cp, la rugosidad de la tubería es de 0.0006 pulgadas, el pozo tiene una longitud de 250 m y un ángulo de 90 grados. Con los datos anteriores obtener la presión en la cabeza del pozo.

Para comenzar se debe de obtener el Gasto del agua.


Se continúa, con el cálculo del gradiente de elevación.


Continuando, se calcula con el número de Reynolds.


Una vez obtenidos los parámetros anteriores se procede a calcular el factor de fricción, para ello se propone un factor de fricción inicial de 0.01.


Con este factor se obtiene el factor de fricción cero, con este factor de fricción se ingresa a un proceso iterativo en el cual repetirá hasta el error sea menor a 1*10^-6.



Si no se cumple con error el factor de fricción se convierte en el factor de fricción cero con el cual se vuelve entrar al proceso iterativo.


Con el factor de fricción se calcula el gradiente de fricción.


Con ambos gradientes se obtiene el gradiente total de la caída de presión en el pozo.


Para finalizar se calcula la presión en la cabeza del pozo.


Se debe de tener cuidado con las unidades al momento de trabajar con las ecuaciones anteriores, además se puede despejar las variables con el fin de obtener otros parámetros.