This commit is contained in:
2021-09-15 10:45:08 +02:00
parent 8817ed4b4c
commit 639d1cdd74
8 changed files with 278 additions and 287 deletions

View File

@ -5,16 +5,15 @@ 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
write_xdmf: True
write_checkpoints: True
write_checkpoints: True
write_hdf5_timeseries: False
write_velocity: 'update' # update or tentative
@ -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'

View File

@ -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%

View 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

View 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