예제 #1
0
def matrix(dt, dx, rho, Cv, k_t):
    Idx = tt.eye(2, 3*dx) # identity tensor
    Idt = tt.eye(2, dt)
    
    delta = tt.qlaplace_dd([dx, dx, dx]) # laplasian
    
    support =  tt.delta(2, dt, center = 1) # first time derivative
    deriv = tt.Toeplitz(support,kind='L') - tt.Toeplitz(support,kind='L').T
    deriv = deriv.round(1e-6)
    
    return rho * Cv * tt.kron(Idx, deriv) - k_t * tt.kron(delta, Idt)
예제 #2
0
#%%
from __future__ import print_function, absolute_import, division
import sys
sys.path.append('../')
import tt
from tt.amen import amen_solve
""" This program test two subroutines: matrix-by-vector multiplication
    and linear system solution via AMR scheme"""

d = 12
A = tt.qlaplace_dd([d])
x = tt.ones(2,d)
y = amen_solve(A,x,x,1e-6)

#%%

c = tt.multifuncrs2([a, b], lambda x: np.sum(x, axis=1), eps=1E-6)

y = amen_solve(A,x,x,1e-6)


# %%
y
# %%
A
# %%
x
# %%
z=tt.matvec(A,x)
# %%
z
예제 #3
0
파일: test_kls.py 프로젝트: jaidevd/ttpy
import numpy as np
from math import pi,sqrt
import tt
from tt.ksl import ksl
import time
from scipy.linalg import expm
d = 6
f = 1
A = tt.qlaplace_dd([d]*f)
n = [2]*(d*f)
n0 = 2**d
x = np.arange(1,n0+1)*1.0/(n0+1)
x = np.exp(-10*(x-0.5)**2)
x = tt.tensor(x.reshape([2]*d,order='F'),1e-8)
#x = tt.ones(2,d)
tau = 1
tau1 = 1
y = x.copy()
ns_fin = 8
tau0 = 1.0
tau_ref = tau0/2**ns_fin
for i in xrange(2**ns_fin):  
    y=ksl(-1.0*A,y,tau_ref)
yref = y.copy()
tau = 5e-2
res = ""
ns = 2
while ( ns <= ns_fin ):
    tau = tau0/(2**ns) 
    y = x.copy()
    for i in xrange(2**ns):
예제 #4
0
def matrix(dx, rho, Cv, k_t):
    Idx = tt.eye(2, 3*dx) # identity tensor
    
    delta = tt.qlaplace_dd([dx, dx, dx]) # laplasian
    
    return - k_t/(rho*Cv) * delta
예제 #5
0
파일: test_ksl2.py 프로젝트: jaidevd/ttpy
import numpy as np
from math import pi,sqrt
import tt
from tt.ksl import ksl
import time
from scipy.linalg import expm
d = 6
f = 1
A = tt.qlaplace_dd([d]*f)*((2**d+1))**2
#A = tt.eye(2,d)
n = [2]*(d*f)
n0 = 2**d
t = np.arange(1,n0+1)*1.0/(n0+1)
x = np.exp(-20*(t-0.5)**2)
#x = np.sin(sqrt(2.0)*pi*t)
x = tt.tensor(x.reshape([2]*d,order='F'),1e-2)
#x = tt.ones(2,d)
#x = x + 0 * tt.rand(2,d,2)
tau = 1
tau1 = 1
y = x.copy()
ns_fin = 8
tau0 = 1.0
tau_ref = tau0/2**ns_fin
import matplotlib.pyplot as plt
plt.ion()
fig = plt.figure()
ax = fig.add_subplot(111)
#tau_ref = 0.0
line1, = ax.plot(np.real(y.full().flatten("F")))
ax.hold("True")