Пример #1
0
    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) 
    printInfo(Descr = 'Testing Diffusion2D', 
              dx = laplace2.dx, 
              dy = laplace2.dy,
              vx = malla.vx, 
              vy = malla.vy)    
    print(laplace2.calc(3,4))
    print(laplace2.source(su))    
#----------------------- TEST OF THE MODULE ----------------------------------
Пример #2
0
#
# Datos del problema
#
longitud_x = 1.0  # meters
longitud_y = 2.0
TL = 0  # °C
TR = 0  # °C
TB = 0  # °C
TT = 1  # °C
k = 1  # W/m.K
Nx = 11  # Número de nodos
Ny = 21
#
# Definición del dominio y condiciones de frontera
#
placa = Rectangle(longitud_x, longitud_y)
placa.boundaryConditions(dirichlet={
    'LEFT': TL,
    'RIGHT': TR,
    'BOTTOM': TB,
    'TOP': TT
})
#
# Creamos la malla y obtenemos datos importantes
#
malla = placa.constructMesh(Nx, Ny)
ivx, ivy, _ = malla.bounds(bi=1, ei=Nx - 1, bj=1, ej=Ny - 1)
nx = malla.nx  # Número de nodos
ny = malla.ny  # Número de nodos
nvx = malla.vx  # Número de volúmenes
nvy = malla.vy  # Número de volúmenes
    
par_contour = {'cmap':'cool', 'levels':20}
#
# Datos del problema
#
longitud_x = 1.0 # meters
longitud_y = 1.0
k  = 0.01 #0.001 # W/m.K
Nx = 41 # Número de nodos 81 x 81
Ny = 41
dt = 0.0001
Tmax = 400 # 3000
#
# Definición del dominio y condiciones de frontera
#
placa = Rectangle(longitud_x, longitud_y)
placa.boundaryConditions(dirichlet = {'LEFT':-0.0, 'RIGHT':0.0}, neumman ={'BOTTOM':0, 'TOP':0})
#
# Creamos la malla y obtenemos datos importantes
#
malla     = placa.constructMesh(Nx, Ny)
ivx, ivy, _ = malla.bounds(bi = 1, ei = Nx-1,
                           bj = 1, ej = Ny-1)
nx  = malla.nx    # Número de nodos
ny  = malla.ny    # Número de nodos
nvx = malla.vx    # Número de volúmenes
nvy = malla.vy    # Número de volúmenes
dx  = malla.dx    # Tamaño de los volúmenes
dy  = malla.dy    # Tamaño de los volúmenes
xv, yv, _ = malla.coordinatesMeshFVM()
xd, yd, _ = malla.coordinatesMeshFDM()