function clenshaw_curtis_test035 ( ) %% TEST035 calls CC_LEVELS_CONSTRAINED to collect constrained grids. % % Licensing: % % This code is distributed under the GNU LGPL license. % % Modified: % % 13 March 2007 % % Author: % % John Burkardt % dim_num = 2; alpha = [ 2.0, 3.0 ]; q_max = 13.0; fprintf ( 1, '\n' ); fprintf ( 1, 'TEST035:\n' ); fprintf ( 1, ' CC_LEVELS_CONSTRAINED returns all Clenshaw Curtis grids\n' ); fprintf ( 1, ' satisfying a set of constraints.\n' ); fprintf ( 1, '\n' ); fprintf ( 1, ' The constraint on the levels of the 1D Clenshaw Curtis\n' ); fprintf ( 1, ' rule in spatial dimension I is:\n' ); fprintf ( 1, '\n' ); fprintf ( 1, ' LEVEL_MIN(I) <= LEVEL(I) <= LEVEL_MAX(I) \n' ); fprintf ( 1, '\n' ); fprintf ( 1, ' The constraint on the levels making up a rule is:\n' ); fprintf ( 1, '\n' ); fprintf ( 1, ' Sum ( 1 <= I <= DIM_NUM ) ALPHA(I) * LEVEL(I) <= Q_MAX.\n' ); fprintf ( 1, '\n' ); fprintf ( 1, ' where Q_MAX = %f\n', q_max ); fprintf ( 1, '\n' ); fprintf ( 1, ' The relationship of level to order is roughly \n' ); fprintf ( 1, '\n' ); fprintf ( 1, ' ORDER = 2**LEVEL+1.\n' ); fprintf ( 1, '\n' ); fprintf ( 1, ' Spatial dimension of grids = %d\n', dim_num ); level_min(1:dim_num) = 1; level_max(1:dim_num) = 5; fprintf ( 1, '\n' ); fprintf ( 1, ' Dimension Level_min Level_max Alpha\n' ); fprintf ( 1, '\n' ); for dim = 1 : dim_num fprintf ( 1, ' %8d %8d %8d %12f\n', ... dim, level_min(dim), level_max(dim), alpha(dim) ); end [ grid_num, point_num ] = cc_levels_constrained_size ( dim_num, q_max, ... alpha, level_min, level_max ); fprintf ( 1, '\n' ); fprintf ( 1, ' Number of grids = %d\n', grid_num ); fprintf ( 1, ' Number of points in the grids = %d\n', point_num ); [ grid_level, grid_point ] = cc_levels_constrained ( dim_num, q_max, ... alpha, level_min, level_max, grid_num, point_num ); % % Now we're done. Print the merged grid data. % fprintf ( 1, '\n' ); fprintf ( 1, ' I Q Grid levels:\n' ); fprintf ( 1, '\n' ); for j = 1 : grid_num q = alpha(1:dim_num) * grid_level(1:dim_num,j); fprintf ( 1, ' %8d %14f', j, q ); for dim = 1 : dim_num fprintf ( 1, ' %12d', grid_level(dim,j) ); end fprintf ( 1, '\n' ); end fprintf ( 1, '\n' ); fprintf ( 1, ' Grid points:\n' ); fprintf ( 1, '\n' ); for j = 1 : point_num fprintf ( 1, ' %8d', j ); for dim = 1 : dim_num fprintf ( 1, ' %12f', grid_point(dim,j) ); end fprintf ( 1, '\n' ); end return end