Changeset 3577


Ignore:
Timestamp:
04/20/10 14:56:38 (15 years ago)
Author:
jschierm
Message:

QMU with Dakota: updated all Dakota variable/response class definitions to allow construction of multiple simultaneous instances.

Location:
issm/trunk/src/m/classes
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/m/classes/continuous_design.m

    r3095 r3577  
    6262
    6363                otherwise
    64                     cdv.descriptor=varargin{1};
     64                    asizec=num2cell(array_size(varargin{1:min(nargin,6)}));
     65                    cdv(asizec{:})=continuous_design;
     66                    clear asizec
     67                   
     68                    if ischar(varargin{1})
     69                        varargin{1}=cellstr(varargin{1});
     70                    end
     71                    for i=1:numel(cdv)
     72                        if (numel(varargin{1}) > 1)
     73                            cdv(i).descriptor=varargin{1}{i};
     74                        else
     75                            cdv(i).descriptor=[char(varargin{1}) string_dim(cdv,i)];
     76                        end
     77                    end
    6578
    6679                    if (nargin >= 2)
    67                         cdv.initpt    =varargin{2};
     80                        for i=1:numel(cdv)
     81                            if (numel(varargin{2}) > 1)
     82                                cdv(i).initpt    =varargin{2}(i);
     83                            else
     84                                cdv(i).initpt    =varargin{2};
     85                            end
     86                        end
    6887                        if (nargin >= 3)
    69                             cdv.lower     =varargin{3};
     88                            for i=1:numel(cdv)
     89                                if (numel(varargin{3}) > 1)
     90                                    cdv(i).lower     =varargin{3}(i);
     91                                else
     92                                    cdv(i).lower     =varargin{3};
     93                                end
     94                            end
    7095                            if (nargin >= 4)
    71                                 cdv.upper     =varargin{4};
     96                                for i=1:numel(cdv)
     97                                    if (numel(varargin{4}) > 1)
     98                                        cdv(i).upper     =varargin{4}(i);
     99                                    else
     100                                        cdv(i).upper     =varargin{4};
     101                                    end
     102                                end
    72103                                if (nargin >= 5)
    73                                     cdv.scale_type=varargin{5};
     104                                    if ischar(varargin{5})
     105                                        varargin{5}=cellstr(varargin{5});
     106                                    end
     107                                    for i=1:numel(cdv)
     108                                        if (numel(varargin{5}) > 1)
     109                                            cdv(i).scale_type=varargin{5}{i};
     110                                        else
     111                                            cdv(i).scale_type=char(varargin{5});
     112                                        end
     113                                    end
    74114                                    if (nargin >= 6)
    75                                         cdv.scale     =varargin{6};
     115                                        for i=1:numel(cdv)
     116                                            if (numel(varargin{6}) > 1)
     117                                                cdv(i).scale     =varargin{6}(i);
     118                                            else
     119                                                cdv(i).scale     =varargin{6};
     120                                            end
     121                                        end
    76122                                        if (nargin > 6)
    77123                                            warning('continuous_design:extra_arg',...
     
    101147                disp(sprintf('         upper: %g'      ,cdv(i).upper));
    102148                disp(sprintf('    scale_type: ''%s'''  ,cdv(i).scale_type));
    103                 disp(sprintf('         scale: %g    ,cdv(i).scale));
     149                disp(sprintf('         scale: %g\n'    ,cdv(i).scale));
    104150            end
    105151
  • issm/trunk/src/m/classes/continuous_state.m

    r3095 r3577  
    5858
    5959                otherwise
    60                     csv.descriptor=varargin{1};
     60                    asizec=num2cell(array_size(varargin{1:min(nargin,4)}));
     61                    csv(asizec{:})=continuous_state;
     62                    clear asizec
     63                   
     64                    if ischar(varargin{1})
     65                        varargin{1}=cellstr(varargin{1});
     66                    end
     67                    for i=1:numel(csv)
     68                        if (numel(varargin{1}) > 1)
     69                            csv(i).descriptor=varargin{1}{i};
     70                        else
     71                            csv(i).descriptor=[char(varargin{1}) string_dim(csv,i)];
     72                        end
     73                    end
    6174
    6275                    if (nargin >= 2)
    63                         csv.initst    =varargin{2};
     76                        for i=1:numel(csv)
     77                            if (numel(varargin{2}) > 1)
     78                                csv(i).initst    =varargin{2}(i);
     79                            else
     80                                csv(i).initst    =varargin{2};
     81                            end
     82                        end
    6483                        if (nargin >= 3)
    65                             csv.lower     =varargin{3};
     84                            for i=1:numel(csv)
     85                                if (numel(varargin{3}) > 1)
     86                                    csv(i).lower     =varargin{3}(i);
     87                                else
     88                                    csv(i).lower     =varargin{3};
     89                                end
     90                            end
    6691                            if (nargin >= 4)
    67                                 csv.upper     =varargin{4};
     92                                for i=1:numel(csv)
     93                                    if (numel(varargin{4}) > 1)
     94                                        csv(i).upper     =varargin{4}(i);
     95                                    else
     96                                        csv(i).upper     =varargin{4};
     97                                    end
     98                                end
    6899                                if (nargin > 4)
    69100                                    warning('continuous_state:extra_arg',...
  • issm/trunk/src/m/classes/least_squares_term.m

    r3095 r3577  
    5151                        lst=varargin{1};
    5252                    else
     53                        asizec=num2cell(array_size(varargin{1:min(nargin,4)}));
     54                        lst(asizec{:})=least_squares_term;
     55                        clear asizec
     56                   
     57                        if ischar(varargin{1})
     58                            varargin{1}=cellstr(varargin{1});
     59                        end
     60                        for i=1:numel(lst)
     61                            if (numel(varargin{1}) > 1)
     62                                lst(i).descriptor=varargin{1}{i};
     63                            else
     64                                lst(i).descriptor=[char(varargin{1}) string_dim(lst,i)];
     65                            end
     66                        end
    5367                        lst.descriptor=varargin{1};
    5468
    5569                        if (nargin >= 2)
    56                             lst.scale_type=varargin{2};
     70                            if ischar(varargin{2})
     71                                varargin{2}=cellstr(varargin{2});
     72                            end
     73                            for i=1:numel(lst)
     74                                if (numel(varargin{2}) > 1)
     75                                    lst(i).scale_type=varargin{2}{i};
     76                                else
     77                                    lst(i).scale_type=char(varargin{2});
     78                                end
     79                            end
    5780                            if (nargin >= 3)
    58                                 lst.scale     =varargin{3};
     81                                for i=1:numel(lst)
     82                                    if (numel(varargin{3}) > 1)
     83                                        lst(i).scale     =varargin{3}(i);
     84                                    else
     85                                        lst(i).scale     =varargin{3};
     86                                    end
     87                                end
    5988                                if (nargin >= 4)
    60                                     lst.weight    =varargin{4};
     89                                    for i=1:numel(lst)
     90                                        if (numel(varargin{4}) > 1)
     91                                            lst(i).weight    =varargin{4}(i);
     92                                        else
     93                                            lst(i).weight    =varargin{4};
     94                                        end
     95                                    end
    6196
    6297                                    if (nargin > 4)
  • issm/trunk/src/m/classes/linear_equality_constraint.m

    r3095 r3577  
    5858
    5959                otherwise
    60                     if (size(varargin{1},1) > 1)
    61                         warning('linear_equality_constraint:matrix_rows',...
    62                             'Matrix for object of class ''%s'' has %d rows.',...
    63                             class(lec),size(varargin{1},1));
     60                    if     (size(varargin{1},1) == array_numel(varargin{2:min(nargin,4)}) || ...
     61                            size(varargin{1},1) == 1)
     62                        asizec=num2cell(array_size(varargin{2:min(nargin,4)}));
     63                    elseif (array_numel(varargin{2:min(nargin,4)}) == 1)
     64                        asizec=num2cell([size(varargin{1},1) 1]);
     65                    else
     66                        error('Matrix for object of class ''%s'' has inconsistent number of rows.',...
     67                              class(lec));
    6468                    end
    65                     lec.matrix    =varargin{1}(1,:);
     69                    lec(asizec{:})=linear_equality_constraint;
     70                    clear asizec
     71                   
     72                    for i=1:numel(lec)
     73                        if (size(varargin{1},1) > 1)
     74                            lec(i).matrix    =varargin{1}(i,:);
     75                        else
     76                            lec(i).matrix    =varargin{1};
     77                        end
     78                    end
    6679
    6780                    if (nargin >= 2)
    68                         lec.target    =varargin{2};
     81                        for i=1:numel(lec)
     82                            if (numel(varargin{2}) > 1)
     83                                lec(i).target    =varargin{2}(i);
     84                            else
     85                                lec(i).target    =varargin{2};
     86                            end
     87                        end
    6988                        if (nargin >= 3)
    70                             lec.scale_type=varargin{3};
     89                            if ischar(varargin{3})
     90                                varargin{3}=cellstr(varargin{3});
     91                            end
     92                            for i=1:numel(lec)
     93                                if (numel(varargin{3}) > 1)
     94                                    lec(i).scale_type=varargin{3}{i};
     95                                else
     96                                    lec(i).scale_type=char(varargin{3});
     97                                end
     98                            end
    7199                            if (nargin >= 4)
    72                                 lec.scale     =varargin{4};
     100                                for i=1:numel(lec)
     101                                    if (numel(varargin{4}) > 1)
     102                                        lec(i).scale     =varargin{4}(i);
     103                                    else
     104                                        lec(i).scale     =varargin{4};
     105                                    end
     106                                end
    73107
    74108                                if (nargin > 4)
  • issm/trunk/src/m/classes/linear_inequality_constraint.m

    r3095 r3577  
    6666
    6767                otherwise
    68                     if (size(varargin{1},1) > 1)
    69                         warning('linear_inequality_constraint:matrix_rows',...
    70                             'Matrix for object of class ''%s'' has %d rows.',...
    71                             class(lic),size(varargin{1},1));
    72                     end
    73                     lic.matrix    =varargin{1}(1,:);
     68                    if     (size(varargin{1},1) == array_numel(varargin{2:min(nargin,5)}) || ...
     69                            size(varargin{1},1) == 1)
     70                        asizec=num2cell(array_size(varargin{2:min(nargin,5)}));
     71                    elseif (array_numel(varargin{2:min(nargin,5)}) == 1)
     72                        asizec=num2cell([size(varargin{1},1) 1]);
     73                    else
     74                        error('Matrix for object of class ''%s'' has inconsistent number of rows.',...
     75                              class(lic));
     76                    end
     77                    lic(asizec{:})=linear_inequality_constraint;
     78                    clear asizec
     79                   
     80                    for i=1:numel(lic)
     81                        if (size(varargin{1},1) > 1)
     82                            lic(i).matrix    =varargin{1}(i,:);
     83                        else
     84                            lic(i).matrix    =varargin{1};
     85                        end
     86                    end
    7487
    7588                    if (nargin >= 2)
    76                         lic.lower     =varargin{2};
     89                        for i=1:numel(lic)
     90                            if (numel(varargin{2}) > 1)
     91                                lic(i).lower     =varargin{2}(i);
     92                            else
     93                                lic(i).lower     =varargin{2};
     94                            end
     95                        end
    7796                        if (nargin >= 3)
    78                             lic.upper     =varargin{3};
     97                            for i=1:numel(lic)
     98                                if (numel(varargin{3}) > 1)
     99                                    lic(i).upper     =varargin{3}(i);
     100                                else
     101                                    lic(i).upper     =varargin{3};
     102                                end
     103                            end
    79104                            if (nargin >= 4)
    80                                 lic.scale_type=varargin{4};
     105                                if ischar(varargin{4})
     106                                    varargin{4}=cellstr(varargin{4});
     107                                end
     108                                for i=1:numel(lic)
     109                                    if (numel(varargin{4}) > 1)
     110                                        lic(i).scale_type=varargin{4}{i};
     111                                    else
     112                                        lic(i).scale_type=char(varargin{4});
     113                                    end
     114                                end
    81115                                if (nargin >= 5)
    82                                     lic.scale     =varargin{5};
     116                                    for i=1:numel(lic)
     117                                        if (numel(varargin{5}) > 1)
     118                                            lic(i).scale     =varargin{5}(i);
     119                                        else
     120                                            lic(i).scale     =varargin{5};
     121                                        end
     122                                    end
    83123
    84124                                    if (nargin > 5)
  • issm/trunk/src/m/classes/nonlinear_equality_constraint.m

    r3095 r3577  
    5858
    5959                otherwise
    60                     nec.descriptor=varargin{1};
    61                     nec.target    =varargin{2};
     60                    asizec=num2cell(array_size(varargin{1:min(nargin,4)}));
     61                    nec(asizec{:})=nonlinear_equality_constraint;
     62                    clear asizec
     63                   
     64                    if ischar(varargin{1})
     65                        varargin{1}=cellstr(varargin{1});
     66                    end
     67                    for i=1:numel(nec)
     68                        if (numel(varargin{1}) > 1)
     69                            nec(i).descriptor=varargin{1}{i};
     70                        else
     71                            nec(i).descriptor=[char(varargin{1}) string_dim(nec,i)];
     72                        end
     73                        if (numel(varargin{2}) > 1)
     74                            nec(i).target    =varargin{2}(i);
     75                        else
     76                            nec(i).target    =varargin{2};
     77                        end
     78                    end
    6279
    6380                    if (nargin >= 3)
    64                         nec.scale_type=varargin{3};
     81                        if ischar(varargin{3})
     82                            varargin{3}=cellstr(varargin{3});
     83                        end
     84                        for i=1:numel(nec)
     85                            if (numel(varargin{3}) > 1)
     86                                nec(i).scale_type=varargin{3}{i};
     87                            else
     88                                nec(i).scale_type=char(varargin{3});
     89                            end
     90                        end
    6591                        if (nargin >= 4)
    66                             nec.scale     =varargin{4};
     92                            for i=1:numel(nec)
     93                                if (numel(varargin{4}) > 1)
     94                                    nec(i).scale     =varargin{4}(i);
     95                                else
     96                                    nec(i).scale     =varargin{4};
     97                                end
     98                            end
    6799
    68100                            if (nargin > 4)
  • issm/trunk/src/m/classes/nonlinear_inequality_constraint.m

    r3095 r3577  
    6666
    6767                otherwise
    68                     nic.descriptor=varargin{1};
    69                     nic.lower     =varargin{2};
    70                     nic.upper     =varargin{3};
     68                    asizec=num2cell(array_size(varargin{1:min(nargin,5)}));
     69                    nic(asizec{:})=nonlinear_inequality_constraint;
     70                    clear asizec
     71                   
     72                    if ischar(varargin{1})
     73                        varargin{1}=cellstr(varargin{1});
     74                    end
     75                    for i=1:numel(nic)
     76                        if (numel(varargin{1}) > 1)
     77                            nic(i).descriptor=varargin{1}{i};
     78                        else
     79                            nic(i).descriptor=[char(varargin{1}) string_dim(nic,i)];
     80                        end
     81                        if (numel(varargin{2}) > 1)
     82                            nic(i).lower     =varargin{2}(i);
     83                        else
     84                            nic(i).lower     =varargin{2};
     85                        end
     86                        if (numel(varargin{3}) > 1)
     87                            nic(i).upper     =varargin{3}(i);
     88                        else
     89                            nic(i).upper     =varargin{3};
     90                        end
     91                    end
    7192
    7293                    if (nargin >= 4)
    73                         nic.scale_type=varargin{4};
     94                        if ischar(varargin{4})
     95                            varargin{4}=cellstr(varargin{4});
     96                        end
     97                        for i=1:numel(nic)
     98                            if (numel(varargin{4}) > 1)
     99                                nic(i).scale_type=varargin{4}{i};
     100                            else
     101                                nic(i).scale_type=char(varargin{4});
     102                            end
     103                        end
    74104                        if (nargin >= 5)
    75                             nic.scale     =varargin{5};
     105                            for i=1:numel(nic)
     106                                if (numel(varargin{5}) > 1)
     107                                    nic(i).scale     =varargin{5}(i);
     108                                else
     109                                    nic(i).scale     =varargin{5};
     110                                end
     111                            end
    76112
    77113                            if (nargin > 5)
  • issm/trunk/src/m/classes/normal_uncertain.m

    r3095 r3577  
    6666
    6767                otherwise
    68                     nuv.descriptor=varargin{1};
    69                     nuv.mean      =varargin{2};
    70                     nuv.stddev    =varargin{3};
     68                    asizec=num2cell(array_size(varargin{1:min(nargin,5)}));
     69                    nuv(asizec{:})=normal_uncertain;
     70                    clear asizec
     71                   
     72                    if ischar(varargin{1})
     73                        varargin{1}=cellstr(varargin{1});
     74                    end
     75                    for i=1:numel(nuv)
     76                        if (numel(varargin{1}) > 1)
     77                            nuv(i).descriptor=varargin{1}{i};
     78                        else
     79                            nuv(i).descriptor=[char(varargin{1}) string_dim(nuv,i)];
     80                        end
     81                        if (numel(varargin{2}) > 1)
     82                            nuv(i).mean      =varargin{2}(i);
     83                        else
     84                            nuv(i).mean      =varargin{2};
     85                        end
     86                        if (numel(varargin{3}) > 1)
     87                            nuv(i).stddev    =varargin{3}(i);
     88                        else
     89                            nuv(i).stddev    =varargin{3};
     90                        end
     91                    end
    7192
    7293                    if (nargin >= 4)
    73                         nuv.lower     =varargin{4};
     94                        for i=1:numel(nuv)
     95                            if (numel(varargin{4}) > 1)
     96                                nuv(i).lower     =varargin{4}(i);
     97                            else
     98                                nuv(i).lower     =varargin{4};
     99                            end
     100                        end
    74101                        if (nargin >= 5)
    75                             nuv.upper     =varargin{5};
     102                            for i=1:numel(nuv)
     103                                if (numel(varargin{5}) > 1)
     104                                    nuv(i).upper     =varargin{5}(i);
     105                                else
     106                                    nuv(i).upper     =varargin{5};
     107                                end
     108                            end
    76109                            if (nargin > 5)
    77110                                warning('normal_uncertain:extra_arg',...
  • issm/trunk/src/m/classes/objective_function.m

    r3095 r3577  
    5151                        of=varargin{1};
    5252                    else
    53                         of.descriptor=varargin{1};
     53                        asizec=num2cell(array_size(varargin{1:min(nargin,4)}));
     54                        of(asizec{:})=objective_function;
     55                        clear asizec
     56                   
     57                        if ischar(varargin{1})
     58                            varargin{1}=cellstr(varargin{1});
     59                        end
     60                        for i=1:numel(of)
     61                            if (numel(varargin{1}) > 1)
     62                                of(i).descriptor=varargin{1}{i};
     63                            else
     64                                of(i).descriptor=[char(varargin{1}) string_dim(of,i)];
     65                            end
     66                        end
    5467
    5568                        if (nargin >= 2)
    56                             of.scale_type=varargin{2};
     69                            if ischar(varargin{2})
     70                                varargin{2}=cellstr(varargin{2});
     71                            end
     72                            for i=1:numel(of)
     73                                if (numel(varargin{2}) > 1)
     74                                    of(i).scale_type=varargin{2}{i};
     75                                else
     76                                    of(i).scale_type=char(varargin{2});
     77                                end
     78                            end
    5779                            if (nargin >= 3)
    58                                 of.scale     =varargin{3};
     80                                for i=1:numel(of)
     81                                    if (numel(varargin{3}) > 1)
     82                                        of(i).scale     =varargin{3}(i);
     83                                    else
     84                                        of(i).scale     =varargin{3};
     85                                    end
     86                                end
    5987                                if (nargin >= 4)
    60                                     of.weight    =varargin{4};
     88                                    for i=1:numel(of)
     89                                        if (numel(varargin{4}) > 1)
     90                                            of(i).weight    =varargin{4}(i);
     91                                        else
     92                                            of(i).weight    =varargin{4};
     93                                        end
     94                                    end
    6195
    6296                                    if (nargin > 4)
  • issm/trunk/src/m/classes/response_function.m

    r3095 r3577  
    5353                        rf=varargin{1};
    5454                    else
    55                         rf.descriptor=varargin{1};
     55                        asizec=num2cell(array_size(varargin{1:min(nargin,1)}));
     56                        rf(asizec{:})=response_function;
     57                        clear asizec
     58                   
     59                        if ischar(varargin{1})
     60                            varargin{1}=cellstr(varargin{1});
     61                        end
     62                        for i=1:numel(rf)
     63                            if (numel(varargin{1}) > 1)
     64                                rf(i).descriptor=varargin{1}{i};
     65                            else
     66                                rf(i).descriptor=[char(varargin{1}) string_dim(rf,i)];
     67                            end
     68                        end
    5669
    5770                        if (nargin >= 2)
    58                             rf.respl     =varargin{2};
     71                                for i=1:numel(rf)
     72                                rf(i).respl     =varargin{2};
     73                            end
    5974                            if (nargin >= 3)
    60                                 rf.probl     =varargin{3};
     75                                        for i=1:numel(rf)
     76                                    rf(i).probl     =varargin{3};
     77                                end
    6178                                if (nargin >= 4)
    62                                     rf.rell      =varargin{4};
     79                                                for i=1:numel(rf)
     80                                        rf(i).rell      =varargin{4};
     81                                    end
    6382                                    if (nargin >= 5)
    64                                         rf.grell     =varargin{5};
     83                                                        for i=1:numel(rf)
     84                                            rf(i).grell     =varargin{5};
     85                                        end
    6586
    6687                                        if (nargin > 5)
  • issm/trunk/src/m/classes/uniform_uncertain.m

    r3094 r3577  
    6161
    6262                otherwise
    63                     uuv.descriptor=varargin{1};
    64                     uuv.lower     =varargin{2};
    65                     uuv.upper     =varargin{3};
     63                    asizec=num2cell(array_size(varargin{1:min(nargin,3)}));
     64                    uuv(asizec{:})=uniform_uncertain;
     65                    clear asizec
     66                   
     67                    if ischar(varargin{1})
     68                        varargin{1}=cellstr(varargin{1});
     69                    end
     70                    for i=1:numel(uuv)
     71                        if (numel(varargin{1}) > 1)
     72                            uuv(i).descriptor=varargin{1}{i};
     73                        else
     74                            uuv(i).descriptor=[char(varargin{1}) string_dim(uuv,i)];
     75                        end
     76                        if (numel(varargin{2}) > 1)
     77                            uuv(i).lower     =varargin{2}(i);
     78                        else
     79                            uuv(i).lower     =varargin{2};
     80                        end
     81                        if (numel(varargin{3}) > 1)
     82                            uuv(i).upper     =varargin{3}(i);
     83                        else
     84                            uuv(i).upper     =varargin{3};
     85                        end
     86                    end
    6687            end
    6788
Note: See TracChangeset for help on using the changeset viewer.