コード例 #1
0
        aN = dN + cN
        aS = dS + cS
        aP = dP + cP

        return np.array([-aS, -aW, aP, -aE, -aN])


if __name__ == '__main__':

    from utils.displayInfo import printInfo
    from geo.line import Line

    N = 6

    rod = Line(1.0)
    malla = rod.constructMesh(N)
    ivx, _, _ = malla.bounds(bi=1, ei=N - 1)
    su = np.ones(ivx)
    vel = np.ones(ivx)
    laplace = sAdvDiff1D(malla, su)
    laplace.setVelocity(vel)
    printInfo(Descr='Testing Diffusion1D', dx=laplace.dx, vx=malla.vx)
    print(laplace.calc(3))
    print(laplace.source(su))

#    from geo.Rectangle import Rectangle
#    cuadro = Rectangle(1,1)
#    malla2 = cuadro.constructMesh(N,N)
#    ivx, ivy, _ = malla2.bounds(bi = 1, ei = N-1,bj = 1, ej = N-1)
#    su = np.ones((ivy, ivx))
#    laplace2 = Diffusion2D(malla2, su)
コード例 #2
0
        dS = self.__Gamma * self.dx / self.dy                
        dP = dE + dW + dN + dS #- self.__Sp

        return np.array([-dS, -dW, dP, -dE, -dN])
    
#----------------------- TEST OF THE MODULE ----------------------------------
if __name__ == '__main__':

    from utils.displayInfo import printInfo        
    from geo.line import Line
    from geo.rectangle import Rectangle

    N = 6 # Nodos
    
    barra = Line(1.0)
    malla = barra.constructMesh(N)
    ivx, _, _ = malla.bounds(bi = 1, ei = N-1)
    su = np.ones(ivx)
    laplace = sDiffusion1D(malla, su)
    laplace.Gamma = 2.0
    printInfo(Descr = 'Testing Diffusion1D', 
              dx = laplace.dx, 
              vx = malla.vx)    
    print(laplace.calc(3))
    print(laplace.source(su))
    
    cuadro = Rectangle(1,1)
    malla2 = cuadro.constructMesh(N,N)
    ivx, ivy, _ = malla2.bounds(bi = 1, ei = N-1, bj = 1, ej = N-1)
    su = np.ones((ivy, ivx))
    laplace2 = sDiffusion2D(malla2, su) 
コード例 #3
0
Gamma = 0.001  # kg / m.s
phi0 = 1  #
phiL = 0  #
N = 200  # Número de nodos
dt = 0.002  # Paso de tiempo
Tmax = 1.0
Nmax = int(Tmax / dt)
#
# Definición del dominio y condiciones de frontera
#
linea = Line(L)
linea.boundaryConditions(dirichlet={'LEFT': phi0, 'RIGHT': phiL})
#
# Creamos la malla y obtenemos datos importantes
#
malla = linea.constructMesh(N)
ivx, _, _ = malla.bounds(bi=1, ei=N - 1)
nx = malla.nx  # Número de nodos
nvx = malla.vx  # Número de volúmenes
delta = malla.dx  # Tamaño de los volúmenes
#
# Se construye el arreglo donde se guardará la solución
#
phi = np.zeros(nvx + 2)  # El arreglo contiene ceros
phi[0] = phi0  # Condición de frontera izquierda
phi[-1] = phiL  # Condición de frontera derecha
#
# Imprimimos los datos del problema (nicely)
#
printInfo(Longitud=L,
          phi_A=phi0,
コード例 #4
0
N  = 101 # 101 Número de nodos
TA = 15 # °C 
TB = 750 # °C 
dt = 3600*24*365 # Paso de tiempo:  1 año [s]
Nspeedup = 1000
dt *= Nspeedup
Tmax = int(250000 / Nspeedup) # Number of time steps.
#
# Definición del dominio y condiciones de frontera
#
reservoir = Line(longitud)
reservoir.boundaryConditions(dirichlet = {'RIGHT':TB, 'LEFT':TA})
#
# Creamos la malla y obtenemos datos importantes
#
malla     = reservoir.constructMesh(N)
ivx, _, _ = malla.bounds(bi = 1, ei = N-1)
nx        = malla.nx    # Número de nodos
nvx       = malla.vx    # Número de volúmenes
dx        = malla.dx    # Tamaño de los volúmenes
#
# Depth coordinates
#
z, _, _ = malla.constructMeshFVM()
#
# Se construye el arreglo donde se guardará la solución
#
#T = np.zeros(nvx) # El arreglo contiene ceros
#T[0]  = TA        # Condición de frontera izquierda
#T[-1] = TB        # Condición de frontera derecha
#
コード例 #5
0
ファイル: 01_2_cond_non_sta.py プロジェクト: luiggix/pynoxtli
longitud = 0.5  # metros
TA = 100  # °C
TB = 500  # °C
k = 1000  # W/m.K
N = 6  # Número de nodos
dt = 0.00001  # Paso de tiempo
Tmax = 20  # Número de pasos en el tiempo
#
# Definición del dominio y condiciones de frontera
#
barra = Line(longitud)
barra.boundaryConditions(dirichlet={'RIGHT': TB, 'LEFT': TA})
#
# Creamos la malla y obtenemos datos importantes
#
malla = barra.constructMesh(N)  # Se construye el objeto para la malla
ivx, _, _ = malla.bounds(bi=1, ei=N - 1)  # Grados de libertad
nx = malla.nx  # Número de nodos
nvx = malla.vx  # Número de volúmenes
delta = malla.dx  # Tamaño de los volúmenes
#
# Se construye el arreglo donde se guardará la solución
#
T = np.zeros(nvx + 2)  # Condición inicial T = 0
T[0] = TA  # Condición de frontera izquierda
T[-1] = TB  # Condición de frontera derecha
#
# Imprimimos los datos del problema
#
printInfo(Longitud=longitud,
          Temperatura_A=TA,