1 function descr=convdiff_descr(dummy)
5 descr.name = 'convdiff_descr';
6 descr.rb_problem_type = '
LinEvol';
7 %% data that is definitely used outside of the detailed simulations
8 descr.mu_names = {
'c_init',
'beta',
'k'};
9 descr.mu_ranges = {[0 1],[0 1],[0 5e-8]};
11 %% data that might be of interest outside of the detailed simulations
19 %descr.RB_numintervals;
21 descr.xrange = [0,1000e-6]; % grid x-coordinate range
22 descr.yrange = [0,200e-6]; % grid y-coordinate range
23 descr.xnumintervals = 200; % number of grid cellls in x-direction
24 descr.ynumintervals = 40; % number of grid cellls in y-direction
26 descr.operators_ptr = @fv_operators_implicit_explicit;
31 % init values algorithm
32 descr.init_values_algorithm = @fv_init_values;
33 % descr.init_values_algorithm = @(descr,detailed_data) ...
34 % descr.x0_function_ptr(descr,detailed_data);
36 %% specify initial data
function
37 % name_init_values =
'homogeneous';
39 descr.init_values_ptr = @init_values_wave;
40 descr.freq_x = 5*2*pi/1000e-6;
43 % name_init_values =
'homogeneous';
46 % name_init_values =
'leftright';
49 % init_middle = (params.xrange(2)+params.xrange(1))/2;
51 %% convective flux specification
54 descr.lxf_lambda = 1.0194e+003;
55 descr.divclean_mode =
false;
56 descr.flux_quad_degree = 1;
57 descr.use_velocity_matrixfile = 1;
59 %descr.velocity_matrixfile;
60 descr.filecache_velocity_matrixfile_extract = 0;
62 %% data that is relevant
for detailed simulations only
65 % generate cartesian grid
66 descr.gridtype =
'rectgrid';
68 %% specify dirichlet boundary values
69 descr.dirichlet_values_ptr = @dirichlet_values_weighted_boxes;
70 descr.c_dir = 1.0; % maximum value
71 descr.beta = 0.0; % weighting parameter: 1=box1, 0 = box2
73 %% specify neuman boundary values
74 descr.neumann_values_ptr = @neumann_values_rightflow;
75 % name_neuman_values =
'zero';
76 % name_neuman_values =
'homogeneous';
79 %% specify further data functions
80 descr.flux_linear = 1;
81 descr.diffusivity_ptr = @diffusivity_homogeneous;
82 % k = 0.000000; % diffusion coefficient
83 % k = 0.000001; % diffusion coefficient
84 % k = 1e-15; % diffusion coefficient
85 % k = 1e-10; % diffusion coefficient
86 descr.k = 1e-8; % diffusion coefficient
88 % precomputed, divcleaned velocity field
89 descr.name_flux =
'gdl2';
91 descr.lambda = 2.0e-7; % v = - lambda * grad p
92 descr.inner_product_matrix_algorithm = @fv_inner_product_matrix;
93 descr.mass_matrix = @fv_mass_matrix;
94 descr.energy_norm_gamma = 0.5;
95 descr.alpha_over_k = 1.9915e7;
96 descr.coercivity_bound_ptr = @fv_coercivity_bound;
99 % fields to ignore, such that filecaching works in basis generation
100 descr.filecache_ignore_fields_in_descr = {
'N',
'Nmax'};
104 %bnd_rect_index = [];
106 descr.bnd_rect_corner1 = [ descr.xrange(1) , descr.yrange(2) ; ...
107 descr.xrange(1)+ 250e-6 , descr.yrange(2); ...
108 descr.xrange(1) , descr.yrange(1); ...
109 descr.xrange(1) , descr.yrange(1);
110 descr.xrange(2) , descr.yrange(1)
112 descr.bnd_rect_corner1 = descr.bnd_rect_corner1
' - eps;
113 descr.bnd_rect_corner2 = [ descr.xrange(2), descr.yrange(2); ...
114 descr.xrange(2)-250e-6, descr.yrange(2); ...
115 descr.xrange(2), descr.yrange(1);
116 descr.xrange(1), descr.yrange(2);
117 descr.xrange(2), descr.yrange(2)
119 descr.bnd_rect_corner2 = descr.bnd_rect_corner2' + eps;
120 descr.bnd_rect_index = [-1, -2, -2 , -1, -2 ...
123 descr.use_velocity_matrixfile = 1;
125 %in
case of later matrix generation: downscale original velocities
126 % descr.divclean_downscale = 1;
127 % descr.divclean_downscale_quota = 0.04;
129 % set matrix-file name
for optional generation or reading of file
130 descr.velocity_matrixfile = [
'vel_', descr.name_flux,
'_',...
131 num2str( descr.xnumintervals ),
'x',...
132 num2str( descr.ynumintervals ),...
133 '_l',num2str(descr.lambda),
'.mat'];
135 descr.dir_box_xrange = {[ descr.xrange(1)-eps, ...
136 0.5*( descr.xrange(1) + descr.xrange(2) )], ...
137 [ 0.5*( descr.xrange(1) + descr.xrange(2) )-eps, ...
140 descr.dir_box_yrange = {[ descr.yrange(2)-eps, descr.yrange(2)+eps], ...
141 [ descr.yrange(2)-eps, descr.yrange(2)+eps] ...
146 descr.save_time_indices = 0:descr.nt;
152 %% basis generation options
153 descr.RB_train_num_intervals = 4;
155 % In order to prevent name clashes the basis generation options can also be
157 descr.RB_val_size = 10;
159 descr.RB_stop_epsilon = 1e-8;
161 descr.RB_refinement_mode =
'adaptive';
function [ L_I_diff , bdir_I_diff ] = fv_operators_diff_implicit_gradient(model, model_data, U, NU_ind)
computes diffusion contributions to finite volume time evolution matrices, or their Frechet derivati...
function [ L_E_neu , b_E_neu ] = fv_operators_neumann_explicit(model, model_data, U, NU_ind)
computes a neumann contribution matrix for finite volume time evolution operators, or their Frechet derivative
function ModelDescr descr = descr_default()
This function initializes the default settings for the ARE model.
function [ flux , lambda ] = conv_flux_gdl2(glob, U, params)
Function computing the convective flux of a convection problem.
function model = model_default(model, T, nt)
model = model_default(model)
Reduced basis implementation for linear evolution equations.
function [ flux , lambda ] = conv_flux_velocity_matrixfile(glob, U, params)
function computing the convective flux of a convection problem.
function [ L_E_conv , bdir_E_conv ] = fv_operators_conv_explicit_lax_friedrichs(model, model_data, U, NU_ind)
computes convection contribution to finite volume time evolution matrices, or their Frechet derivati...