rbmatlab  1.16.09
 All Classes Namespaces Files Functions Variables Modules Pages
convdiff_descr.m
1 function descr=convdiff_descr(dummy)
2 
3  descr = LinEvol.descr_default;
4 
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]};
10 
11  %% data that might be of interest outside of the detailed simulations
12  descr.T = 0.5;
13  descr.nt = 200;
14  %descr.dt;
15  %descr.mu;
16 
17  %descr.N;
18  %descr.Nmax;
19  %descr.RB_numintervals;
20 
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
25 
26  descr.operators_ptr = @fv_operators_implicit_explicit;
27  descr.operators_diff_implicit = @fv_operators_diff_implicit_gradient;
28  descr.operators_conv_explicit = @fv_operators_conv_explicit_lax_friedrichs;
29  descr.operators_neumann_explicit = @fv_operators_neumann_explicit;
30 
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);
35 
36  %% specify initial data function
37  % name_init_values = 'homogeneous';
38  % c_init = 0.0;
39  descr.init_values_ptr = @init_values_wave;
40  descr.freq_x = 5*2*pi/1000e-6;
41  descr.freq_y = 0;
42  descr.c_init = 1.0;
43  % name_init_values = 'homogeneous';
44  % c_init = 0.3;
45 
46  % name_init_values = 'leftright';
47  % c_init_left = 0.3;
48  % c_init_right = 0.7;
49  % init_middle = (params.xrange(2)+params.xrange(1))/2;
50 
51  %% convective flux specification
52  % conv_flux_ptr = @conv_flux_gdl2;
53  descr.conv_flux_ptr = @conv_flux_velocity_matrixfile;
54  descr.lxf_lambda = 1.0194e+003;
55  descr.divclean_mode = false;
56  descr.flux_quad_degree = 1;
57  descr.use_velocity_matrixfile = 1;
58 
59  %descr.velocity_matrixfile;
60  descr.filecache_velocity_matrixfile_extract = 0;
61 
62  %% data that is relevant for detailed simulations only
63 
64  %% specify grid type
65  % generate cartesian grid
66  descr.gridtype = 'rectgrid';
67 
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
72 
73  %% specify neuman boundary values
74  descr.neumann_values_ptr = @neumann_values_rightflow;
75  % name_neuman_values = 'zero';
76  % name_neuman_values = 'homogeneous';
77  % c_neu = 0;
78 
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
87 
88  % precomputed, divcleaned velocity field
89  descr.name_flux = 'gdl2';
90 
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;
97 
98 
99  % fields to ignore, such that filecaching works in basis generation
100  descr.filecache_ignore_fields_in_descr = {'N','Nmax'};
101 
102  %bnd_rect_corner1;
103  %bnd_rect_corner2;
104  %bnd_rect_index = [];
105 
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)
111  ];
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)
118  ];
119  descr.bnd_rect_corner2 = descr.bnd_rect_corner2' + eps;
120  descr.bnd_rect_index = [-1, -2, -2 , -1, -2 ...
121  ];
122 
123  descr.use_velocity_matrixfile = 1;
124 
125  %in case of later matrix generation: downscale original velocities
126  % descr.divclean_downscale = 1;
127  % descr.divclean_downscale_quota = 0.04;
128 
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'];
134 
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, ...
138  descr.xrange(2)]...
139  };
140  descr.dir_box_yrange = {[ descr.yrange(2)-eps, descr.yrange(2)+eps], ...
141  [ descr.yrange(2)-eps, descr.yrange(2)+eps] ...
142  };
143 
144  descr = model_default(descr);
145 
146  descr.save_time_indices = 0:descr.nt;
147 
148  descr.verbose = 5;
149  descr.debug = 0;
150 
151 
152  %% basis generation options
153  descr.RB_train_num_intervals = 4;
154 
155  % In order to prevent name clashes the basis generation options can also be
156  % prefixed with BG_
157  descr.RB_val_size = 10;
158 
159  descr.RB_stop_epsilon = 1e-8;
160 
161  descr.RB_refinement_mode = 'adaptive';
162 
163 end
164 
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.
Definition: descr_default.m:18
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)
Definition: model_default.m:17
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...