rbmatlab 0.10.01
models/convdiff/convdiff_descr.m
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 
All Classes Namespaces Files Functions Variables