Ejemplo n.º 1
0
def velocity_x(x, y):
    if experiment == 1:
        val = x * x * (1. - x)**2 * (2. * y - 6. * y * y + 4 * y * y * y)
    if experiment == 2:
        val = 0.
    if experiment == 3:
        val = 0.
    if experiment == 4:
        val = 0
    if experiment == 5:
        val, xxx, xxxx = solkz.SolKzSolution(x, y)
    if experiment == 6:
        val = 0
    if experiment == 7:
        val = (2 * y - 1) * x * (1 - x)
    if experiment == 8:
        val = 0
    if experiment == 9:
        val = x + x**2 - 2 * x * y + x**3 - 3 * x * y**2 + x**2 * y
    if experiment == 10:
        val = 0
    if experiment == 11:
        val = 0
    if experiment == 12:
        val = 0
    if experiment == 13:
        val, xxx, xxx = solcx.SolCxSolution(x, y)
    if experiment == 14:
        val, xxx, xxx = solvi.solution(x, y)
    return val
Ejemplo n.º 2
0
def velocity_y(x, y):
    if experiment == 1:
        val = -y * y * (1. - y)**2 * (2. * x - 6. * x * x + 4 * x * x * x)
    if experiment == 2:
        val = 0.
    if experiment == 3:
        val = 0.
    if experiment == 4:
        val = 0
    if experiment == 5:
        xxx, val, xxxx = solkz.SolKzSolution(x, y)
    if experiment == 6:
        val = 0
    if experiment == 7:
        val = -(2 * x - 1) * y * (1 - y)
    if experiment == 8:
        val = 0
    if experiment == 9:
        val = -y - 2 * x * y + y**2 - 3 * x**2 * y + y**3 - x * y**2
    if experiment == 10:
        val = 0
    if experiment == 11:
        val = 0
    if experiment == 12:
        val = 0
    if experiment == 13:
        xxx, val, xxx = solcx.SolCxSolution(x, y)
    if experiment == 14:
        xxx, val, xxx = solvi.solution(x, y)
    return val
Ejemplo n.º 3
0
def pressure(x, y):
    if experiment == 1:
        val = x * (1. - x) - 1. / 6.
    if experiment == 2:
        val = 0.
    if experiment == 3:
        val = 0.
    if experiment == 4:
        val = 0.5 - y
    if experiment == 5:
        xxx, xxxx, val = solkz.SolKzSolution(x, y)
    if experiment == 6:
        val = 0
    if experiment == 7:
        val = 2 * x * (1 - 2 * y)
    if experiment == 8:
        val = -32000 * (y - Ly / 2)
    if experiment == 9:
        val = x * y + x + y + x**3 * y**2 - 4. / 3.
    if experiment == 10:
        val = 0
    if experiment == 11:
        val = 0
    if experiment == 12:
        val = 0
    if experiment == 13:
        xxx, xxx, val = solcx.SolCxSolution(x, y)
    if experiment == 14:
        xxx, xxx, val = solvi.solution(x, y)
    return val
Ejemplo n.º 4
0
def velocity_y(x, y):
    if experiment == 1:
        val = -y * y * (1. - y)**2 * (2. * x - 6. * x * x + 4 * x * x * x)
    if experiment == 2:
        ui, val, pi = solkz.SolKzSolution(x, y)
    if experiment == 3:
        ui, val, pi = solcx.SolCxSolution(x, y)
    return val
Ejemplo n.º 5
0
def velocity_x(x, y):
    if experiment == 1:
        val = x * x * (1. - x)**2 * (2. * y - 6. * y * y + 4 * y * y * y)
    if experiment == 2:
        val, vi, pi = solkz.SolKzSolution(x, y)
    if experiment == 3:
        val, vi, pi = solcx.SolCxSolution(x, y)
    return val
Ejemplo n.º 6
0
def pressure(x, y):
    if experiment == 1:
        val = x * (1. - x) - 1. / 6.
    if experiment == 2:
        ui, vi, val = solkz.SolKzSolution(x, y)
    if experiment == 3:
        ui, vi, val = solcx.SolCxSolution(x, y)
    return val
Ejemplo n.º 7
0
def pressure(x, y):
    val = 0
    if benchmark == 1:
        val = x * (1. - x) - 1. / 6.
    if benchmark == 4:
        val = x * y + x + y + x**3 * y**2 - 4 / 3
    if benchmark == 5:
        val = 0
    if benchmark == 6:
        ui, vi, val = solvi.solution(x, y)
    if benchmark == 7:
        ui, vi, val = solcx.SolCxSolution(x, y)
    return val
Ejemplo n.º 8
0
def velocity_y(x, y):
    if bench == 1:
        return c(x) * d(y)
    if bench == 4:
        ui, vi, pi = solcx.SolCxSolution(x, y)
        return vi
    if bench == 5:
        ui, vi, pi = solkz.SolKzSolution(x, y)
        return vi
    if bench == 6:
        ui, vi, pi = solvi.solution(x, y)
        return vi
    if bench == 9:
        return -y - 2 * x * y + y**2 - 3 * x**2 * y + y**3 - x * y**2
Ejemplo n.º 9
0
def velocity_x(x, y):
    if bench == 1:
        return a(x) * b(y)
    if bench == 4:
        ui, vi, pi = solcx.SolCxSolution(x, y)
        return ui
    if bench == 5:
        ui, vi, pi = solkz.SolKzSolution(x, y)
        return ui
    if bench == 6:
        ui, vi, pi = solvi.solution(x, y)
        return ui
    if bench == 9:
        return x + x**2 - 2 * x * y + x**3 - 3 * x * y**2 + x**2 * y
Ejemplo n.º 10
0
def velocity_x(x,y,case):
    if case==1:
       val=x*x*(1.-x)**2*(2.*y-6.*y*y+4*y*y*y)
    if case==2:
       val=x + x**2 - 2*x*y + x**3 -3*x*y**2 + x**2*y
    if case==3:
       val=0.
    if case==4:
       ui,vi,pi=solcx.SolCxSolution(x,y) 
       val=ui
    if case==5:
       ui,vi,pi=solvi.solution(x,y) 
       val=ui
    return val
Ejemplo n.º 11
0
def pressure(x,y,case):
    if case==1:
       val=x*(1.-x)-1./6.
    if case==2:
       val = x*y+x+y+x**3*y**2 -4./3.
    if case==3:
       val=0.
    if case==4:
       ui,vi,pi=solcx.SolCxSolution(x,y) 
       val=pi
    if case==5:
       ui,vi,pi=solvi.solution(x,y) 
       val=pi
    return val
Ejemplo n.º 12
0
def velocity_y(x,y,case):
    if case==1:
       val=-y*y*(1.-y)**2*(2.*x-6.*x*x+4*x*x*x)
    if case==2:
       val = -y - 2*x*y +y**2 - 3*x**2*y + y**3 -x*y**2
    if case==3:
       val=0.
    if case==4:
       ui,vi,pi=solcx.SolCxSolution(x,y) 
       val=vi
    if case==5:
       ui,vi,pi=solvi.solution(x,y) 
       val=vi
    return val
Ejemplo n.º 13
0
def pressure(x, y):
    if bench == 1:
        return x * (1 - x) * (1 - 2 * y)
    if bench == 4:
        ui, vi, pi = solcx.SolCxSolution(x, y)
        return pi
    if bench == 5:
        ui, vi, pi = solkz.SolKzSolution(x, y)
        return pi
    if bench == 6:
        ui, vi, pi = solvi.solution(x, y)
        return pi
    if bench == 9:
        return x * y + x + y + x**3 * y**2 - 4 / 3
Ejemplo n.º 14
0
def pressure(x, y, experiment):
    if experiment == 1:
        val = x * (1. - x) - 1. / 6.
    if experiment == 2:
        val = 0
    if experiment == 3:
        val = x * y + x + y + x**3 * y**2 - 4. / 3.
    if experiment == 4:
        val = 10 * ((x - 1. / 2.)**3 * y**2 + (1 - x)**3 * (y - 1. / 2.)**3)
    if experiment == 5:
        val = 1. - 2 * x
    if experiment == 6:
        u, v, p = solcx.SolCxSolution(x, y)
        val = p
    return val
Ejemplo n.º 15
0
def velocity_x(x, y, experiment):
    if experiment == 1:
        val = x * x * (1. - x)**2 * (2. * y - 6. * y * y + 4 * y * y * y)
    if experiment == 2:
        val = 0
    if experiment == 3:
        val = x + x**2 - 2 * x * y + x**3 - 3 * x * y**2 + x**2 * y
    if experiment == 4:
        val = 200 * x**2 * (1 - x)**2 * y * (1 - y) * (1 - 2 * y)
    if experiment == 5:
        val = y * (1. - y)
    if experiment == 6:
        u, v, p = solcx.SolCxSolution(x, y)
        val = u
    return val
Ejemplo n.º 16
0
def velocity_y(x, y, experiment):
    if experiment == 1:
        val = -y * y * (1. - y)**2 * (2. * x - 6. * x * x + 4 * x * x * x)
    if experiment == 2:
        val = 0
    if experiment == 3:
        val = -y - 2 * x * y + y**2 - 3 * x**2 * y + y**3 - x * y**2
    if experiment == 4:
        val = -200 * x * (1 - x) * (1 - 2 * x) * y**2 * (1 - y)**2
    if experiment == 5:
        val = 0.
    if experiment == 6:
        u, v, p = solcx.SolCxSolution(x, y)
        val = v
    return val
Ejemplo n.º 17
0
def velocity_y(x, y):
    val = 0
    if benchmark == 1:
        val = -y * y * (1. - y)**2 * (2. * x - 6. * x * x + 4 * x * x * x)
    if benchmark == 4:
        val = -y - 2 * x * y + y**2 - 3 * x**2 * y + y**3 - x * y**2
    if benchmark == 5:
        val = 0
    if benchmark == 6:
        ui, val, pi = solvi.solution(x, y)
    if benchmark == 7:
        ui, val, pi = solcx.SolCxSolution(x, y)
    if benchmark == 9:
        val = 0
    return val
Ejemplo n.º 18
0
def velocity_x(x, y):
    val = 0
    if benchmark == 1:
        val = x * x * (1. - x)**2 * (2. * y - 6. * y * y + 4 * y * y * y)
    if benchmark == 4:
        val = x + x**2 - 2 * x * y + x**3 - 3 * x * y**2 + x**2 * y
    if benchmark == 5:
        val = 0
    if benchmark == 6:
        val, vi, pi = solvi.solution(x, y)
    if benchmark == 7:
        val, vi, pi = solcx.SolCxSolution(x, y)
    if benchmark == 9 and y > 0.5:
        val = 16 * x**2 * (1 - x)**2
    return val
Ejemplo n.º 19
0
#################################################################

#p[:]-=np.sum(p)/nel

#print("p (m,M) %.4f %.4f " %(np.min(p),np.max(p)))

#################################################################
# compute error
#################################################################

error_u = np.empty(nnp, dtype=np.float64)
error_v = np.empty(nnp, dtype=np.float64)
error_p = np.empty(nel, dtype=np.float64)

for i in range(0, nnp):
    ui, vi, pi = solcx.SolCxSolution(x[i], y[i])
    error_u[i] = u[i] - ui
    error_v[i] = v[i] - vi
#end for

for i in range(0, nel):
    ui, vi, pi = solcx.SolCxSolution(xc[i], yc[i])
    error_p[i] = p[i] - pi
#end for

#np.savetxt('error_pressure.ascii',np.array([xc,yc,error_p]).T,header='# xc,yc,p')

errv = 0.
errp = 0.
for iel in range(0, nel):
    for iq in [-1, 1]:
Ejemplo n.º 20
0
            icon[4, counter] = (i) * 2 + 2 + (j) * 2 * nnx - 1
            icon[5, counter] = (i) * 2 + 3 + (j) * 2 * nnx + nnx - 1
            icon[6, counter] = (i) * 2 + 2 + (j) * 2 * nnx + nnx * 2 - 1
            icon[7, counter] = (i) * 2 + 1 + (j) * 2 * nnx + nnx - 1
            icon[8, counter] = (i) * 2 + 2 + (j) * 2 * nnx + nnx - 1
            counter += 1

#################################################################
# assign nodal field values
#################################################################
u = np.empty(nnp, dtype=np.float64)
v = np.empty(nnp, dtype=np.float64)
p = np.empty(nnp, dtype=np.float64)

for i in range(0, nnp):
    u[i], v[i], p[i] = solcx.SolCxSolution(x[i], y[i])

#################################################################

dt = CFL_nb * min(Lx / nelx, Ly / nely) / np.max(np.sqrt(u**2 + v**2))

print('     -> dt= %.3e ' % dt)

#################################################################
# marker setup
#################################################################
start = time.time()

nmarker_per_element = nmarker_per_dim**2
nmarker = nel * nmarker_per_element