new v
This commit is contained in:
parent
8817ed4b4c
commit
639d1cdd74
@ -146,6 +146,17 @@ def plot_parameters(dat, input_file, deparameterize=False, ref=None):
|
||||
|
||||
|
||||
for i in range(len(ids)):
|
||||
|
||||
cur_key = ids[i]
|
||||
rec_value = np.round(2**theta[-1, idx]*current_val[i],2)
|
||||
curve = 2**theta[:, idx]*current_val[i]
|
||||
std_down = 2**(-np.sqrt(P[:, idx, idx]))*curve
|
||||
std_up = 2**np.sqrt(P[:, idx, idx])*curve
|
||||
dash_curve = true_values[ids[i]] + t*0
|
||||
|
||||
|
||||
|
||||
|
||||
if ids_type[i] == 'dirichlet':
|
||||
fig3, axes3 = plt.subplots(1,1,figsize=(12,5))
|
||||
axes3.plot(t, curve , '-', color=col_,label= legends_ + '= ' + str(rec_value) + '/' + str(true_values[cur_key]) + '$', linewidth = 4)
|
||||
@ -159,17 +170,9 @@ def plot_parameters(dat, input_file, deparameterize=False, ref=None):
|
||||
axes3.set_box_aspect(1/4)
|
||||
plt.xticks(fontsize=28)
|
||||
plt.yticks(fontsize=28)
|
||||
plt.savefig('U.png')
|
||||
plt.close(fig3)
|
||||
plt.savefig('results/' + name_file + '/U.png')
|
||||
else:
|
||||
|
||||
cur_key = ids[i]
|
||||
rec_value = np.round(2**theta[-1, idx]*current_val[i],2)
|
||||
curve = 2**theta[:, idx]*current_val[i]
|
||||
std_down = 2**(-np.sqrt(P[:, idx, idx]))*curve
|
||||
std_up = 2**np.sqrt(P[:, idx, idx])*curve
|
||||
dash_curve = true_values[ids[i]] + t*0
|
||||
|
||||
axes1.plot(t, curve , '-', color=col_,label= legends_ + '= ' + str(rec_value) + '/' + str(true_values[cur_key]) + '$', linewidth = 3)
|
||||
axes1.fill_between(t, std_down, std_up, alpha=0.3, color=col_)
|
||||
axes1.plot(t, dash_curve , color=col_,ls='--',linewidth = 3)
|
||||
@ -202,7 +205,7 @@ def plot_parameters(dat, input_file, deparameterize=False, ref=None):
|
||||
axes1.set_ylabel(r'$R_d$',fontsize=36)
|
||||
axes1.legend(fontsize=36,loc='upper right')
|
||||
axes1.set_xlim([-0.01,0.81])
|
||||
axes1.set_ylim([1700,45000])
|
||||
axes1.set_ylim([1700,55000])
|
||||
axes1.set_box_aspect(1/2)
|
||||
plt.xticks(fontsize=28)
|
||||
plt.yticks(fontsize=28)
|
||||
@ -220,7 +223,7 @@ def plot_parameters(dat, input_file, deparameterize=False, ref=None):
|
||||
axes2.set_xlabel(r'$t (s)$',fontsize=36)
|
||||
fig2.savefig('C.png')
|
||||
|
||||
fig1.savefig('Rd.png')
|
||||
fig1.savefig('results/' + name_file + '/Rd.png')
|
||||
if not is_ipython():
|
||||
plt.show()
|
||||
|
||||
|
@ -33,5 +33,7 @@ ax1.legend(fontsize=20, loc= 'upper right')
|
||||
ax1.tick_params(axis='both', which='major', labelsize=22)
|
||||
ax1.set_yticks([])
|
||||
ax1.set_xlabel('$u$',fontsize=font_size)
|
||||
ax1.set_ylabel('$J(u)$',fontsize=font_size)
|
||||
|
||||
plt.show()
|
||||
fig1.savefig('functionals.png', dpi=500, bbox_inches='tight')
|
@ -10,9 +10,6 @@ from matplotlib import rc
|
||||
rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})
|
||||
rc('text', usetex=True)
|
||||
|
||||
|
||||
fig1, ax1 = plt.subplots(1,1,figsize=(8, 5))
|
||||
lwidth = 2
|
||||
font_size = 28
|
||||
|
||||
################ Flow Parameters
|
||||
@ -23,148 +20,150 @@ mu = 0.5
|
||||
fac = 1
|
||||
nr = 50
|
||||
VENC = 0.6
|
||||
VENC2 = 0.4
|
||||
|
||||
gamma = 267.513e6 # rad/Tesla/sec Gyromagnetic ratio for H nuclei
|
||||
Bo = 1.5 # Tesla Magnetic Field Strenght
|
||||
TE = 5e-3 # Echo-time
|
||||
M = np.ones(nr) # Magnetization
|
||||
phi0 = gamma*Bo*TE # Reference phase
|
||||
phi02 = phi0%3.14
|
||||
M1 = np.pi/(gamma*VENC)
|
||||
ff = np.pi/(1000*gamma*M1)
|
||||
uv = np.arange(-4*VENC,4*VENC,ff)
|
||||
|
||||
|
||||
r = np.linspace(-Rd, Rd, nr)
|
||||
dr = r[2]-r[1]
|
||||
vmax = 1
|
||||
v = vmax/Rt**2*( Rt**2 - r**2 )*(np.abs(r)<Rt); # Poiseuille Formula
|
||||
ai = v/vmax
|
||||
|
||||
|
||||
theta = np.linspace(-4,5,2000)
|
||||
vtest = np.linspace(-5,5,2000)
|
||||
JF = 0*theta
|
||||
jv = 0*theta
|
||||
JV = 0*theta
|
||||
JV2 = 0*theta
|
||||
|
||||
Mjv = np.zeros([len(theta),len(ai)])
|
||||
Mjv2 = np.zeros([len(theta),len(ai)])
|
||||
jv0 = 0*theta
|
||||
JV0 = 0*theta
|
||||
Mjv0 = np.zeros([len(theta),len(ai)])
|
||||
#################################### MAGNETIZACION FROM V
|
||||
phiv = phi02 + v*np.pi/VENC
|
||||
phiv2 = phi02 + v*np.pi/VENC2
|
||||
|
||||
modv = np.ones(phiv.shape)
|
||||
M1 = modv*np.cos(phi02) + 1j*modv*np.sin(phi02)
|
||||
M2 = modv*np.cos(phiv) + 1j*modv*np.sin(phiv)
|
||||
M2_2 = modv*np.cos(phiv2) + 1j*modv*np.sin(phiv2)
|
||||
|
||||
|
||||
################################### FFT to COMPLEX M
|
||||
S1 = np.fft.fft(M1)
|
||||
S2 = np.fft.fft(M2)
|
||||
################################### SubSampling
|
||||
a1 = 0
|
||||
a2 = 1
|
||||
##### FILLED WITH ZEROS
|
||||
US1 = S1
|
||||
US2 = 0*S2
|
||||
US2[a1::a2] = S2[a1::a2]
|
||||
S2_2 = np.fft.fft(M2_2)
|
||||
MR1 = np.fft.ifft(S1)
|
||||
MR2 = np.fft.ifft(S2)
|
||||
MR2_2 = np.fft.ifft(S2_2)
|
||||
|
||||
|
||||
MR1 = np.fft.ifft(US1)
|
||||
MR2 = np.fft.ifft(US2)
|
||||
vrec1 = (np.angle(MR2)-phi02)*VENC/(np.pi)
|
||||
vrec2 = (np.angle(MR2_2)-phi02)*VENC2/(np.pi)
|
||||
|
||||
|
||||
|
||||
for k in range(len(ai)):
|
||||
# v func
|
||||
jv0 = 1-np.cos(np.pi*(vrec1[k]-vtest)/VENC)
|
||||
Mjv0[:,k] = jv0[:]
|
||||
JV0 = JV0 + jv0
|
||||
JV0 += jv0
|
||||
|
||||
for k in range(len(ai)):
|
||||
# theta func
|
||||
jv = 1-np.cos(np.pi*(vrec1[k]-theta*ai[k])/VENC)
|
||||
Mjv[:,k] = jv[:]
|
||||
JV = JV + jv
|
||||
JV += jv
|
||||
|
||||
NJV1 = JV*100/np.max(JV)
|
||||
jv2 = 1-np.cos(np.pi*(vrec2[k]-theta*ai[k])/VENC2)
|
||||
Mjv2[:,k] = jv2[:]
|
||||
JV2 += jv2
|
||||
|
||||
NJV1 = JV#*100/np.max(JV)
|
||||
NJV2 = JV2#*110/np.max(JV)
|
||||
MV = Mjv0
|
||||
V =NJV1
|
||||
V2 =NJV2
|
||||
|
||||
|
||||
|
||||
left, bottom, width, height = [0.2, 0.2, 0.1, 0.1]
|
||||
|
||||
fig = plt.figure(figsize=(12, 6), dpi=100)
|
||||
ax1 = plt.subplot(1,2,1)
|
||||
|
||||
ch1 = 20
|
||||
ch2 = 23
|
||||
color1 = 'xkcd:coral'
|
||||
color2 = 'xkcd:azure'
|
||||
color3 = 'darkviolet'
|
||||
lwidth = 2
|
||||
|
||||
|
||||
# Miniplot
|
||||
left, bottom, width, height = [0.18, 0.17, 0.1, 0.1]
|
||||
ax0 = fig.add_axes([left, bottom, width, height])
|
||||
ax0.plot(r,v,'b-')
|
||||
ax0.plot([r[ch1]],[v[ch1]],color='xkcd:coral',marker='o')
|
||||
ax0.plot([r[ch2]],[v[ch2]],color='xkcd:azure',marker='o')
|
||||
ax0.plot([r[ch1]],[v[ch1]],color=color1,marker='o')
|
||||
ax0.plot([r[ch2]],[v[ch2]],color=color2,marker='o')
|
||||
ax0.set_xlim((-1.5,1.5))
|
||||
ax0.set_xticks([])
|
||||
ax0.set_ylabel(r'$u$',fontsize=20)
|
||||
|
||||
|
||||
|
||||
|
||||
#for k in range(22,39):
|
||||
# if k!=ch1 and k!=ch2 and np.sum(MV[:,k])!=0:
|
||||
# ax1.plot(vtest, MV[:,k],color='xkcd:beige',alpha=0.8)
|
||||
|
||||
|
||||
|
||||
ax1.plot(vtest, MV[:,ch1],color='xkcd:coral',label='$v_1$')
|
||||
ax1.plot(vtest, MV[:,ch2],color='xkcd:azure',label='$v_2$')
|
||||
|
||||
# Figure 1
|
||||
#ax1.plot(vtest, MV[:,ch1],color='xkcd:coral',label='$v_1$')
|
||||
#ax1.plot(vtest, MV[:,ch2],color='xkcd:azure',label='$v_2$')
|
||||
ax1.plot(vtest, MV[:,ch1],color=color1,linewidth=lwidth)
|
||||
ax1.plot(vtest, MV[:,ch2],color=color2,linewidth=lwidth)
|
||||
|
||||
m1x = vtest[np.where( np.abs(MV[:,ch1] - np.min(MV[:,ch1]))<0.001 )]
|
||||
|
||||
m1y = np.min(MV[:,ch1])
|
||||
|
||||
m2x = vtest[np.where( np.abs(MV[:,ch2] - np.min(MV[:,ch2]))<0.001 )]
|
||||
#m2x = vtest[np.where(MV[:,ch2]==np.min(MV[:,ch2]))]
|
||||
m2y = np.min(MV[:,ch2])
|
||||
|
||||
|
||||
ax1.plot([m1x],[m1y],color='xkcd:coral',marker='o')
|
||||
ax1.plot([m2x],[m2y],color='xkcd:azure',marker='o')
|
||||
|
||||
|
||||
ax1.axvline(x=v[ch1], color='xkcd:coral', linestyle='--',label='$v_{1,true}$')
|
||||
ax1.axvline(x=v[ch2], color='xkcd:azure', linestyle='--',label='$v_{2,true}$')
|
||||
|
||||
|
||||
ax1.set_xlabel(r'$u$',fontsize=20)
|
||||
ax1.set_ylabel(r'$J_i(u)$',fontsize=20)
|
||||
#ax1.plot([m1x],[m1y],color='xkcd:coral',marker='o')
|
||||
#ax1.plot([m2x],[m2y],color='xkcd:azure',marker='o')
|
||||
ax1.axvline(x=v[ch1], color=color1, linestyle='--',label='$v_{1,true}$')
|
||||
ax1.axvline(x=v[ch2], color=color2, linestyle='--',label='$v_{2,true}$')
|
||||
ax1.set_ylabel('$individual \ functional$',fontsize=20)
|
||||
#ax1.legend(loc='upper right', bbox_to_anchor=(0.5, 1.05),ncol=2, fancybox=True, shadow=True,fontsize=15)
|
||||
ax1.set_yticks([])
|
||||
ax1.set_xticks([])
|
||||
ax1.tick_params(axis='both', which='major', labelsize=22)
|
||||
#ax1.set_xticks([])
|
||||
#ax1.legend(fontsize=20, loc= 'upper right')
|
||||
ax1.set_xlim((-3.5,3.5))
|
||||
ax1.set_ylim((-1.0,2.4))
|
||||
|
||||
ax2 = plt.subplot(1,2,2)
|
||||
ax2.plot(theta,V,'b-')
|
||||
ax2.axvline(x=1, color='k', linestyle='--')
|
||||
ax2.set_xlabel(r'$\theta$',fontsize=20)
|
||||
ax2.set_ylabel(r'$J_T(\theta)$',fontsize=20)
|
||||
plt.yticks([])
|
||||
ax2.set_xticks([])
|
||||
plt.title(r'$\theta_{true}=1$' + '\n' +'$venc < v_{max}$',fontsize=15)
|
||||
plt.xlim((-2,3))
|
||||
|
||||
plt.show()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ax1.plot(u, J1, color = 'orangered', label = '$venc = 0.9 u_{true}$', linestyle='-',linewidth=lwidth)
|
||||
#ax1.plot(u, J2, color = 'dodgerblue', label = '$venc = 0.6 u_{true}$', linestyle='-',linewidth=lwidth)
|
||||
#ax1.axvline(x=1,color = 'black',linewidth = lwidth , label = '$u_{true}$')
|
||||
|
||||
|
||||
ax1.legend(fontsize=20, loc= 'upper right')
|
||||
ax1.set_ylim((-1.1,2.9))
|
||||
ax1.set_xlabel('$u$',fontsize=font_size)
|
||||
ax1.tick_params(axis='both', which='major', labelsize=22)
|
||||
ax1.set_yticks([])
|
||||
ax1.set_xlabel('$u$',fontsize=font_size)
|
||||
ax1.text(-1,2.4,'$u_{true}$',fontsize=22, color = color1)
|
||||
ax1.text(1.1,2.4,'$u_{true}$',fontsize=22, color = color2)
|
||||
|
||||
|
||||
# Figure 2
|
||||
ax2 = plt.subplot(1,2,2)
|
||||
ax2.plot(theta,V,color=color3,linestyle = '-',linewidth=lwidth, label = '$venc=0.6u_{true}$')
|
||||
ax2.plot(theta,V2,color='darkorange',linestyle = '-',linewidth=lwidth, label = '$venc=0.4u_{true}$')
|
||||
|
||||
ax2.axvline(x=1, color='black', linestyle='--')
|
||||
ax2.set_xlabel(r'$\theta$',fontsize=font_size)
|
||||
ax2.set_ylabel(r'$total \ functional$',fontsize=20)
|
||||
plt.yticks([])
|
||||
ax2.legend(fontsize=17, loc= 'upper left',frameon=False)
|
||||
ax2.set_ylim((-3,20))
|
||||
ax2.text(1.2,17,r'$ \theta _{true}$',fontsize=22, color = 'black')
|
||||
ax2.tick_params(axis='both', which='major', labelsize=22)
|
||||
#ax2.set_xticks([])
|
||||
#plt.title(r'$\theta_{true}=1$' + '\n' +'$venc < v_{max}$',fontsize=15)
|
||||
plt.xlim((-3.5,3.5))
|
||||
|
||||
|
||||
|
||||
|
||||
plt.show()
|
||||
#fig1.savefig('functionals.png', dpi=500, bbox_inches='tight')
|
||||
fig.savefig('functionals2.png', dpi=500, bbox_inches='tight')
|
@ -5,11 +5,10 @@ fluid:
|
||||
density: 1.2
|
||||
dynamic_viscosity: 0.035
|
||||
stokes: False
|
||||
implicit_windkessel: True
|
||||
state_velocity: 'update'
|
||||
|
||||
io:
|
||||
write_path: 'results/updRz_Pb_wp0.5wm16.84'
|
||||
write_path: 'results/Pb_Hz2.3_Hz5.7'
|
||||
restart:
|
||||
path: '' # './projects/nse_coa3d/results/test_restart2/'
|
||||
time: 0
|
||||
@ -124,6 +123,13 @@ timemarching:
|
||||
checkpoint_dt: 0.03 # <= 0: only last; else value + last
|
||||
report: 1 # 0: print nothing, 1: print time step and writeout, 2: 1 + flux
|
||||
|
||||
windkessel:
|
||||
implicit: True
|
||||
# low rank update formulation can run in parallel.
|
||||
# note that fgmres or similar has to be selected for the pressure solve, as
|
||||
# matrix is not explicitly formed.
|
||||
low_rank_update: False
|
||||
|
||||
# solver setup
|
||||
fem:
|
||||
velocity_space: p1 # p1 p1b/p1+ p2
|
||||
@ -154,6 +160,7 @@ fem:
|
||||
|
||||
linear_solver:
|
||||
method: 'lu'
|
||||
#inputfile: 'input_files/fracstep_p-gmres_u-LU_WK-LRC.yaml'
|
||||
|
||||
estimation:
|
||||
boundary_conditions:
|
||||
@ -186,21 +193,35 @@ estimation:
|
||||
|
||||
measurements:
|
||||
-
|
||||
mesh: '/home/yeye/NuMRI/kalman/meshes/coaortaH3_leo2.0.h5'
|
||||
#mesh: './meshes/coaortaH1.h5'
|
||||
fe_degree: 1
|
||||
xdmf_file: 'measurements/aorta_zdir/Perturbation/Mg15V120/u_all.xdmf'
|
||||
file_root: 'measurements/aorta_zdir/Perturbation/Mg15V120/u{i}.h5'
|
||||
#xdmf_file: 'measurements/aorta_exp_dt1ms/u_all.xdmf'
|
||||
#file_root: 'measurements/aorta_exp_dt1ms/u{i}.h5'
|
||||
#mesh: '/home/yeye/NuMRI/kalman/meshes/coaortaH3_leo2.0.h5'
|
||||
mesh: '/home/yeye/Desktop/slices/slice_Hz2.3.h5'
|
||||
fe_degree: 0
|
||||
xdmf_file: 'measurements/slice_Hz2.3/Perturbation/Mg12V120/u_all.xdmf'
|
||||
file_root: 'measurements/slice_Hz2.3/Perturbation/Mg12V120/u{i}.h5'
|
||||
#xdmf_file: 'measurements/slice_Hz5.7/u_all.xdmf'
|
||||
#file_root: 'measurements/slice_Hz5.7/u{i}.h5'
|
||||
indices: 0 # indices of checkpoints to be processed. 0 == all
|
||||
velocity_direction: [0,0,1]
|
||||
noise_stddev: 16.84 # standard deviation of Gaussian noise
|
||||
#noise_stddev: 0 # standard deviation of Gaussian noise
|
||||
#noise_stddev: 22.39 # SNR 12 slice 5.7
|
||||
#noise_stddev: 15.76 # SNR 15 slice 5.7
|
||||
#noise_stddev: 8.75 # SNR 15 slice 2.3
|
||||
noise_stddev: 12.15 # SNR 12 slice 2.3
|
||||
-
|
||||
mesh: '/home/yeye/Desktop/slices/slice_Hz5.7.h5'
|
||||
fe_degree: 0
|
||||
xdmf_file: 'measurements/slice_Hz5.7/Perturbation/Mg12V120/u_all.xdmf'
|
||||
file_root: 'measurements/slice_Hz5.7/Perturbation/Mg12V120/u{i}.h5'
|
||||
indices: 0 # indices of checkpoints to be processed. 0 == all
|
||||
velocity_direction: [0,0,1]
|
||||
noise_stddev: 22.39 # SNR 12 slice 5.7
|
||||
|
||||
|
||||
roukf:
|
||||
particles: 'simplex' # unique or simplex
|
||||
observation_operator: 'postprocessing' #state or postprocessing
|
||||
reparameterize: True
|
||||
ODV_functional:
|
||||
MAG_functional:
|
||||
enable: False
|
||||
VENC: 138
|
||||
VENC: 61
|
||||
module_meas_file_root: 'measurements/aorta_zdir/Perturbation/Mg15V30/module/M{i}.h5'
|
@ -1,178 +0,0 @@
|
||||
|
||||
mesh: './meshes/coaortaH1.h5'
|
||||
# Physical parameters of the fluid
|
||||
fluid:
|
||||
density: 1.2
|
||||
dynamic_viscosity: 0.035
|
||||
stokes: False
|
||||
implicit_windkessel: True
|
||||
|
||||
io:
|
||||
write_path: 'results/aortaRR_Pa'
|
||||
restart:
|
||||
path: '' # './projects/nse_coa3d/results/test_restart2/'
|
||||
time: 0
|
||||
write_xdmf: True
|
||||
write_checkpoints: True
|
||||
write_hdf5_timeseries: False
|
||||
write_velocity: 'update' # update or tentative
|
||||
|
||||
boundary_conditions:
|
||||
-
|
||||
id: 2
|
||||
type: 'dirichlet'
|
||||
#value: ['0','0','-U*sin(DOLFIN_PI*t/Th)*(t<=Th) + (t<0.8)*(Th<t)*(U*DOLFIN_PI/Th*(t-Th)*exp(-(t-Th)*beta)) +
|
||||
# -U*sin(DOLFIN_PI*(t-0.8)/Th)*(t<= 0.8+Th )*(t>0.8) + (t<1.6)*(0.8+Th<t)*(U*DOLFIN_PI/Th*(t-0.8-Th)*exp(-(t-0.8-Th)*beta)) +
|
||||
# -U*sin(DOLFIN_PI*(t-1.6)/Th)*(t<= 1.6+Th )*(t>1.6) + (t<2.4)*(1.6+Th<t)*(U*DOLFIN_PI/Th*(t-1.6-Th)*exp(-(t-1.6-Th)*beta))' ]
|
||||
value: ['0','0','-U*sin(DOLFIN_PI*t/Th)*(t<=Th) + (Th<t)*(U*DOLFIN_PI/Th*(t-Th)*exp(-(t-Th)*beta))']
|
||||
parameters:
|
||||
U: 75
|
||||
Th: 0.36
|
||||
beta: 70
|
||||
t: 0
|
||||
-
|
||||
id: 1
|
||||
type: 'dirichlet'
|
||||
value: ['0','0','0']
|
||||
-
|
||||
id: 3
|
||||
type: 'windkessel'
|
||||
parameters:
|
||||
R_p: 200
|
||||
C: 0.0005
|
||||
R_d: 4800
|
||||
p0: 85
|
||||
conv: 1333.223874
|
||||
-
|
||||
id: 4
|
||||
type: 'windkessel'
|
||||
parameters:
|
||||
R_p: 480
|
||||
C: 0.00045
|
||||
R_d: 7200
|
||||
p0: 85
|
||||
conv: 1333.223874
|
||||
-
|
||||
id: 5
|
||||
type: 'windkessel'
|
||||
parameters:
|
||||
R_p: 520
|
||||
C: 0.00045
|
||||
R_d: 11520
|
||||
p0: 85
|
||||
conv: 1333.223874
|
||||
-
|
||||
id: 6
|
||||
type: 'windkessel'
|
||||
parameters:
|
||||
R_p: 520
|
||||
C: 0.00045
|
||||
R_d: 11520
|
||||
p0: 85
|
||||
conv: 1333.223874
|
||||
|
||||
timemarching:
|
||||
velocity_pressure_coupling: 'fractionalstep' # monolithic, fractionalstep
|
||||
|
||||
monolithic:
|
||||
timescheme: 'gmp' # generalized midpoint, steady FIXME TODO
|
||||
theta: 1 # 1: Euler, 0.5: implicit midpoint rule (one-legged)
|
||||
nonlinear:
|
||||
method: 'constant_extrapolation' # constant_extrapolation, linear_extrapolation, newton, picard, snes
|
||||
maxit: 20
|
||||
init_steps: 30
|
||||
use_aitken: 1 # 0: False, 1: Picard only, 2: all
|
||||
report: 1 # 0: None, 1: residuals, 2: residuals and energy (inflow/driving/forcing via ESSENTIAL Dbcs!)
|
||||
atol: 1.e-6 # note: dot required!!
|
||||
rtol: 1.e-16
|
||||
stol: 0.0
|
||||
|
||||
fractionalstep:
|
||||
scheme: 'CT' # CT, IPCS
|
||||
coupled_velocity: False # False faster, True needed if robin_bc implicit
|
||||
robin_bc_velocity_scheme: 'implicit' # explicit, semi-implicit, implicit
|
||||
transpiration_bc_projection: 'robin' # robin, dirichlet
|
||||
flux_report_normalize_boundary: 1
|
||||
|
||||
T: 0.8 # end time
|
||||
dt: 0.001
|
||||
write_dt: 0.03
|
||||
checkpoint_dt: 0.03 # <= 0: only last; else value + last
|
||||
report: 1 # 0: print nothing, 1: print time step and writeout, 2: 1 + flux
|
||||
|
||||
# solver setup
|
||||
fem:
|
||||
velocity_space: p1 # p1 p1b/p1+ p2
|
||||
pressure_space: p1 # p1 p0/dg0 dg1
|
||||
|
||||
strain_symmetric: False
|
||||
convection_skew_symmetric: True # aka Temam term
|
||||
stabilization:
|
||||
forced_normal:
|
||||
enabled: True
|
||||
boundaries: [3,4,5,6]
|
||||
gamma: 20
|
||||
backflow_boundaries: [3,4,5,6]
|
||||
streamline_diffusion:
|
||||
enabled: False
|
||||
parameter: 'standard' # standard, shakib, codina, klr
|
||||
length_scale: 'metric' # average, max, metric
|
||||
parameter_element_constant: True
|
||||
Cinv: ~
|
||||
monolithic:
|
||||
infsup: 'pspg' # pspg, pressure-stabilization
|
||||
graddiv: False
|
||||
consistent: False
|
||||
pressure_stab_constant: 1.
|
||||
|
||||
fix_pressure: False
|
||||
fix_pressure_point: [0., 0. , 0.]
|
||||
|
||||
linear_solver:
|
||||
method: 'lu'
|
||||
|
||||
estimation:
|
||||
boundary_conditions:
|
||||
#-
|
||||
# id: 3
|
||||
# type: 'windkessel'
|
||||
# initial_stddev: 1
|
||||
-
|
||||
id: 4
|
||||
type: 'windkessel'
|
||||
initial_stddev: 1
|
||||
-
|
||||
id: 5
|
||||
type: 'windkessel'
|
||||
initial_stddev: 1
|
||||
-
|
||||
id: 6
|
||||
type: 'windkessel'
|
||||
initial_stddev: 1
|
||||
-
|
||||
id: 2
|
||||
type: 'dirichlet'
|
||||
parameters: 'U'
|
||||
initial_stddev: 1
|
||||
|
||||
|
||||
measurements:
|
||||
-
|
||||
mesh: '/home/yeye/NuMRI/kalman/meshes/coaortaH3_leo2.0.h5'
|
||||
#mesh: './meshes/coaortaH1.h5'
|
||||
fe_degree: 1
|
||||
xdmf_file: 'measurements/aortaRR/Perturbation/Mg15V120/u_all.xdmf'
|
||||
file_root: 'measurements/aortaRR/Perturbation/Mg15V120/u{i}.h5'
|
||||
#xdmf_file: 'measurements/aortaRR/u_all.xdmf'
|
||||
#file_root: 'measurements/aortaRR/u{i}.h5'
|
||||
indices: 0 # indices of checkpoints to be processed. 0 == all
|
||||
velocity_direction: ~
|
||||
noise_stddev: 55 # standard deviation of Gaussian noise
|
||||
|
||||
roukf:
|
||||
particles: 'simplex' # unique or simplex
|
||||
observation_operator: 'postprocessing' #state or postprocessing
|
||||
reparameterize: True
|
||||
ODV_functional:
|
||||
enable: False
|
||||
VENC: 102 # 102,120% 59,70% 42 50%, 21,25%
|
62
kalman/input_files/fracstep_p-gmres.yaml
Normal file
62
kalman/input_files/fracstep_p-gmres.yaml
Normal file
@ -0,0 +1,62 @@
|
||||
config_name: test
|
||||
petsc_options:
|
||||
# - u_ten_ksp_view
|
||||
- u_ten_ksp_converged_reason
|
||||
- u_ten_ksp_monitor_true_residual
|
||||
- u_ten_ksp_type bcgs
|
||||
- u_ten_ksp_rtol 1.0e-6
|
||||
- u_ten_ksp_initial_guess_nonzero
|
||||
|
||||
- u_ten_pc_type jacobi
|
||||
|
||||
- d_ksp_type cg
|
||||
- d_ksp_rtol 1.0e-6
|
||||
|
||||
# - p_ksp_view
|
||||
- p_ksp_converged_reason
|
||||
- p_ksp_monitor_true_residual
|
||||
- p_ksp_type fgmres
|
||||
- p_ksp_rtol 1.0e-6
|
||||
- p_ksp_initial_guess_nonzero
|
||||
|
||||
#- p_pc_type gamg
|
||||
#- p_pc_gamg_type agg
|
||||
#- p_pc_gamg_threshold 0.03
|
||||
#- p_pc_gamg_square_graph 10 # no effect ??
|
||||
#- p_pc_gamg_sym_graph
|
||||
- p_mg_levels_ksp_type richardson
|
||||
- p_mg_levels_pc_type sor
|
||||
|
||||
- p_mass_ksp_type cg
|
||||
- p_mass_ksp_converged_reason
|
||||
- p_mass_ksp_monitor_true_residual
|
||||
- p_mass_ksp_rtol 1.0e-8
|
||||
- p_mass_ksp_initial_guess_nonzero
|
||||
- p_mass_pc_type jacobi
|
||||
|
||||
- u_upd_ksp_type cg
|
||||
- u_upd_ksp_rtol 1.0e-8
|
||||
- u_upd_ksp_initial_guess_nonzero
|
||||
- u_upd_pc_type jacobi
|
||||
|
||||
- p_pc_type hypre
|
||||
- p_pc_hypre_type boomeramg
|
||||
- p_pc_hypre_boomeramg_strong_threshold 0.75
|
||||
- p_pc_hypre_boomeramg_max_levels 25
|
||||
- p_pc_hypre_boomeramg_smooth_type Euclid
|
||||
- p_pc_hypre_boomeramg_eu_bj
|
||||
|
||||
# - p_pc_type hypre
|
||||
# - p_pc_hypre_type boomeramg
|
||||
# - p_pc_hypre_boomeramg_agg_nl 4
|
||||
# - p_pc_hypre_boomeramg_agg_num_paths 2
|
||||
# # Truncation factor for interpolation (note: increasing towrds 1
|
||||
# # appears to reduce memory useage
|
||||
# - p_pc_hypre_boomeramg_truncfactor 0.9
|
||||
# # Max elements per row for interpolation operator
|
||||
# - p_pc_hypre_boomeramg_P_max 5
|
||||
# # - p_pc_hypre_boomeramg_max_levels 10
|
||||
# # Strong threshold (BoomerAMG docs recommend 0.5-0.6 for 3D
|
||||
# # Poisson
|
||||
# - p_pc_hypre_boomeramg_strong_threshold 0.5
|
||||
|
82
kalman/input_files/fracstep_p-gmres_u-LU_WK-LRC.yaml
Normal file
82
kalman/input_files/fracstep_p-gmres_u-LU_WK-LRC.yaml
Normal file
@ -0,0 +1,82 @@
|
||||
config_name: test
|
||||
petsc_options:
|
||||
# - u_ten_ksp_view
|
||||
# - u_ten_ksp_converged_reason
|
||||
# - u_ten_ksp_monitor_true_residual
|
||||
- u_ten_ksp_type preonly
|
||||
# - u_ten_ksp_rtol 1.0e-6
|
||||
# - u_ten_ksp_initial_guess_nonzero
|
||||
|
||||
# - u_ten_pc_type jacobi
|
||||
|
||||
# - u_ten_pc_side right
|
||||
- u_ten_pc_type lu
|
||||
# - u_ten_pc_gamg_type agg
|
||||
# - u_ten_pc_gamg_threshold 0.03
|
||||
# - u_ten_pc_gamg_square_graph 10 # no effect ??
|
||||
# - u_ten_pc_gamg_sym_graph
|
||||
# - u_ten_mg_levels_ksp_type richardson
|
||||
# - u_ten_mg_levels_pc_type sor
|
||||
# # - u_ten_pc_gamg_coarse_eq_limit 50 # ignored !?!?!
|
||||
|
||||
|
||||
# - p_ksp_view
|
||||
- p_ksp_converged_reason
|
||||
- p_ksp_monitor_true_residual
|
||||
# - p_ksp_type gmres
|
||||
# - p_ksp_norm_type unpreconditioned
|
||||
- p_ksp_type fgmres
|
||||
- p_ksp_rtol 1.0e-8
|
||||
- p_ksp_initial_guess_nonzero
|
||||
- p_pc_type gamg
|
||||
- p_pc_gamg_type agg
|
||||
- p_pc_gamg_threshold 0.03
|
||||
- p_pc_gamg_square_graph 10 # no effect ??
|
||||
- p_pc_gamg_sym_graph
|
||||
- p_mg_levels_ksp_type richardson
|
||||
- p_mg_levels_pc_type sor
|
||||
|
||||
|
||||
- p_mass_ksp_type preonly
|
||||
# - p_mass_ksp_rtol 1.0e-8
|
||||
# - p_mass_ksp_initial_guess_nonzero
|
||||
- p_mass_pc_type lu
|
||||
|
||||
# - p_pc_type hypre
|
||||
# - p_pc_hypre_type boomeramg
|
||||
# - p_pc_hypre_boomeramg_strong_threshold 0.75
|
||||
# - p_pc_hypre_boomeramg_max_levels 25
|
||||
# - p_pc_hypre_boomeramg_smooth_type Euclid
|
||||
# - p_pc_hypre_boomeramg_eu_bj
|
||||
|
||||
# - p_ksp_type preonly
|
||||
# - p_pc_type lu
|
||||
# - p_pc_factor_mat_solver_package mumps
|
||||
# - p_mat_mumps_icntl_14 80
|
||||
|
||||
# - p_ksp_type cg
|
||||
# - p_ksp_converged_reason
|
||||
# - p_ksp_monitor_true_residual
|
||||
# - p_ksp_rtol 1.0e-8
|
||||
|
||||
# - p_pc_type hypre
|
||||
# - p_pc_hypre_type boomeramg
|
||||
# - p_pc_hypre_boomeramg_agg_nl 4
|
||||
# - p_pc_hypre_boomeramg_agg_num_paths 2
|
||||
# # Truncation factor for interpolation (note: increasing towrds 1
|
||||
# # appears to reduce memory useage
|
||||
# - p_pc_hypre_boomeramg_truncfactor 0.9
|
||||
# # Max elements per row for interpolation operator
|
||||
# - p_pc_hypre_boomeramg_P_max 5
|
||||
# # - p_pc_hypre_boomeramg_max_levels 10
|
||||
# # Strong threshold (BoomerAMG docs recommend 0.5-0.6 for 3D
|
||||
# # Poisson
|
||||
# - p_pc_hypre_boomeramg_strong_threshold 0.5
|
||||
|
||||
# - u_upd_ksp_converged_reason
|
||||
# - u_upd_ksp_monitor_true_residual
|
||||
# - u_upd_ksp_view
|
||||
- u_upd_ksp_type preonly
|
||||
# - u_upd_ksp_rtol 1.0e-8
|
||||
# - u_upd_ksp_initial_guess_nonzero
|
||||
- u_upd_pc_type lu
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user