rbmatlab 0.10.01
|
00001 function descr=convdiff_descr(dummy) 00002 00003 descr.name = 'convdiff_descr'; 00004 descr.rb_problem_type = 'LinEvol'; 00005 %% data that is definitely used outside of the detailed simulations 00006 descr.mu_names = {'c_init','beta','k'}; 00007 descr.mu_ranges = {[0 1],[0 1],[0 5e-8]}; 00008 00009 %% data that might be of interest outside of the detailed simulations 00010 descr.T = 0.5; 00011 descr.nt = 200; 00012 %descr.dt; 00013 %descr.mu; 00014 00015 %descr.N; 00016 %descr.Nmax; 00017 %descr.RB_numintervals; 00018 00019 descr.xrange = [0,1000e-6]; % grid x-coordinate range 00020 descr.yrange = [0,200e-6]; % grid y-coordinate range 00021 descr.xnumintervals = 200; % number of grid cellls in x-direction 00022 descr.ynumintervals = 40; % number of grid cellls in y-direction 00023 00024 descr.operators_ptr = @fv_operators_implicit_explicit; 00025 descr.operators_diff_implicit = @fv_operators_diff_implicit_gradient; 00026 descr.operators_conv_explicit = @fv_operators_conv_explicit_lax_friedrichs; 00027 descr.operators_neumann_explicit = @fv_operators_neumann_explicit; 00028 00029 %% specify initial data function 00030 % name_init_values = 'homogeneous'; 00031 % c_init = 0.0; 00032 descr.init_values_ptr = @init_values_wave; 00033 descr.freq_x = 5*2*pi/1000e-6; 00034 descr.freq_y = 0; 00035 descr.c_init = 1.0; 00036 % name_init_values = 'homogeneous'; 00037 % c_init = 0.3; 00038 00039 % name_init_values = 'leftright'; 00040 % c_init_left = 0.3; 00041 % c_init_right = 0.7; 00042 % init_middle = (params.xrange(2)+params.xrange(1))/2; 00043 00044 %% convective flux specification 00045 % conv_flux_ptr = @conv_flux_gdl2; 00046 descr.conv_flux_ptr = @conv_flux_velocity_matrixfile; 00047 descr.lxf_lambda = 1.0194e+003; 00048 descr.divclean_mode = false; 00049 descr.flux_quad_degree = 1; 00050 descr.use_velocity_matrixfile = 1; 00051 00052 %descr.velocity_matrixfile; 00053 descr.filecache_velocity_matrixfile_extract = 0; 00054 00055 %% data that is relevant for detailed simulations only 00056 00057 %% specify grid type 00058 % generate cartesian grid 00059 descr.gridtype = 'rectgrid'; 00060 00061 %% specify dirichlet boundary values 00062 descr.dirichlet_values_ptr = @dirichlet_values_weighted_boxes; 00063 descr.c_dir = 1.0; % maximum value 00064 descr.beta = 0.0; % weighting parameter: 1=box1, 0 = box2 00065 00066 %% specify neuman boundary values 00067 descr.neumann_values_ptr = @neumann_values_rightflow; 00068 % name_neuman_values = 'zero'; 00069 % name_neuman_values = 'homogeneous'; 00070 % c_neu = 0; 00071 00072 %% specify further data functions 00073 descr.flux_linear = 1; 00074 descr.diffusivity_ptr = @diffusivity_homogeneous; 00075 % k = 0.000000; % diffusion coefficient 00076 % k = 0.000001; % diffusion coefficient 00077 % k = 1e-15; % diffusion coefficient 00078 % k = 1e-10; % diffusion coefficient 00079 descr.k = 1e-8; % diffusion coefficient 00080 00081 % precomputed, divcleaned velocity field 00082 descr.name_flux = 'gdl2'; 00083 00084 descr.lambda = 2.0e-7; % v = - lambda * grad p 00085 % descr.inner_product_matrix_algorithm = @fv_inner_product_matrix; 00086 descr.energy_norm_gamma = 0.5; 00087 descr.alpha_over_k = 1.9915e7; 00088 descr.coercivity_bound_ptr = @fv_coercivity_bound; 00089 00090 00091 % fields to ignore, such that filecaching works in basis generation 00092 descr.filecache_ignore_fields_in_descr = {'N','Nmax'}; 00093 00094 %bnd_rect_corner1; 00095 %bnd_rect_corner2; 00096 %bnd_rect_index = []; 00097 00098 descr.bnd_rect_corner1 = [ descr.xrange(1) , descr.yrange(2) ; ... 00099 descr.xrange(1)+ 250e-6 , descr.yrange(2); ... 00100 descr.xrange(1) , descr.yrange(1); ... 00101 descr.xrange(1) , descr.yrange(1); 00102 descr.xrange(2) , descr.yrange(1) 00103 ]; 00104 descr.bnd_rect_corner1 = descr.bnd_rect_corner1' - eps; 00105 descr.bnd_rect_corner2 = [ descr.xrange(2), descr.yrange(2); ... 00106 descr.xrange(2)-250e-6, descr.yrange(2); ... 00107 descr.xrange(2), descr.yrange(1); 00108 descr.xrange(1), descr.yrange(2); 00109 descr.xrange(2), descr.yrange(2) 00110 ]; 00111 descr.bnd_rect_corner2 = descr.bnd_rect_corner2' + eps; 00112 descr.bnd_rect_index = [-1, -2, -2 , -1, -2 ... 00113 ]; 00114 00115 descr.use_velocity_matrixfile = 1; 00116 00117 %in case of later matrix generation: downscale original velocities 00118 % descr.divclean_downscale = 1; 00119 % descr.divclean_downscale_quota = 0.04; 00120 00121 % set matrix-file name for optional generation or reading of file 00122 descr.velocity_matrixfile = [ 'vel_', descr.name_flux,'_',... 00123 num2str( descr.xnumintervals ),'x',... 00124 num2str( descr.ynumintervals ),... 00125 '_l',num2str(descr.lambda),'.mat']; 00126 00127 descr.dir_box_xrange = {[ descr.xrange(1)-eps, ... 00128 0.5*( descr.xrange(1) + descr.xrange(2) )], ... 00129 [ 0.5*( descr.xrange(1) + descr.xrange(2) )-eps, ... 00130 descr.xrange(2)]... 00131 }; 00132 descr.dir_box_yrange = {[ descr.yrange(2)-eps, descr.yrange(2)+eps], ... 00133 [ descr.yrange(2)-eps, descr.yrange(2)+eps] ... 00134 }; 00135 00136 descr = model_default(descr); 00137 00138 descr.verbose = 5; 00139 descr.debug = 0; 00140 00141 00142 %% basis generation options 00143 descr.RB_train_num_intervals = 4; 00144 00145 % In order to prevent name clashes the basis generation options can also be 00146 % prefixed with BG_ 00147 descr.RB_val_size = 10; 00148 00149 descr.RB_stop_epsilon = 1e-8; 00150 00151 descr.RB_refinement_mode = 'adaptive'; 00152 00153 end 00154