Index: sm/trunk/src/m/classes/@continuous_design/continuous_design.m
===================================================================
--- /issm/trunk/src/m/classes/@continuous_design/continuous_design.m	(revision 3094)
+++ 	(revision )
@@ -1,181 +1,0 @@
-%
-%  definition for the continuous_design class.
-%
-%  [cdv]=continuous_design(varargin)
-%
-%  where the required varargin are:
-%    descriptor    (char, description, '')
-%    initpt        (double, initial point, 0.)
-%  and the optional varargin and defaults are:
-%    lower         (double, lower bound, -Inf)
-%    upper         (double, upper bound,  Inf)
-%    scale_type    (char, scaling type, 'none')
-%    scale         (double, scaling factor, 1.)
-%
-%  note that zero arguments constructs a default instance; one
-%  argument of the class copies the instance; and two or more
-%  arguments constructs a new instance from the arguments.
-%
-%  "Copyright 2009, by the California Institute of Technology.
-%  ALL RIGHTS RESERVED. United States Government Sponsorship
-%  acknowledged. Any commercial use must be negotiated with
-%  the Office of Technology Transfer at the California Institute
-%  of Technology.  (J. Schiermeier, NTR 47078)
-%
-%  This software may be subject to U.S. export control laws.
-%  By accepting this  software, the user agrees to comply with
-%  all applicable U.S. export laws and regulations. User has the
-%  responsibility to obtain export licenses, or other export
-%  authority as may be required before exporting such information
-%  to foreign countries or providing access to foreign persons."
-%
-classdef continuous_design
-    properties
-        descriptor='';
-        initpt    = 0.;
-        lower     =-Inf;
-        upper     = Inf;
-        scale_type='none';
-        scale     = 1.;
-    end
-    
-    methods
-        function [cdv]=continuous_design(varargin)
-
-            switch nargin
-
-%  create a default object
-
-                case 0
-
-%  copy the object
-
-                case 1
-                    if isa(varargin{1},'continuous_design')
-                        cdv=varargin{1};
-                    else
-                        error('Object ''%s'' is a ''%s'' class object, not ''%s''.',...
-                            inputname(1),class(varargin{1}),'continuous_design');
-                    end
-
-%  create the object from the input
-
-                otherwise
-                    cdv.descriptor=varargin{1};
-
-                    if (nargin >= 2)
-                        cdv.initpt    =varargin{2};
-                        if (nargin >= 3)
-                            cdv.lower     =varargin{3};
-                            if (nargin >= 4)
-                                cdv.upper     =varargin{4};
-                                if (nargin >= 5)
-                                    cdv.scale_type=varargin{5};
-                                    if (nargin >= 6)
-                                        cdv.scale     =varargin{6};
-                                        if (nargin > 6)
-                                            warning('continuous_design:extra_arg',...
-                                                'Extra arguments for object of class ''%s''.',...
-                                                class(cdv));
-                                        end
-                                    end
-                                end
-                            end
-                        end
-                    end
-            end
-
-        end
-
-        function []=disp(cdv)
-
-%  display the object
-
-            disp(sprintf('\n'));
-            for i=1:numel(cdv)
-                disp(sprintf('class ''%s'' object ''%s%s'' = \n',...
-                    class(cdv),inputname(1),string_dim(cdv,i)));
-                disp(sprintf('    descriptor: ''%s'''  ,cdv(i).descriptor));
-                disp(sprintf('        initpt: %g'      ,cdv(i).initpt));
-                disp(sprintf('         lower: %g'      ,cdv(i).lower));
-                disp(sprintf('         upper: %g'      ,cdv(i).upper));
-                disp(sprintf('    scale_type: ''%s'''  ,cdv(i).scale_type));
-                disp(sprintf('         scale: %g'      ,cdv(i).scale));
-            end
-
-        end
-
-        function [desc]  =prop_desc(cdv,dstr)
-            desc=cell(1,numel(cdv));
-            for i=1:numel(cdv)
-                if ~isempty(cdv(i).descriptor)
-                    desc(i)=cellstr(cdv(i).descriptor);
-                elseif ~isempty(inputname(1))
-                    desc(i)=cellstr([inputname(1) string_dim(cdv,i)]);
-                elseif exist('dstr','var')
-                    desc(i)=cellstr([dstr         string_dim(cdv,i)]);
-                else
-                    desc(i)=cellstr(['cdv'        string_dim(cdv,i)]);
-                end
-            end
-            desc=allempty(desc);
-        end
-        function [initpt]=prop_initpt(cdv)
-            initpt=zeros(1,numel(cdv));
-            for i=1:numel(cdv)
-                initpt(i)=cdv(i).initpt;
-            end
-            initpt=allequal(initpt,0.);
-        end
-        function [lower] =prop_lower(cdv)
-            lower=zeros(1,numel(cdv));
-            for i=1:numel(cdv)
-                lower(i)=cdv(i).lower;
-            end
-            lower=allequal(lower,-Inf);
-        end
-        function [upper] =prop_upper(cdv)
-            upper=zeros(1,numel(cdv));
-            for i=1:numel(cdv)
-                upper(i)=cdv(i).upper;
-            end
-            upper=allequal(upper, Inf);
-        end
-        function [mean]  =prop_mean(cdv)
-            mean=[];
-        end
-        function [stddev]=prop_stddev(cdv)
-            stddev=[];
-        end
-        function [initst]=prop_initst(cdv)
-            initst=[];
-        end
-        function [stype] =prop_stype(cdv)
-            stype=cell(1,numel(cdv));
-            for i=1:numel(cdv)
-                stype(i)=cellstr(cdv(i).scale_type);
-            end
-            stype=allequal(stype,'none');
-        end
-        function [scale] =prop_scale(cdv)
-            scale=zeros(1,numel(cdv));
-            for i=1:numel(cdv)
-                scale(i)=cdv(i).scale;
-            end
-            scale=allequal(scale,1.);
-        end
-    end
-    
-    methods (Static)
-        function []=dakota_write(fidi,dvar)
-
-%  collect only the variables of the appropriate class
-
-            cdv=struc_class(dvar,'continuous_design');
-
-%  write variables
-
-            vlist_write(fidi,'continuous_design','cdv',cdv);
-        end
-    end
-end
Index: sm/trunk/src/m/classes/@continuous_state/continuous_state.m
===================================================================
--- /issm/trunk/src/m/classes/@continuous_state/continuous_state.m	(revision 3094)
+++ 	(revision )
@@ -1,161 +1,0 @@
-%
-%  definition for the continuous_state class.
-%
-%  [csv]=continuous_state(varargin)
-%
-%  where the required varargin are:
-%    descriptor    (char, description, '')
-%    initst        (double, initial state, 0.)
-%  and the optional varargin and defaults are:
-%    lower         (double, lower bound, -Inf)
-%    upper         (double, upper bound,  Inf)
-%
-%  note that zero arguments constructs a default instance; one
-%  argument of the class copies the instance; and two or more
-%  arguments constructs a new instance from the arguments.
-%
-%  "Copyright 2009, by the California Institute of Technology.
-%  ALL RIGHTS RESERVED. United States Government Sponsorship
-%  acknowledged. Any commercial use must be negotiated with
-%  the Office of Technology Transfer at the California Institute
-%  of Technology.  (J. Schiermeier, NTR 47078)
-%
-%  This software may be subject to U.S. export control laws.
-%  By accepting this  software, the user agrees to comply with
-%  all applicable U.S. export laws and regulations. User has the
-%  responsibility to obtain export licenses, or other export
-%  authority as may be required before exporting such information
-%  to foreign countries or providing access to foreign persons."
-%
-classdef continuous_state
-    properties
-        descriptor='';
-        initst    = 0.;
-        lower     =-Inf;
-        upper     = Inf;
-    end
-    
-    methods
-        function [csv]=continuous_state(varargin)
-
-            switch nargin
-
-%  create a default object
-
-                case 0
-
-%  copy the object
-
-                case 1
-                    if isa(varargin{1},'continuous_state')
-                        csv=varargin{1};
-                    else
-                        error('Object ''%s'' is a ''%s'' class object, not ''%s''.',...
-                            inputname(1),class(varargin{1}),'continuous_state');
-                    end
-
-%  create the object from the input
-
-                otherwise
-                    csv.descriptor=varargin{1};
-
-                    if (nargin >= 2)
-                        csv.initst    =varargin{2};
-                        if (nargin >= 3)
-                            csv.lower     =varargin{3};
-                            if (nargin >= 4)
-                                csv.upper     =varargin{4};
-                                if (nargin > 4)
-                                    warning('continuous_state:extra_arg',...
-                                        'Extra arguments for object of class ''%s''.',...
-                                        class(csv));
-                                end
-                            end
-                        end
-                    end
-            end
-
-        end
-
-        function []=disp(csv)
-
-%  display the object
-
-            disp(sprintf('\n'));
-            for i=1:numel(csv)
-                disp(sprintf('class ''%s'' object ''%s%s'' = \n',...
-                    class(csv),inputname(1),string_dim(csv,i)));
-                disp(sprintf('    descriptor: ''%s'''  ,csv(i).descriptor));
-                disp(sprintf('        initst: %g'      ,csv(i).initst));
-                disp(sprintf('         lower: %g'      ,csv(i).lower));
-                disp(sprintf('         upper: %g\n'    ,csv(i).upper));
-            end
-
-        end
-
-        function [desc]  =prop_desc(csv,dstr)
-            desc=cell(1,numel(csv));
-            for i=1:numel(csv)
-                if ~isempty(csv(i).descriptor)
-                    desc(i)=cellstr(csv(i).descriptor);
-                elseif ~isempty(inputname(1))
-                    desc(i)=cellstr([inputname(1) string_dim(csv,i)]);
-                elseif exist('dstr','var')
-                    desc(i)=cellstr([dstr         string_dim(csv,i)]);
-                else
-                    desc(i)=cellstr(['csv'        string_dim(csv,i)]);
-                end
-            end
-            desc=allempty(desc);
-        end
-        function [initpt]=prop_initpt(csv)
-            initpt=[];
-        end
-        function [lower] =prop_lower(csv)
-            lower=zeros(1,numel(csv));
-            for i=1:numel(csv)
-                lower(i)=csv(i).lower;
-            end
-            lower=allequal(lower,-Inf);
-        end
-        function [upper] =prop_upper(csv)
-            upper=zeros(1,numel(csv));
-            for i=1:numel(csv)
-                upper(i)=csv(i).upper;
-            end
-            upper=allequal(upper, Inf);
-        end
-        function [mean]  =prop_mean(csv)
-            mean=[];
-        end
-        function [stddev]=prop_stddev(csv)
-            stddev=[];
-        end
-        function [initst]=prop_initst(csv)
-            initst=zeros(1,numel(csv));
-            for i=1:numel(csv)
-                initst(i)=csv(i).initst;
-            end
-            initst=allequal(initst,0.);
-        end
-        function [stype] =prop_stype(csv)
-            stype={};
-        end
-        function [scale] =prop_scale(csv)
-            scale=[];
-        end
-    end
-    
-    methods (Static)
-        function []=dakota_write(fidi,dvar)
-
-%  collect only the variables of the appropriate class
-
-            csv=struc_class(dvar,'continuous_state');
-
-%  write variables
-
-            vlist_write(fidi,'continuous_state','csv',csv);
-        end
-    end
-end
Index: sm/trunk/src/m/classes/@least_squares_term/least_squares_term.m
===================================================================
--- /issm/trunk/src/m/classes/@least_squares_term/least_squares_term.m	(revision 3094)
+++ 	(revision )
@@ -1,153 +1,0 @@
-%
-%  definition for the least_squares_term class.
-%
-%  [lst]=least_squares_term(varargin)
-%
-%  where the required varargin are:
-%    descriptor    (char, description, '')
-%  and the optional varargin and defaults are:
-%    scale_type    (char, scaling type, 'none')
-%    scale         (double, scaling factor, 1.)
-%    weight        (double, weighting factor, 1.)
-%
-%  note that zero arguments constructs a default instance; one
-%  argument of the class copies the instance; and one or more
-%  arguments constructs a new instance from the arguments.
-%
-%  "Copyright 2009, by the California Institute of Technology.
-%  ALL RIGHTS RESERVED. United States Government Sponsorship
-%  acknowledged. Any commercial use must be negotiated with
-%  the Office of Technology Transfer at the California Institute
-%  of Technology.  (J. Schiermeier, NTR 47078)
-%
-%  This software may be subject to U.S. export control laws.
-%  By accepting this  software, the user agrees to comply with
-%  all applicable U.S. export laws and regulations. User has the
-%  responsibility to obtain export licenses, or other export
-%  authority as may be required before exporting such information
-%  to foreign countries or providing access to foreign persons."
-%
-classdef least_squares_term
-    properties
-        descriptor='';
-        scale_type='none';
-        scale     = 1.;
-        weight    = 1.;
-    end
-    
-    methods
-        function [lst]=least_squares_term(varargin)
-
-            switch nargin
-
-%  create a default object
-
-                case 0
-
-%  copy the object or create the object from the input
-
-                otherwise
-                    if  (nargin == 1) && isa(varargin{1},'least_squares_term')
-                        lst=varargin{1};
-                    else
-                        lst.descriptor=varargin{1};
-
-                        if (nargin >= 2)
-                            lst.scale_type=varargin{2};
-                            if (nargin >= 3)
-                                lst.scale     =varargin{3};
-                                if (nargin >= 4)
-                                    lst.weight    =varargin{4};
-
-                                    if (nargin > 4)
-                                        warning('least_squares_term:extra_arg',...
-                                            'Extra arguments for object of class ''%s''.',...
-                                            class(lst));
-                                    end
-                                end
-                            end
-                        end
-                    end
-            end
-
-        end
-
-        function []=disp(lst)
-
-%  display the object
-
-            disp(sprintf('\n'));
-            for i=1:numel(lst)
-                disp(sprintf('class ''%s'' object ''%s%s'' = \n',...
-                    class(lst),inputname(1),string_dim(lst,i)));
-                disp(sprintf('    descriptor: ''%s'''  ,lst(i).descriptor));
-                disp(sprintf('    scale_type: ''%s'''  ,lst(i).scale_type));
-                disp(sprintf('         scale: %g'      ,lst(i).scale));
-                disp(sprintf('        weight: %g\n'    ,lst(i).weight));
-            end
-
-        end
-
-        function [desc]  =prop_desc(lst,dstr)
-            desc=cell(1,numel(lst));
-            for i=1:numel(lst)
-                if ~isempty(lst(i).descriptor)
-                    desc(i)=cellstr(lst(i).descriptor);
-                elseif ~isempty(inputname(1))
-                    desc(i)=cellstr([inputname(1) string_dim(lst,i)]);
-                elseif exist('dstr','var')
-                    desc(i)=cellstr([dstr         string_dim(lst,i)]);
-                else
-                    desc(i)=cellstr(['lst'        string_dim(lst,i)]);
-                end
-            end
-            desc=allempty(desc);
-        end
-        function [stype] =prop_stype(lst)
-            stype=cell(1,numel(lst));
-            for i=1:numel(lst)
-                stype(i)=cellstr(lst(i).scale_type);
-            end
-            stype=allequal(stype,'none');
-        end
-        function [scale] =prop_scale(lst)
-            scale=zeros(1,numel(lst));
-            for i=1:numel(lst)
-                scale(i)=lst(i).scale;
-            end
-            scale=allequal(scale,1.);
-        end
-        function [weight]=prop_weight(lst)
-            weight=zeros(1,numel(lst));
-            for i=1:numel(lst)
-                weight(i)=lst(i).weight;
-            end
-            weight=allequal(weight,1.);
-        end
-        function [lower] =prop_lower(lst)
-            lower=[];
-        end
-        function [upper] =prop_upper(lst)
-            upper=[];
-        end
-        function [target]=prop_target(lst)
-            target=[];
-        end
-    end
-    
-    methods (Static)
-        function [rdesc]=dakota_write(fidi,dresp,rdesc)
-
-%  collect only the responses of the appropriate class
-
-            lst=struc_class(dresp,'least_squares_term');
-
-%  write responses
-
-            [rdesc]=rlist_write(fidi,'least_squares_terms','least_squares_term',lst,rdesc);
-        end
-
-        function []=dakota_rlev_write(fidi,dresp,params)
-        end
-    end
-end
Index: sm/trunk/src/m/classes/@linear_equality_constraint/linear_equality_constraint.m
===================================================================
--- /issm/trunk/src/m/classes/@linear_equality_constraint/linear_equality_constraint.m	(revision 3094)
+++ 	(revision )
@@ -1,148 +1,0 @@
-%
-%  constructor for the linear_equality_constraint class.
-%
-%  [lec]=linear_equality_constraint(varargin)
-%
-%  where the required varargin are:
-%    matrix        (double row, variable coefficients, NaN)
-%    target        (double vector, target values, 0.)
-%  and the optional varargin and defaults are:
-%    scale_type    (char, scaling type, 'none')
-%    scale         (double, scaling factor, 1.)
-%
-%  note that zero arguments constructs a default instance; one
-%  argument of the class copies the instance; and two or more
-%  arguments constructs a new instance from the arguments.
-%
-%  "Copyright 2009, by the California Institute of Technology.
-%  ALL RIGHTS RESERVED. United States Government Sponsorship
-%  acknowledged. Any commercial use must be negotiated with
-%  the Office of Technology Transfer at the California Institute
-%  of Technology.  (J. Schiermeier, NTR 47078)
-%
-%  This software may be subject to U.S. export control laws.
-%  By accepting this  software, the user agrees to comply with
-%  all applicable U.S. export laws and regulations. User has the
-%  responsibility to obtain export licenses, or other export
-%  authority as may be required before exporting such information
-%  to foreign countries or providing access to foreign persons."
-%
-classdef linear_equality_constraint
-    properties
-        matrix    = NaN;
-        target    = 0.;
-        scale_type='none';
-        scale     = 1.;
-    end
-    
-    methods
-        function [lec]=linear_equality_constraint(varargin)
-
-            switch nargin
-
-%  create a default object
-
-                case 0
-
-%  copy the object
-
-                case 1
-                    if isa(varargin{1},'linear_equality_constraint')
-                        lec=varargin{1};
-                    else
-                        error('Object ''%s'' is a ''%s'' class object, not ''%s''.',...
-                            inputname(1),class(varargin{1}),'linear_equality_constraint');
-                    end
-
-%  create the object from the input
-
-                otherwise
-                    if (size(varargin{1},1) > 1)
-                        warning('linear_equality_constraint:matrix_rows',...
-                            'Matrix for object of class ''%s'' has %d rows.',...
-                            class(lec),size(varargin{1},1));
-                    end
-                    lec.matrix    =varargin{1}(1,:);
-
-                    if (nargin >= 2)
-                        lec.target    =varargin{2};
-                        if (nargin >= 3)
-                            lec.scale_type=varargin{3};
-                            if (nargin >= 4)
-                                lec.scale     =varargin{4};
-
-                                if (nargin > 4)
-                                    warning('linear_equality_constraint:extra_arg',...
-                                        'Extra arguments for object of class ''%s''.',...
-                                        class(lec));
-                                end
-                            end
-                        end
-                    end
-            end
-        end
-
-        function []=disp(lec)
-
-%  display the object
-
-            disp(sprintf('\n'));
-            for i=1:numel(lec)
-                disp(sprintf('class ''%s'' object ''%s%s'' = \n',...
-                    class(lec),inputname(1),string_dim(lec,i)));
-                disp(sprintf('        matrix: %s'      ,string_vec(lec(i).matrix)));
-                disp(sprintf('        target: %g'      ,lec(i).target));
-                disp(sprintf('    scale_type: ''%s'''  ,lec(i).scale_type));
-                disp(sprintf('         scale: %g\n'    ,lec(i).scale));
-            end
-
-        end
-
-        function [matrix]=prop_matrix(lec)
-            matrix=zeros(numel(lec),0);
-            for i=1:numel(lec)
-                matrix(i,1:size(lec(i).matrix,2))=lec(i).matrix(1,:);
-            end
-        end
-        function [lower] =prop_lower(lec)
-            lower=[];
-        end
-        function [upper] =prop_upper(lec)
-            upper=[];
-        end
-        function [target]=prop_target(lec)
-            target=zeros(size(lec));
-            for i=1:numel(lec)
-                target(i)=lec(i).target;
-            end
-            target=allequal(target,0.);
-        end
-        function [stype] =prop_stype(lec)
-            stype=cell(size(lec));
-            for i=1:numel(lec)
-                stype(i)=cellstr(lec(i).scale_type);
-            end
-            stype=allequal(stype,'none');
-        end
-        function [scale] =prop_scale(lec)
-            scale=zeros(size(lec));
-            for i=1:numel(lec)
-                scale(i)=lec(i).scale;
-            end
-            scale=allequal(scale,1.);
-        end
-    end
-    
-    methods (Static)
-        function []=dakota_write(fidi,dvar)
-
-%  collect only the variables of the appropriate class
-
-            lec=struc_class(dvar,'linear_equality_constraint');
-
-%  write constraints
-
-            lclist_write(fidi,'linear_equality_constraints','linear_equality',lec);
-        end
-    end
-end
Index: sm/trunk/src/m/classes/@linear_inequality_constraint/linear_inequality_constraint.m
===================================================================
--- /issm/trunk/src/m/classes/@linear_inequality_constraint/linear_inequality_constraint.m	(revision 3094)
+++ 	(revision )
@@ -1,165 +1,0 @@
-%
-%  constructor for the linear_inequality_constraint class.
-%
-%  [lic]=linear_inequality_constraint(varargin)
-%
-%  where the required varargin are:
-%    matrix        (double row, variable coefficients, NaN)
-%    lower         (double vector, lower bounds, -Inf)
-%    upper         (double vector, upper bounds, 0.)
-%  and the optional varargin and defaults are:
-%    scale_type    (char, scaling type, 'none')
-%    scale         (double, scaling factor, 1.)
-%
-%  note that zero arguments constructs a default instance; one
-%  argument of the class copies the instance; and three or more
-%  arguments constructs a new instance from the arguments.
-%
-%  "Copyright 2009, by the California Institute of Technology.
-%  ALL RIGHTS RESERVED. United States Government Sponsorship
-%  acknowledged. Any commercial use must be negotiated with
-%  the Office of Technology Transfer at the California Institute
-%  of Technology.  (J. Schiermeier, NTR 47078)
-%
-%  This software may be subject to U.S. export control laws.
-%  By accepting this  software, the user agrees to comply with
-%  all applicable U.S. export laws and regulations. User has the
-%  responsibility to obtain export licenses, or other export
-%  authority as may be required before exporting such information
-%  to foreign countries or providing access to foreign persons."
-%
-classdef linear_inequality_constraint
-    properties
-        matrix    = NaN;
-        lower     =-Inf;
-        upper     = 0.;
-        scale_type='none';
-        scale     = 1.;
-    end
-    
-    methods
-        function [lic]=linear_inequality_constraint(varargin)
-
-            switch nargin
-
-%  create a default object
-
-                case 0
-
-%  copy the object
-
-                case 1
-                    if isa(varargin{1},'linear_inequality_constraint')
-                        lic=varargin{1};
-                    else
-                        error('Object ''%s'' is a ''%s'' class object, not ''%s''.',...
-                            inputname(1),class(varargin{1}),'linear_inequality_constraint');
-                    end
-
-%  not enough arguments
-
-                case 2
-                    error('Construction of ''%s'' class object requires at least %d inputs.',...
-                        'linear_inequality_constraint',3)
-
-%  create the object from the input
-
-                otherwise
-                    if (size(varargin{1},1) > 1)
-                        warning('linear_inequality_constraint:matrix_rows',...
-                            'Matrix for object of class ''%s'' has %d rows.',...
-                            class(lic),size(varargin{1},1));
-                    end
-                    lic.matrix    =varargin{1}(1,:);
-
-                    if (nargin >= 2)
-                        lic.lower     =varargin{2};
-                        if (nargin >= 3)
-                            lic.upper     =varargin{3};
-                            if (nargin >= 4)
-                                lic.scale_type=varargin{4};
-                                if (nargin >= 5)
-                                    lic.scale     =varargin{5};
-
-                                    if (nargin > 5)
-                                        warning('linear_inequality_constraint:extra_arg',...
-                                            'Extra arguments for object of class ''%s''.',...
-                                            class(lic));
-                                    end
-                                end
-                            end
-                        end
-                    end
-            end
-        end
-
-        function []=disp(lic)
-
-%  display the object
-
-            disp(sprintf('\n'));
-            for i=1:numel(lic)
-                disp(sprintf('class ''%s'' object ''%s%s'' = \n',...
-                    class(lic),inputname(1),string_dim(lic,i)));
-                disp(sprintf('        matrix: %s'      ,string_vec(lic(i).matrix)));
-                disp(sprintf('         lower: %g'      ,lic(i).lower));
-                disp(sprintf('         upper: %g'      ,lic(i).upper));
-                disp(sprintf('    scale_type: ''%s'''  ,lic(i).scale_type));
-                disp(sprintf('         scale: %g\n'    ,lic(i).scale));
-            end
-
-        end
-
-        function [matrix]=prop_matrix(lic)
-            matrix=zeros(numel(lic),0);
-            for i=1:numel(lic)
-                matrix(i,1:size(lic(i).matrix,2))=lic(i).matrix(1,:);
-            end
-        end
-        function [lower] =prop_lower(lic)
-            lower=zeros(size(lic));
-            for i=1:numel(lic)
-                lower(i)=lic(i).lower;
-            end
-            lower=allequal(lower,-Inf);
-        end
-        function [upper] =prop_upper(lic)
-            upper=zeros(size(lic));
-            for i=1:numel(lic)
-                upper(i)=lic(i).upper;
-            end
-            upper=allequal(upper,0.);
-        end
-        function [target]=prop_target(lic)
-            target=[];
-        end
-        function [stype] =prop_stype(lic)
-            stype=cell(size(lic));
-            for i=1:numel(lic)
-                stype(i)=cellstr(lic(i).scale_type);
-            end
-            stype=allequal(stype,'none');
-        end
-        function [scale] =prop_scale(lic)
-            scale=zeros(size(lic));
-            for i=1:numel(lic)
-                scale(i)=lic(i).scale;
-            end
-            scale=allequal(scale,1.);
-        end
-    end
-    
-    methods (Static)
-        function []=dakota_write(fidi,dvar)
-
-%  collect only the variables of the appropriate class
-
-            lic=struc_class(dvar,'linear_inequality_constraint');
-
-%  write constraints
-
-            lclist_write(fidi,'linear_inequality_constraints','linear_inequality',lic);
-        end
-    end
-end
-
Index: sm/trunk/src/m/classes/@nonlinear_equality_constraint/nonlinear_equality_constraint.m
===================================================================
--- /issm/trunk/src/m/classes/@nonlinear_equality_constraint/nonlinear_equality_constraint.m	(revision 3094)
+++ 	(revision )
@@ -1,157 +1,0 @@
-%
-%  constructor for the nonlinear_equality_constraint class.
-%
-%  [nec]=nonlinear_equality_constraint(varargin)
-%
-%  where the required varargin are:
-%    descriptor    (char, description, '')
-%    target        (double, target value, 0.)
-%  and the optional varargin and defaults are:
-%    scale_type    (char, scaling type, 'none')
-%    scale         (double, scaling factor, 1.)
-%
-%  note that zero arguments constructs a default instance; one
-%  argument of the class copies the instance; and two or more
-%  arguments constructs a new instance from the arguments.
-%
-%  "Copyright 2009, by the California Institute of Technology.
-%  ALL RIGHTS RESERVED. United States Government Sponsorship
-%  acknowledged. Any commercial use must be negotiated with
-%  the Office of Technology Transfer at the California Institute
-%  of Technology.  (J. Schiermeier, NTR 47078)
-%
-%  This software may be subject to U.S. export control laws.
-%  By accepting this  software, the user agrees to comply with
-%  all applicable U.S. export laws and regulations. User has the
-%  responsibility to obtain export licenses, or other export
-%  authority as may be required before exporting such information
-%  to foreign countries or providing access to foreign persons."
-%
-classdef nonlinear_equality_constraint
-    properties
-        descriptor='';
-        target    = 0.;
-        scale_type='none';
-        scale     = 1.;
-    end
-    
-    methods
-        function [nec]=nonlinear_equality_constraint(varargin)
-
-            switch nargin
-
-%  create a default object
-
-                case 0
-
-%  copy the object
-
-                case 1
-                    if isa(varargin{1},'nonlinear_equality_constraint')
-                        nec=varargin{1};
-                    else
-                        error('Object ''%s'' is a ''%s'' class object, not ''%s''.',...
-                            inputname(1),class(varargin{1}),'nonlinear_equality_constraint');
-                    end
-
-%  create the object from the input
-
-                otherwise
-                    nec.descriptor=varargin{1};
-                    nec.target    =varargin{2};
-
-                    if (nargin >= 3)
-                        nec.scale_type=varargin{3};
-                        if (nargin >= 4)
-                            nec.scale     =varargin{4};
-
-                            if (nargin > 4)
-                                warning('objective_function:extra_arg',...
-                                    'Extra arguments for object of class ''%s''.',...
-                                    class(nec));
-                            end
-                        end
-                    end
-            end
-
-        end
-
-        function []=disp(nec)
-
-%  display the object
-
-            disp(sprintf('\n'));
-            for i=1:numel(nec)
-                disp(sprintf('class ''%s'' object ''%s%s'' = \n',...
-                    class(nec),inputname(1),string_dim(nec,i)));
-                disp(sprintf('    descriptor: ''%s'''  ,nec(i).descriptor));
-                disp(sprintf('        target: %g'      ,nec(i).target));
-                disp(sprintf('    scale_type: ''%s'''  ,nec(i).scale_type));
-                disp(sprintf('         scale: %g\n'    ,nec(i).scale));
-            end
-
-        end
-
-        function [desc]  =prop_desc(nec,dstr)
-            desc=cell(1,numel(nec));
-            for i=1:numel(nec)
-                if ~isempty(nec(i).descriptor)
-                    desc(i)=cellstr(nec(i).descriptor);
-                elseif ~isempty(inputname(1))
-                    desc(i)=cellstr([inputname(1) string_dim(nec,i)]);
-                elseif exist('dstr','var')
-                    desc(i)=cellstr([dstr         string_dim(nec,i)]);
-                else
-                    desc(i)=cellstr(['nec'        string_dim(nec,i)]);
-                end
-            end
-            desc=allempty(desc);
-        end
-        function [stype] =prop_stype(nec)
-            stype=cell(size(nec));
-            for i=1:numel(nec)
-                stype(i)=cellstr(nec(i).scale_type);
-            end
-            stype=allequal(stype,'none');
-        end
-        function [scale] =prop_scale(nec)
-            scale=zeros(size(nec));
-            for i=1:numel(nec)
-                scale(i)=nec(i).scale;
-            end
-            scale=allequal(scale,1.);
-        end
-        function [weight]=prop_weight(nec)
-            weight=[];
-        end
-        function [lower] =prop_lower(nec)
-            lower=[];
-        end
-        function [upper] =prop_upper(nec)
-            upper=[];
-        end
-        function [target]=prop_target(nec)
-            target=zeros(size(nec));
-            for i=1:numel(nec)
-                target(i)=nec(i).target;
-            end
-            target=allequal(target,0.);
-        end
-    end
-    
-    methods (Static)
-        function [rdesc]=dakota_write(fidi,dresp,rdesc)
-
-%  collect only the responses of the appropriate class
-
-            nec=struc_class(dresp,'nonlinear_equality_constraint');
-
-%  write responses
-
-            [rdesc]=rlist_write(fidi,'nonlinear_equality_constraints','nonlinear_equality',nec,rdesc);
-        end
-
-        function []=dakota_rlev_write(fidi,dresp,params)
-        end
-    end
-end
Index: sm/trunk/src/m/classes/@nonlinear_inequality_constraint/nonlinear_inequality_constraint.m
===================================================================
--- /issm/trunk/src/m/classes/@nonlinear_inequality_constraint/nonlinear_inequality_constraint.m	(revision 3094)
+++ 	(revision )
@@ -1,171 +1,0 @@
-%
-%  constructor for the nonlinear_inequality_constraint class.
-%
-%  [nic]=nonlinear_inequality_constraint(varargin)
-%
-%  where the required varargin are:
-%    descriptor    (char, description, '')
-%    lower         (double, lower bound, -Inf)
-%    upper         (double, upper bound, 0.)
-%  and the optional varargin and defaults are:
-%    scale_type    (char, scaling type, 'none')
-%    scale         (double, scaling factor, 1.)
-%
-%  note that zero arguments constructs a default instance; one
-%  argument of the class copies the instance; and three or more
-%  arguments constructs a new instance from the arguments.
-%
-%  "Copyright 2009, by the California Institute of Technology.
-%  ALL RIGHTS RESERVED. United States Government Sponsorship
-%  acknowledged. Any commercial use must be negotiated with
-%  the Office of Technology Transfer at the California Institute
-%  of Technology.  (J. Schiermeier, NTR 47078)
-%
-%  This software may be subject to U.S. export control laws.
-%  By accepting this  software, the user agrees to comply with
-%  all applicable U.S. export laws and regulations. User has the
-%  responsibility to obtain export licenses, or other export
-%  authority as may be required before exporting such information
-%  to foreign countries or providing access to foreign persons."
-%
-classdef nonlinear_inequality_constraint
-    properties
-        descriptor='';
-        lower     =-Inf;
-        upper     = 0.;
-        scale_type='none';
-        scale     = 1.;
-    end
-    
-    methods
-        function [nic]=nonlinear_inequality_constraint(varargin)
-
-            switch nargin
-
- %  create a default object
-
-                case 0
-
-%  copy the object
-
-                case 1
-                    if isa(varargin{1},'nonlinear_inequality_constraint')
-                        nic=varargin{1};
-                    else
-                        error('Object ''%s'' is a ''%s'' class object, not ''%s''.',...
-                            inputname(1),class(varargin{1}),'nonlinear_inequality_constraint');
-                    end
-
-%  not enough arguments
-
-                case 2
-                    error('Construction of ''%s'' class object requires at least %d inputs.',...
-                        'nonlinear_inequality_constraint',3)
-
-%  create the object from the input
-
-                otherwise
-                    nic.descriptor=varargin{1};
-                    nic.lower     =varargin{2};
-                    nic.upper     =varargin{3};
-
-                    if (nargin >= 4)
-                        nic.scale_type=varargin{4};
-                        if (nargin >= 5)
-                            nic.scale     =varargin{5};
-
-                            if (nargin > 5)
-                                warning('objective_function:extra_arg',...
-                                    'Extra arguments for object of class ''%s''.',...
-                                    class(nic));
-                            end
-                        end
-                    end
-            end
-
-        end
-
-        function []=disp(nic)
-
-%  display the object
-
-            disp(sprintf('\n'));
-            for i=1:numel(nic)
-                disp(sprintf('class ''%s'' object ''%s%s'' = \n',...
-                    class(nic),inputname(1),string_dim(nic,i)));
-                disp(sprintf('    descriptor: ''%s'''  ,nic(i).descriptor));
-                disp(sprintf('         lower: %g'      ,nic(i).lower));
-                disp(sprintf('         upper: %g'      ,nic(i).upper));
-                disp(sprintf('    scale_type: ''%s'''  ,nic(i).scale_type));
-                disp(sprintf('         scale: %g\n'    ,nic(i).scale));
-            end
-
-        end
-
-        function [desc]  =prop_desc(nic,dstr)
-            desc=cell(1,numel(nic));
-            for i=1:numel(nic)
-                if ~isempty(nic(i).descriptor)
-                    desc(i)=cellstr(nic(i).descriptor);
-                elseif ~isempty(inputname(1))
-                    desc(i)=cellstr([inputname(1) string_dim(nic,i)]);
-                elseif exist('dstr','var')
-                    desc(i)=cellstr([dstr         string_dim(nic,i)]);
-                else
-                    desc(i)=cellstr(['nic'        string_dim(nic,i)]);
-                end
-            end
-            desc=allempty(desc);
-        end
-        function [stype] =prop_stype(nic)
-            stype=cell(size(nic));
-            for i=1:numel(nic)
-                stype(i)=cellstr(nic(i).scale_type);
-            end
-            stype=allequal(stype,'none');
-        end
-        function [scale] =prop_scale(nic)
-            scale=zeros(size(nic));
-            for i=1:numel(nic)
-                scale(i)=nic(i).scale;
-            end
-            scale=allequal(scale,1.);
-        end
-        function [weight]=prop_weight(nic)
-            weight=[];
-        end
-        function [lower] =prop_lower(nic)
-            lower=zeros(size(nic));
-            for i=1:numel(nic)
-                lower(i)=nic(i).lower;
-            end
-            lower=allequal(lower,-Inf);
-        end
-        function [upper] =prop_upper(nic)
-            upper=zeros(size(nic));
-            for i=1:numel(nic)
-                upper(i)=nic(i).upper;
-            end
-            upper=allequal(upper,0.);
-        end
-        function [target]=prop_target(nic)
-            target=[];
-        end
-    end
-    
-    methods (Static)
-        function [rdesc]=dakota_write(fidi,dresp,rdesc)
-
-%  collect only the responses of the appropriate class
-
-            nic=struc_class(dresp,'nonlinear_inequality_constraint');
-
-%  write responses
-
-            [rdesc]=rlist_write(fidi,'nonlinear_inequality_constraints','nonlinear_inequality',nic,rdesc);
-        end
-
-        function []=dakota_rlev_write(fidi,dresp,params)
-        end
-    end
-end
Index: sm/trunk/src/m/classes/@normal_uncertain/normal_uncertain.m
===================================================================
--- /issm/trunk/src/m/classes/@normal_uncertain/normal_uncertain.m	(revision 3094)
+++ 	(revision )
@@ -1,171 +1,0 @@
-%
-%  definition for the normal_uncertain class.
-%
-%  [nuv]=normal_uncertain(varargin)
-%
-%  where the required varargin are:
-%    descriptor    (char, description, '')
-%    mean          (double, mean, NaN)
-%    stddev        (double, standard deviation, NaN)
-%  and the optional varargin and defaults are:
-%    lower         (double, lower bound, -Inf)
-%    upper         (double, upper bound,  Inf)
-%
-%  note that zero arguments constructs a default instance; one
-%  argument of the class copies the instance; and three or more
-%  arguments constructs a new instance from the arguments.
-%
-%  "Copyright 2009, by the California Institute of Technology.
-%  ALL RIGHTS RESERVED. United States Government Sponsorship
-%  acknowledged. Any commercial use must be negotiated with
-%  the Office of Technology Transfer at the California Institute
-%  of Technology.  (J. Schiermeier, NTR 47078)
-%
-%  This software may be subject to U.S. export control laws.
-%  By accepting this  software, the user agrees to comply with
-%  all applicable U.S. export laws and regulations. User has the
-%  responsibility to obtain export licenses, or other export
-%  authority as may be required before exporting such information
-%  to foreign countries or providing access to foreign persons."
-%
-classdef normal_uncertain
-    properties
-        descriptor='';
-        mean      = NaN;
-        stddev    = NaN;
-        lower     =-Inf;
-        upper     = Inf;
-    end
-    
-    methods
-        function [nuv]=normal_uncertain(varargin)
-
-            switch nargin
-
-%  create a default object
-
-                case 0
-
-%  copy the object
-
-                case 1
-                    if isa(varargin{1},'normal_uncertain')
-                        nuv=varargin{1};
-                    else
-                        error('Object ''%s'' is a ''%s'' class object, not ''%s''.',...
-                            inputname(1),class(varargin{1}),'normal_uncertain');
-                    end
-
-%  not enough arguments
-
-                case 2
-                    error('Construction of ''%s'' class object requires at least %d inputs.',...
-                        'normal_uncertain',3)
-
-%  create the object from the input
-
-                otherwise
-                    nuv.descriptor=varargin{1};
-                    nuv.mean      =varargin{2};
-                    nuv.stddev    =varargin{3};
-
-                    if (nargin >= 4)
-                        nuv.lower     =varargin{4};
-                        if (nargin >= 5)
-                            nuv.upper     =varargin{5};
-                            if (nargin > 5)
-                                warning('normal_uncertain:extra_arg',...
-                                    'Extra arguments for object of class ''%s''.',...
-                                    class(nuv));
-                            end
-                        end
-                    end
-            end
-
-        end
-
-        function []=disp(nuv)
-
-%  display the object
-
-            disp(sprintf('\n'));
-            for i=1:numel(nuv)
-                disp(sprintf('class ''%s'' object ''%s%s'' = \n',...
-                    class(nuv),inputname(1),string_dim(nuv,i)));
-                disp(sprintf('    descriptor: ''%s'''  ,nuv(i).descriptor));
-                disp(sprintf('          mean: %g'      ,nuv(i).mean));
-                disp(sprintf('        stddev: %g'      ,nuv(i).stddev));
-                disp(sprintf('         lower: %g'      ,nuv(i).lower));
-                disp(sprintf('         upper: %g\n'    ,nuv(i).upper));
-            end
-
-        end
-
-        function [desc]  =prop_desc(nuv,dstr)
-            desc=cell(1,numel(nuv));
-            for i=1:numel(nuv)
-                if ~isempty(nuv(i).descriptor)
-                    desc(i)=cellstr(nuv(i).descriptor);
-                elseif ~isempty(inputname(1))
-                    desc(i)=cellstr([inputname(1) string_dim(nuv,i)]);
-                elseif exist('dstr','var')
-                    desc(i)=cellstr([dstr         string_dim(nuv,i)]);
-                else
-                    desc(i)=cellstr(['nuv'        string_dim(nuv,i)]);
-                end
-            end
-            desc=allempty(desc);
-        end
-        function [initpt]=prop_initpt(nuv)
-            initpt=[];
-        end
-        function [lower] =prop_lower(nuv)
-            lower=zeros(1,numel(nuv));
-            for i=1:numel(nuv)
-                lower(i)=nuv(i).lower;
-            end
-            lower=allequal(lower,-Inf);
-        end
-        function [upper] =prop_upper(nuv)
-            upper=zeros(1,numel(nuv));
-            for i=1:numel(nuv)
-                upper(i)=nuv(i).upper;
-            end
-            upper=allequal(upper, Inf);
-        end
-        function [mean]  =prop_mean(nuv)
-            mean=zeros(1,numel(nuv));
-            for i=1:numel(nuv)
-                mean(i)=nuv(i).mean;
-            end
-        end
-        function [stddev]=prop_stddev(nuv)
-            stddev=zeros(1,numel(nuv));
-            for i=1:numel(nuv)
-                stddev(i)=nuv(i).stddev;
-            end
-        end
-        function [initst]=prop_initst(nuv)
-            initst=[];
-        end
-        function [stype] =prop_stype(nuv)
-            stype={};
-        end
-        function [scale] =prop_scale(nuv)
-            scale=[];
-        end
-    end
-    
-    methods (Static)
-        function []=dakota_write(fidi,dvar)
-
-%  collect only the variables of the appropriate class
-
-            nuv=struc_class(dvar,'normal_uncertain');
-
-%  write variables
-
-            vlist_write(fidi,'normal_uncertain','nuv',nuv);
-        end
-    end
-end
Index: sm/trunk/src/m/classes/@objective_function/objective_function.m
===================================================================
--- /issm/trunk/src/m/classes/@objective_function/objective_function.m	(revision 3094)
+++ 	(revision )
@@ -1,153 +1,0 @@
-%
-%  definition for the objective_function class.
-%
-%  [of]=objective_function(varargin)
-%
-%  where the required varargin are:
-%    descriptor    (char, description, '')
-%  and the optional varargin and defaults are:
-%    scale_type    (char, scaling type, 'none')
-%    scale         (double, scaling factor, 1.)
-%    weight        (double, weighting factor, 1.)
-%
-%  note that zero arguments constructs a default instance; one
-%  argument of the class copies the instance; and one or more
-%  arguments constructs a new instance from the arguments.
-%
-%  "Copyright 2009, by the California Institute of Technology.
-%  ALL RIGHTS RESERVED. United States Government Sponsorship
-%  acknowledged. Any commercial use must be negotiated with
-%  the Office of Technology Transfer at the California Institute
-%  of Technology.  (J. Schiermeier, NTR 47078)
-%
-%  This software may be subject to U.S. export control laws.
-%  By accepting this  software, the user agrees to comply with
-%  all applicable U.S. export laws and regulations. User has the
-%  responsibility to obtain export licenses, or other export
-%  authority as may be required before exporting such information
-%  to foreign countries or providing access to foreign persons."
-%
-classdef objective_function
-    properties
-        descriptor='';
-        scale_type='none';
-        scale     = 1.;
-        weight    = 1.;
-    end
-    
-    methods
-        function [of]=objective_function(varargin)
-
-            switch nargin
-
-%  create a default object
-
-                case 0
-
-%  copy the object or create the object from the input
-
-                otherwise
-                    if  (nargin == 1) && isa(varargin{1},'objective_function')
-                        of=varargin{1};
-                    else
-                        of.descriptor=varargin{1};
-
-                        if (nargin >= 2)
-                            of.scale_type=varargin{2};
-                            if (nargin >= 3)
-                                of.scale     =varargin{3};
-                                if (nargin >= 4)
-                                    of.weight    =varargin{4};
-
-                                    if (nargin > 4)
-                                        warning('objective_function:extra_arg',...
-                                            'Extra arguments for object of class ''%s''.',...
-                                            class(of));
-                                    end
-                                end
-                            end
-                        end
-                    end
-            end
-
-        end
-
-        function []=disp(of)
-
-%  display the object
-
-            disp(sprintf('\n'));
-            for i=1:numel(of)
-                disp(sprintf('class ''%s'' object ''%s%s'' = \n',...
-                    class(of),inputname(1),string_dim(of,i)));
-                disp(sprintf('    descriptor: ''%s'''  ,of(i).descriptor));
-                disp(sprintf('    scale_type: ''%s'''  ,of(i).scale_type));
-                disp(sprintf('         scale: %g'      ,of(i).scale));
-                disp(sprintf('        weight: %g\n'    ,of(i).weight));
-            end
-
-        end
-
-        function [desc]  =prop_desc(of,dstr)
-            desc=cell(1,numel(of));
-            for i=1:numel(of)
-                if ~isempty(of(i).descriptor)
-                    desc(i)=cellstr(of(i).descriptor);
-                elseif ~isempty(inputname(1))
-                    desc(i)=cellstr([inputname(1) string_dim(of,i)]);
-                elseif exist('dstr','var')
-                    desc(i)=cellstr([dstr         string_dim(of,i)]);
-                else
-                    desc(i)=cellstr(['of'         string_dim(of,i)]);
-                end
-            end
-            desc=allempty(desc);
-        end
-        function [stype] =prop_stype(of)
-            stype=cell(1,numel(of));
-            for i=1:numel(of)
-                stype(i)=cellstr(of(i).scale_type);
-            end
-            stype=allequal(stype,'none');
-        end
-        function [scale] =prop_scale(of)
-            scale=zeros(1,numel(of));
-            for i=1:numel(of)
-                scale(i)=of(i).scale;
-            end
-            scale=allequal(scale,1.);
-        end
-        function [weight]=prop_weight(of)
-            weight=zeros(1,numel(of));
-            for i=1:numel(of)
-                weight(i)=of(i).weight;
-            end
-            weight=allequal(weight,1.);
-        end
-        function [lower] =prop_lower(of)
-            lower=[];
-        end
-        function [upper] =prop_upper(of)
-            upper=[];
-        end
-        function [target]=prop_target(of)
-            target=[];
-        end
-    end
-    
-    methods (Static)
-        function [rdesc]=dakota_write(fidi,dresp,rdesc)
-
-%  collect only the responses of the appropriate class
-
-            of=struc_class(dresp,'objective_function');
-
-%  write responses
-
-            [rdesc]=rlist_write(fidi,'objective_functions','objective_function',of,rdesc);
-        end
-
-        function []=dakota_rlev_write(fidi,dresp,params)
-        end
-    end
-end
Index: sm/trunk/src/m/classes/@response_function/response_function.m
===================================================================
--- /issm/trunk/src/m/classes/@response_function/response_function.m	(revision 3094)
+++ 	(revision )
@@ -1,171 +1,0 @@
-%
-%  definition for the response_function class.
-%
-%  [rf]=response_function(varargin)
-%
-%  where the required varargin are:
-%    descriptor    (char, description, '')
-%  and the optional varargin and defaults are:
-%    respl         (double vector, response levels, [])
-%    probl         (double vector, probability levels, [])
-%    rell          (double vector, reliability levels, [])
-%    grell         (double vector, gen. reliability levels, [])
-%
-%  note that zero arguments constructs a default instance; one
-%  argument of the class copies the instance; and one or more
-%  arguments constructs a new instance from the arguments.
-%
-%  "Copyright 2009, by the California Institute of Technology.
-%  ALL RIGHTS RESERVED. United States Government Sponsorship
-%  acknowledged. Any commercial use must be negotiated with
-%  the Office of Technology Transfer at the California Institute
-%  of Technology.  (J. Schiermeier, NTR 47078)
-%
-%  This software may be subject to U.S. export control laws.
-%  By accepting this  software, the user agrees to comply with
-%  all applicable U.S. export laws and regulations. User has the
-%  responsibility to obtain export licenses, or other export
-%  authority as may be required before exporting such information
-%  to foreign countries or providing access to foreign persons."
-%
-classdef response_function
-    properties
-        descriptor='';
-        respl     =[];
-        probl     =[];
-        rell      =[];
-        grell     =[];
-    end
-    
-    methods
-        function [rf]=response_function(varargin)
-
-            switch nargin
-
-%  create a default object
-
-                case 0
-
-%  copy the object or create the object from the input
-
-                otherwise
-                    if  (nargin == 1) && isa(varargin{1},'response_function')
-                        rf=varargin{1};
-                    else
-                        rf.descriptor=varargin{1};
-
-                        if (nargin >= 2)
-                            rf.respl     =varargin{2};
-                            if (nargin >= 3)
-                                rf.probl     =varargin{3};
-                                if (nargin >= 4)
-                                    rf.rell      =varargin{4};
-                                    if (nargin >= 5)
-                                        rf.grell     =varargin{5};
-
-                                        if (nargin > 5)
-                                            warning('response_function:extra_arg',...
-                                                'Extra arguments for object of class ''%s''.',...
-                                                class(rf));
-                                        end
-                                    end
-                                end
-                            end
-                        end
-                    end
-            end
-
-        end
-
-        function []=disp(rf)
-
-        %  display the object
-
-            disp(sprintf('\n'));
-            for i=1:numel(rf)
-                disp(sprintf('class ''%s'' object ''%s%s'' = \n',...
-                    class(rf),inputname(1),string_dim(rf,i)));
-                disp(sprintf('    descriptor: ''%s'''  ,rf(i).descriptor));
-                disp(sprintf('         respl: %s'      ,string_vec(rf(i).respl)));
-                disp(sprintf('         probl: %s'      ,string_vec(rf(i).probl)));
-                disp(sprintf('          rell: %s'      ,string_vec(rf(i).rell)));
-                disp(sprintf('         grell: %s\n'    ,string_vec(rf(i).grell)));
-            end
-
-        end
-
-        function [desc]  =prop_desc(rf,dstr)
-            desc=cell(1,numel(rf));
-            for i=1:numel(rf)
-                if ~isempty(rf(i).descriptor)
-                    desc(i)=cellstr(rf(i).descriptor);
-                elseif ~isempty(inputname(1))
-                    desc(i)=cellstr([inputname(1) string_dim(rf,i)]);
-                elseif exist('dstr','var')
-                    desc(i)=cellstr([dstr         string_dim(rf,i)]);
-                else
-                    desc(i)=cellstr(['rf'         string_dim(rf,i)]);
-                end
-            end
-            desc=allempty(desc);
-        end
-        function [stype] =prop_stype(rf)
-            stype={};
-        end
-        function [scale] =prop_scale(rf)
-            scale=[];
-        end
-        function [weight]=prop_weight(rf)
-            weight=[];
-        end
-        function [lower] =prop_lower(rf)
-            lower=[];
-        end
-        function [upper] =prop_upper(rf)
-            upper=[];
-        end
-        function [target]=prop_target(rf)
-            target=[];
-        end
-        function [respl,probl,rell,grell]=prop_levels(rf)
-            respl=cell(1,numel(rf));
-            probl=cell(1,numel(rf));
-            rell =cell(1,numel(rf));
-            grell=cell(1,numel(rf));
-            for i=1:numel(rf)
-                respl(i)={rf(i).respl};
-                probl(i)={rf(i).probl};
-                rell (i)={rf(i).rell};
-                grell(i)={rf(i).grell};
-            end
-            respl=allempty(respl);
-            probl=allempty(probl);
-            rell =allempty(rell);
-            grell=allempty(grell);
-        end
-    end
-    
-    methods (Static)
-        function [rdesc]=dakota_write(fidi,dresp,rdesc)
-
-%  collect only the responses of the appropriate class
-
-            rf=struc_class(dresp,'response_function');
-
-%  write responses
-
-            [rdesc]=rlist_write(fidi,'response_functions','response_function',rf,rdesc);
-        end
-        
-        function []=dakota_rlev_write(fidi,dresp,params)
-
-%  collect only the responses of the appropriate class
-
-            rf=struc_class(dresp,'response_function');
-
-%  write response levels
-
-            rlev_write(fidi,rf,params);
-        end
-    end
-end
Index: /issm/trunk/src/m/classes/continuous_design.m
===================================================================
--- /issm/trunk/src/m/classes/continuous_design.m	(revision 3095)
+++ /issm/trunk/src/m/classes/continuous_design.m	(revision 3095)
@@ -0,0 +1,181 @@
+%
+%  definition for the continuous_design class.
+%
+%  [cdv]=continuous_design(varargin)
+%
+%  where the required varargin are:
+%    descriptor    (char, description, '')
+%    initpt        (double, initial point, 0.)
+%  and the optional varargin and defaults are:
+%    lower         (double, lower bound, -Inf)
+%    upper         (double, upper bound,  Inf)
+%    scale_type    (char, scaling type, 'none')
+%    scale         (double, scaling factor, 1.)
+%
+%  note that zero arguments constructs a default instance; one
+%  argument of the class copies the instance; and two or more
+%  arguments constructs a new instance from the arguments.
+%
+%  "Copyright 2009, by the California Institute of Technology.
+%  ALL RIGHTS RESERVED. United States Government Sponsorship
+%  acknowledged. Any commercial use must be negotiated with
+%  the Office of Technology Transfer at the California Institute
+%  of Technology.  (J. Schiermeier, NTR 47078)
+%
+%  This software may be subject to U.S. export control laws.
+%  By accepting this  software, the user agrees to comply with
+%  all applicable U.S. export laws and regulations. User has the
+%  responsibility to obtain export licenses, or other export
+%  authority as may be required before exporting such information
+%  to foreign countries or providing access to foreign persons."
+%
+classdef continuous_design
+    properties
+        descriptor='';
+        initpt    = 0.;
+        lower     =-Inf;
+        upper     = Inf;
+        scale_type='none';
+        scale     = 1.;
+    end
+    
+    methods
+        function [cdv]=continuous_design(varargin)
+
+            switch nargin
+
+%  create a default object
+
+                case 0
+
+%  copy the object
+
+                case 1
+                    if isa(varargin{1},'continuous_design')
+                        cdv=varargin{1};
+                    else
+                        error('Object ''%s'' is a ''%s'' class object, not ''%s''.',...
+                            inputname(1),class(varargin{1}),'continuous_design');
+                    end
+
+%  create the object from the input
+
+                otherwise
+                    cdv.descriptor=varargin{1};
+
+                    if (nargin >= 2)
+                        cdv.initpt    =varargin{2};
+                        if (nargin >= 3)
+                            cdv.lower     =varargin{3};
+                            if (nargin >= 4)
+                                cdv.upper     =varargin{4};
+                                if (nargin >= 5)
+                                    cdv.scale_type=varargin{5};
+                                    if (nargin >= 6)
+                                        cdv.scale     =varargin{6};
+                                        if (nargin > 6)
+                                            warning('continuous_design:extra_arg',...
+                                                'Extra arguments for object of class ''%s''.',...
+                                                class(cdv));
+                                        end
+                                    end
+                                end
+                            end
+                        end
+                    end
+            end
+
+        end
+
+        function []=disp(cdv)
+
+%  display the object
+
+            disp(sprintf('\n'));
+            for i=1:numel(cdv)
+                disp(sprintf('class ''%s'' object ''%s%s'' = \n',...
+                    class(cdv),inputname(1),string_dim(cdv,i)));
+                disp(sprintf('    descriptor: ''%s'''  ,cdv(i).descriptor));
+                disp(sprintf('        initpt: %g'      ,cdv(i).initpt));
+                disp(sprintf('         lower: %g'      ,cdv(i).lower));
+                disp(sprintf('         upper: %g'      ,cdv(i).upper));
+                disp(sprintf('    scale_type: ''%s'''  ,cdv(i).scale_type));
+                disp(sprintf('         scale: %g'      ,cdv(i).scale));
+            end
+
+        end
+
+        function [desc]  =prop_desc(cdv,dstr)
+            desc=cell(1,numel(cdv));
+            for i=1:numel(cdv)
+                if ~isempty(cdv(i).descriptor)
+                    desc(i)=cellstr(cdv(i).descriptor);
+                elseif ~isempty(inputname(1))
+                    desc(i)=cellstr([inputname(1) string_dim(cdv,i)]);
+                elseif exist('dstr','var')
+                    desc(i)=cellstr([dstr         string_dim(cdv,i)]);
+                else
+                    desc(i)=cellstr(['cdv'        string_dim(cdv,i)]);
+                end
+            end
+            desc=allempty(desc);
+        end
+        function [initpt]=prop_initpt(cdv)
+            initpt=zeros(1,numel(cdv));
+            for i=1:numel(cdv)
+                initpt(i)=cdv(i).initpt;
+            end
+            initpt=allequal(initpt,0.);
+        end
+        function [lower] =prop_lower(cdv)
+            lower=zeros(1,numel(cdv));
+            for i=1:numel(cdv)
+                lower(i)=cdv(i).lower;
+            end
+            lower=allequal(lower,-Inf);
+        end
+        function [upper] =prop_upper(cdv)
+            upper=zeros(1,numel(cdv));
+            for i=1:numel(cdv)
+                upper(i)=cdv(i).upper;
+            end
+            upper=allequal(upper, Inf);
+        end
+        function [mean]  =prop_mean(cdv)
+            mean=[];
+        end
+        function [stddev]=prop_stddev(cdv)
+            stddev=[];
+        end
+        function [initst]=prop_initst(cdv)
+            initst=[];
+        end
+        function [stype] =prop_stype(cdv)
+            stype=cell(1,numel(cdv));
+            for i=1:numel(cdv)
+                stype(i)=cellstr(cdv(i).scale_type);
+            end
+            stype=allequal(stype,'none');
+        end
+        function [scale] =prop_scale(cdv)
+            scale=zeros(1,numel(cdv));
+            for i=1:numel(cdv)
+                scale(i)=cdv(i).scale;
+            end
+            scale=allequal(scale,1.);
+        end
+    end
+    
+    methods (Static)
+        function []=dakota_write(fidi,dvar)
+
+%  collect only the variables of the appropriate class
+
+            cdv=struc_class(dvar,'continuous_design');
+
+%  write variables
+
+            vlist_write(fidi,'continuous_design','cdv',cdv);
+        end
+    end
+end
Index: /issm/trunk/src/m/classes/continuous_state.m
===================================================================
--- /issm/trunk/src/m/classes/continuous_state.m	(revision 3095)
+++ /issm/trunk/src/m/classes/continuous_state.m	(revision 3095)
@@ -0,0 +1,161 @@
+%
+%  definition for the continuous_state class.
+%
+%  [csv]=continuous_state(varargin)
+%
+%  where the required varargin are:
+%    descriptor    (char, description, '')
+%    initst        (double, initial state, 0.)
+%  and the optional varargin and defaults are:
+%    lower         (double, lower bound, -Inf)
+%    upper         (double, upper bound,  Inf)
+%
+%  note that zero arguments constructs a default instance; one
+%  argument of the class copies the instance; and two or more
+%  arguments constructs a new instance from the arguments.
+%
+%  "Copyright 2009, by the California Institute of Technology.
+%  ALL RIGHTS RESERVED. United States Government Sponsorship
+%  acknowledged. Any commercial use must be negotiated with
+%  the Office of Technology Transfer at the California Institute
+%  of Technology.  (J. Schiermeier, NTR 47078)
+%
+%  This software may be subject to U.S. export control laws.
+%  By accepting this  software, the user agrees to comply with
+%  all applicable U.S. export laws and regulations. User has the
+%  responsibility to obtain export licenses, or other export
+%  authority as may be required before exporting such information
+%  to foreign countries or providing access to foreign persons."
+%
+classdef continuous_state
+    properties
+        descriptor='';
+        initst    = 0.;
+        lower     =-Inf;
+        upper     = Inf;
+    end
+    
+    methods
+        function [csv]=continuous_state(varargin)
+
+            switch nargin
+
+%  create a default object
+
+                case 0
+
+%  copy the object
+
+                case 1
+                    if isa(varargin{1},'continuous_state')
+                        csv=varargin{1};
+                    else
+                        error('Object ''%s'' is a ''%s'' class object, not ''%s''.',...
+                            inputname(1),class(varargin{1}),'continuous_state');
+                    end
+
+%  create the object from the input
+
+                otherwise
+                    csv.descriptor=varargin{1};
+
+                    if (nargin >= 2)
+                        csv.initst    =varargin{2};
+                        if (nargin >= 3)
+                            csv.lower     =varargin{3};
+                            if (nargin >= 4)
+                                csv.upper     =varargin{4};
+                                if (nargin > 4)
+                                    warning('continuous_state:extra_arg',...
+                                        'Extra arguments for object of class ''%s''.',...
+                                        class(csv));
+                                end
+                            end
+                        end
+                    end
+            end
+
+        end
+
+        function []=disp(csv)
+
+%  display the object
+
+            disp(sprintf('\n'));
+            for i=1:numel(csv)
+                disp(sprintf('class ''%s'' object ''%s%s'' = \n',...
+                    class(csv),inputname(1),string_dim(csv,i)));
+                disp(sprintf('    descriptor: ''%s'''  ,csv(i).descriptor));
+                disp(sprintf('        initst: %g'      ,csv(i).initst));
+                disp(sprintf('         lower: %g'      ,csv(i).lower));
+                disp(sprintf('         upper: %g\n'    ,csv(i).upper));
+            end
+
+        end
+
+        function [desc]  =prop_desc(csv,dstr)
+            desc=cell(1,numel(csv));
+            for i=1:numel(csv)
+                if ~isempty(csv(i).descriptor)
+                    desc(i)=cellstr(csv(i).descriptor);
+                elseif ~isempty(inputname(1))
+                    desc(i)=cellstr([inputname(1) string_dim(csv,i)]);
+                elseif exist('dstr','var')
+                    desc(i)=cellstr([dstr         string_dim(csv,i)]);
+                else
+                    desc(i)=cellstr(['csv'        string_dim(csv,i)]);
+                end
+            end
+            desc=allempty(desc);
+        end
+        function [initpt]=prop_initpt(csv)
+            initpt=[];
+        end
+        function [lower] =prop_lower(csv)
+            lower=zeros(1,numel(csv));
+            for i=1:numel(csv)
+                lower(i)=csv(i).lower;
+            end
+            lower=allequal(lower,-Inf);
+        end
+        function [upper] =prop_upper(csv)
+            upper=zeros(1,numel(csv));
+            for i=1:numel(csv)
+                upper(i)=csv(i).upper;
+            end
+            upper=allequal(upper, Inf);
+        end
+        function [mean]  =prop_mean(csv)
+            mean=[];
+        end
+        function [stddev]=prop_stddev(csv)
+            stddev=[];
+        end
+        function [initst]=prop_initst(csv)
+            initst=zeros(1,numel(csv));
+            for i=1:numel(csv)
+                initst(i)=csv(i).initst;
+            end
+            initst=allequal(initst,0.);
+        end
+        function [stype] =prop_stype(csv)
+            stype={};
+        end
+        function [scale] =prop_scale(csv)
+            scale=[];
+        end
+    end
+    
+    methods (Static)
+        function []=dakota_write(fidi,dvar)
+
+%  collect only the variables of the appropriate class
+
+            csv=struc_class(dvar,'continuous_state');
+
+%  write variables
+
+            vlist_write(fidi,'continuous_state','csv',csv);
+        end
+    end
+end
Index: /issm/trunk/src/m/classes/least_squares_term.m
===================================================================
--- /issm/trunk/src/m/classes/least_squares_term.m	(revision 3095)
+++ /issm/trunk/src/m/classes/least_squares_term.m	(revision 3095)
@@ -0,0 +1,153 @@
+%
+%  definition for the least_squares_term class.
+%
+%  [lst]=least_squares_term(varargin)
+%
+%  where the required varargin are:
+%    descriptor    (char, description, '')
+%  and the optional varargin and defaults are:
+%    scale_type    (char, scaling type, 'none')
+%    scale         (double, scaling factor, 1.)
+%    weight        (double, weighting factor, 1.)
+%
+%  note that zero arguments constructs a default instance; one
+%  argument of the class copies the instance; and one or more
+%  arguments constructs a new instance from the arguments.
+%
+%  "Copyright 2009, by the California Institute of Technology.
+%  ALL RIGHTS RESERVED. United States Government Sponsorship
+%  acknowledged. Any commercial use must be negotiated with
+%  the Office of Technology Transfer at the California Institute
+%  of Technology.  (J. Schiermeier, NTR 47078)
+%
+%  This software may be subject to U.S. export control laws.
+%  By accepting this  software, the user agrees to comply with
+%  all applicable U.S. export laws and regulations. User has the
+%  responsibility to obtain export licenses, or other export
+%  authority as may be required before exporting such information
+%  to foreign countries or providing access to foreign persons."
+%
+classdef least_squares_term
+    properties
+        descriptor='';
+        scale_type='none';
+        scale     = 1.;
+        weight    = 1.;
+    end
+    
+    methods
+        function [lst]=least_squares_term(varargin)
+
+            switch nargin
+
+%  create a default object
+
+                case 0
+
+%  copy the object or create the object from the input
+
+                otherwise
+                    if  (nargin == 1) && isa(varargin{1},'least_squares_term')
+                        lst=varargin{1};
+                    else
+                        lst.descriptor=varargin{1};
+
+                        if (nargin >= 2)
+                            lst.scale_type=varargin{2};
+                            if (nargin >= 3)
+                                lst.scale     =varargin{3};
+                                if (nargin >= 4)
+                                    lst.weight    =varargin{4};
+
+                                    if (nargin > 4)
+                                        warning('least_squares_term:extra_arg',...
+                                            'Extra arguments for object of class ''%s''.',...
+                                            class(lst));
+                                    end
+                                end
+                            end
+                        end
+                    end
+            end
+
+        end
+
+        function []=disp(lst)
+
+%  display the object
+
+            disp(sprintf('\n'));
+            for i=1:numel(lst)
+                disp(sprintf('class ''%s'' object ''%s%s'' = \n',...
+                    class(lst),inputname(1),string_dim(lst,i)));
+                disp(sprintf('    descriptor: ''%s'''  ,lst(i).descriptor));
+                disp(sprintf('    scale_type: ''%s'''  ,lst(i).scale_type));
+                disp(sprintf('         scale: %g'      ,lst(i).scale));
+                disp(sprintf('        weight: %g\n'    ,lst(i).weight));
+            end
+
+        end
+
+        function [desc]  =prop_desc(lst,dstr)
+            desc=cell(1,numel(lst));
+            for i=1:numel(lst)
+                if ~isempty(lst(i).descriptor)
+                    desc(i)=cellstr(lst(i).descriptor);
+                elseif ~isempty(inputname(1))
+                    desc(i)=cellstr([inputname(1) string_dim(lst,i)]);
+                elseif exist('dstr','var')
+                    desc(i)=cellstr([dstr         string_dim(lst,i)]);
+                else
+                    desc(i)=cellstr(['lst'        string_dim(lst,i)]);
+                end
+            end
+            desc=allempty(desc);
+        end
+        function [stype] =prop_stype(lst)
+            stype=cell(1,numel(lst));
+            for i=1:numel(lst)
+                stype(i)=cellstr(lst(i).scale_type);
+            end
+            stype=allequal(stype,'none');
+        end
+        function [scale] =prop_scale(lst)
+            scale=zeros(1,numel(lst));
+            for i=1:numel(lst)
+                scale(i)=lst(i).scale;
+            end
+            scale=allequal(scale,1.);
+        end
+        function [weight]=prop_weight(lst)
+            weight=zeros(1,numel(lst));
+            for i=1:numel(lst)
+                weight(i)=lst(i).weight;
+            end
+            weight=allequal(weight,1.);
+        end
+        function [lower] =prop_lower(lst)
+            lower=[];
+        end
+        function [upper] =prop_upper(lst)
+            upper=[];
+        end
+        function [target]=prop_target(lst)
+            target=[];
+        end
+    end
+    
+    methods (Static)
+        function [rdesc]=dakota_write(fidi,dresp,rdesc)
+
+%  collect only the responses of the appropriate class
+
+            lst=struc_class(dresp,'least_squares_term');
+
+%  write responses
+
+            [rdesc]=rlist_write(fidi,'least_squares_terms','least_squares_term',lst,rdesc);
+        end
+
+        function []=dakota_rlev_write(fidi,dresp,params)
+        end
+    end
+end
Index: /issm/trunk/src/m/classes/linear_equality_constraint.m
===================================================================
--- /issm/trunk/src/m/classes/linear_equality_constraint.m	(revision 3095)
+++ /issm/trunk/src/m/classes/linear_equality_constraint.m	(revision 3095)
@@ -0,0 +1,148 @@
+%
+%  constructor for the linear_equality_constraint class.
+%
+%  [lec]=linear_equality_constraint(varargin)
+%
+%  where the required varargin are:
+%    matrix        (double row, variable coefficients, NaN)
+%    target        (double vector, target values, 0.)
+%  and the optional varargin and defaults are:
+%    scale_type    (char, scaling type, 'none')
+%    scale         (double, scaling factor, 1.)
+%
+%  note that zero arguments constructs a default instance; one
+%  argument of the class copies the instance; and two or more
+%  arguments constructs a new instance from the arguments.
+%
+%  "Copyright 2009, by the California Institute of Technology.
+%  ALL RIGHTS RESERVED. United States Government Sponsorship
+%  acknowledged. Any commercial use must be negotiated with
+%  the Office of Technology Transfer at the California Institute
+%  of Technology.  (J. Schiermeier, NTR 47078)
+%
+%  This software may be subject to U.S. export control laws.
+%  By accepting this  software, the user agrees to comply with
+%  all applicable U.S. export laws and regulations. User has the
+%  responsibility to obtain export licenses, or other export
+%  authority as may be required before exporting such information
+%  to foreign countries or providing access to foreign persons."
+%
+classdef linear_equality_constraint
+    properties
+        matrix    = NaN;
+        target    = 0.;
+        scale_type='none';
+        scale     = 1.;
+    end
+    
+    methods
+        function [lec]=linear_equality_constraint(varargin)
+
+            switch nargin
+
+%  create a default object
+
+                case 0
+
+%  copy the object
+
+                case 1
+                    if isa(varargin{1},'linear_equality_constraint')
+                        lec=varargin{1};
+                    else
+                        error('Object ''%s'' is a ''%s'' class object, not ''%s''.',...
+                            inputname(1),class(varargin{1}),'linear_equality_constraint');
+                    end
+
+%  create the object from the input
+
+                otherwise
+                    if (size(varargin{1},1) > 1)
+                        warning('linear_equality_constraint:matrix_rows',...
+                            'Matrix for object of class ''%s'' has %d rows.',...
+                            class(lec),size(varargin{1},1));
+                    end
+                    lec.matrix    =varargin{1}(1,:);
+
+                    if (nargin >= 2)
+                        lec.target    =varargin{2};
+                        if (nargin >= 3)
+                            lec.scale_type=varargin{3};
+                            if (nargin >= 4)
+                                lec.scale     =varargin{4};
+
+                                if (nargin > 4)
+                                    warning('linear_equality_constraint:extra_arg',...
+                                        'Extra arguments for object of class ''%s''.',...
+                                        class(lec));
+                                end
+                            end
+                        end
+                    end
+            end
+        end
+
+        function []=disp(lec)
+
+%  display the object
+
+            disp(sprintf('\n'));
+            for i=1:numel(lec)
+                disp(sprintf('class ''%s'' object ''%s%s'' = \n',...
+                    class(lec),inputname(1),string_dim(lec,i)));
+                disp(sprintf('        matrix: %s'      ,string_vec(lec(i).matrix)));
+                disp(sprintf('        target: %g'      ,lec(i).target));
+                disp(sprintf('    scale_type: ''%s'''  ,lec(i).scale_type));
+                disp(sprintf('         scale: %g\n'    ,lec(i).scale));
+            end
+
+        end
+
+        function [matrix]=prop_matrix(lec)
+            matrix=zeros(numel(lec),0);
+            for i=1:numel(lec)
+                matrix(i,1:size(lec(i).matrix,2))=lec(i).matrix(1,:);
+            end
+        end
+        function [lower] =prop_lower(lec)
+            lower=[];
+        end
+        function [upper] =prop_upper(lec)
+            upper=[];
+        end
+        function [target]=prop_target(lec)
+            target=zeros(size(lec));
+            for i=1:numel(lec)
+                target(i)=lec(i).target;
+            end
+            target=allequal(target,0.);
+        end
+        function [stype] =prop_stype(lec)
+            stype=cell(size(lec));
+            for i=1:numel(lec)
+                stype(i)=cellstr(lec(i).scale_type);
+            end
+            stype=allequal(stype,'none');
+        end
+        function [scale] =prop_scale(lec)
+            scale=zeros(size(lec));
+            for i=1:numel(lec)
+                scale(i)=lec(i).scale;
+            end
+            scale=allequal(scale,1.);
+        end
+    end
+    
+    methods (Static)
+        function []=dakota_write(fidi,dvar)
+
+%  collect only the variables of the appropriate class
+
+            lec=struc_class(dvar,'linear_equality_constraint');
+
+%  write constraints
+
+            lclist_write(fidi,'linear_equality_constraints','linear_equality',lec);
+        end
+    end
+end
Index: /issm/trunk/src/m/classes/linear_inequality_constraint.m
===================================================================
--- /issm/trunk/src/m/classes/linear_inequality_constraint.m	(revision 3095)
+++ /issm/trunk/src/m/classes/linear_inequality_constraint.m	(revision 3095)
@@ -0,0 +1,165 @@
+%
+%  constructor for the linear_inequality_constraint class.
+%
+%  [lic]=linear_inequality_constraint(varargin)
+%
+%  where the required varargin are:
+%    matrix        (double row, variable coefficients, NaN)
+%    lower         (double vector, lower bounds, -Inf)
+%    upper         (double vector, upper bounds, 0.)
+%  and the optional varargin and defaults are:
+%    scale_type    (char, scaling type, 'none')
+%    scale         (double, scaling factor, 1.)
+%
+%  note that zero arguments constructs a default instance; one
+%  argument of the class copies the instance; and three or more
+%  arguments constructs a new instance from the arguments.
+%
+%  "Copyright 2009, by the California Institute of Technology.
+%  ALL RIGHTS RESERVED. United States Government Sponsorship
+%  acknowledged. Any commercial use must be negotiated with
+%  the Office of Technology Transfer at the California Institute
+%  of Technology.  (J. Schiermeier, NTR 47078)
+%
+%  This software may be subject to U.S. export control laws.
+%  By accepting this  software, the user agrees to comply with
+%  all applicable U.S. export laws and regulations. User has the
+%  responsibility to obtain export licenses, or other export
+%  authority as may be required before exporting such information
+%  to foreign countries or providing access to foreign persons."
+%
+classdef linear_inequality_constraint
+    properties
+        matrix    = NaN;
+        lower     =-Inf;
+        upper     = 0.;
+        scale_type='none';
+        scale     = 1.;
+    end
+    
+    methods
+        function [lic]=linear_inequality_constraint(varargin)
+
+            switch nargin
+
+%  create a default object
+
+                case 0
+
+%  copy the object
+
+                case 1
+                    if isa(varargin{1},'linear_inequality_constraint')
+                        lic=varargin{1};
+                    else
+                        error('Object ''%s'' is a ''%s'' class object, not ''%s''.',...
+                            inputname(1),class(varargin{1}),'linear_inequality_constraint');
+                    end
+
+%  not enough arguments
+
+                case 2
+                    error('Construction of ''%s'' class object requires at least %d inputs.',...
+                        'linear_inequality_constraint',3)
+
+%  create the object from the input
+
+                otherwise
+                    if (size(varargin{1},1) > 1)
+                        warning('linear_inequality_constraint:matrix_rows',...
+                            'Matrix for object of class ''%s'' has %d rows.',...
+                            class(lic),size(varargin{1},1));
+                    end
+                    lic.matrix    =varargin{1}(1,:);
+
+                    if (nargin >= 2)
+                        lic.lower     =varargin{2};
+                        if (nargin >= 3)
+                            lic.upper     =varargin{3};
+                            if (nargin >= 4)
+                                lic.scale_type=varargin{4};
+                                if (nargin >= 5)
+                                    lic.scale     =varargin{5};
+
+                                    if (nargin > 5)
+                                        warning('linear_inequality_constraint:extra_arg',...
+                                            'Extra arguments for object of class ''%s''.',...
+                                            class(lic));
+                                    end
+                                end
+                            end
+                        end
+                    end
+            end
+        end
+
+        function []=disp(lic)
+
+%  display the object
+
+            disp(sprintf('\n'));
+            for i=1:numel(lic)
+                disp(sprintf('class ''%s'' object ''%s%s'' = \n',...
+                    class(lic),inputname(1),string_dim(lic,i)));
+                disp(sprintf('        matrix: %s'      ,string_vec(lic(i).matrix)));
+                disp(sprintf('         lower: %g'      ,lic(i).lower));
+                disp(sprintf('         upper: %g'      ,lic(i).upper));
+                disp(sprintf('    scale_type: ''%s'''  ,lic(i).scale_type));
+                disp(sprintf('         scale: %g\n'    ,lic(i).scale));
+            end
+
+        end
+
+        function [matrix]=prop_matrix(lic)
+            matrix=zeros(numel(lic),0);
+            for i=1:numel(lic)
+                matrix(i,1:size(lic(i).matrix,2))=lic(i).matrix(1,:);
+            end
+        end
+        function [lower] =prop_lower(lic)
+            lower=zeros(size(lic));
+            for i=1:numel(lic)
+                lower(i)=lic(i).lower;
+            end
+            lower=allequal(lower,-Inf);
+        end
+        function [upper] =prop_upper(lic)
+            upper=zeros(size(lic));
+            for i=1:numel(lic)
+                upper(i)=lic(i).upper;
+            end
+            upper=allequal(upper,0.);
+        end
+        function [target]=prop_target(lic)
+            target=[];
+        end
+        function [stype] =prop_stype(lic)
+            stype=cell(size(lic));
+            for i=1:numel(lic)
+                stype(i)=cellstr(lic(i).scale_type);
+            end
+            stype=allequal(stype,'none');
+        end
+        function [scale] =prop_scale(lic)
+            scale=zeros(size(lic));
+            for i=1:numel(lic)
+                scale(i)=lic(i).scale;
+            end
+            scale=allequal(scale,1.);
+        end
+    end
+    
+    methods (Static)
+        function []=dakota_write(fidi,dvar)
+
+%  collect only the variables of the appropriate class
+
+            lic=struc_class(dvar,'linear_inequality_constraint');
+
+%  write constraints
+
+            lclist_write(fidi,'linear_inequality_constraints','linear_inequality',lic);
+        end
+    end
+end
+
Index: /issm/trunk/src/m/classes/nonlinear_equality_constraint.m
===================================================================
--- /issm/trunk/src/m/classes/nonlinear_equality_constraint.m	(revision 3095)
+++ /issm/trunk/src/m/classes/nonlinear_equality_constraint.m	(revision 3095)
@@ -0,0 +1,157 @@
+%
+%  constructor for the nonlinear_equality_constraint class.
+%
+%  [nec]=nonlinear_equality_constraint(varargin)
+%
+%  where the required varargin are:
+%    descriptor    (char, description, '')
+%    target        (double, target value, 0.)
+%  and the optional varargin and defaults are:
+%    scale_type    (char, scaling type, 'none')
+%    scale         (double, scaling factor, 1.)
+%
+%  note that zero arguments constructs a default instance; one
+%  argument of the class copies the instance; and two or more
+%  arguments constructs a new instance from the arguments.
+%
+%  "Copyright 2009, by the California Institute of Technology.
+%  ALL RIGHTS RESERVED. United States Government Sponsorship
+%  acknowledged. Any commercial use must be negotiated with
+%  the Office of Technology Transfer at the California Institute
+%  of Technology.  (J. Schiermeier, NTR 47078)
+%
+%  This software may be subject to U.S. export control laws.
+%  By accepting this  software, the user agrees to comply with
+%  all applicable U.S. export laws and regulations. User has the
+%  responsibility to obtain export licenses, or other export
+%  authority as may be required before exporting such information
+%  to foreign countries or providing access to foreign persons."
+%
+classdef nonlinear_equality_constraint
+    properties
+        descriptor='';
+        target    = 0.;
+        scale_type='none';
+        scale     = 1.;
+    end
+    
+    methods
+        function [nec]=nonlinear_equality_constraint(varargin)
+
+            switch nargin
+
+%  create a default object
+
+                case 0
+
+%  copy the object
+
+                case 1
+                    if isa(varargin{1},'nonlinear_equality_constraint')
+                        nec=varargin{1};
+                    else
+                        error('Object ''%s'' is a ''%s'' class object, not ''%s''.',...
+                            inputname(1),class(varargin{1}),'nonlinear_equality_constraint');
+                    end
+
+%  create the object from the input
+
+                otherwise
+                    nec.descriptor=varargin{1};
+                    nec.target    =varargin{2};
+
+                    if (nargin >= 3)
+                        nec.scale_type=varargin{3};
+                        if (nargin >= 4)
+                            nec.scale     =varargin{4};
+
+                            if (nargin > 4)
+                                warning('objective_function:extra_arg',...
+                                    'Extra arguments for object of class ''%s''.',...
+                                    class(nec));
+                            end
+                        end
+                    end
+            end
+
+        end
+
+        function []=disp(nec)
+
+%  display the object
+
+            disp(sprintf('\n'));
+            for i=1:numel(nec)
+                disp(sprintf('class ''%s'' object ''%s%s'' = \n',...
+                    class(nec),inputname(1),string_dim(nec,i)));
+                disp(sprintf('    descriptor: ''%s'''  ,nec(i).descriptor));
+                disp(sprintf('        target: %g'      ,nec(i).target));
+                disp(sprintf('    scale_type: ''%s'''  ,nec(i).scale_type));
+                disp(sprintf('         scale: %g\n'    ,nec(i).scale));
+            end
+
+        end
+
+        function [desc]  =prop_desc(nec,dstr)
+            desc=cell(1,numel(nec));
+            for i=1:numel(nec)
+                if ~isempty(nec(i).descriptor)
+                    desc(i)=cellstr(nec(i).descriptor);
+                elseif ~isempty(inputname(1))
+                    desc(i)=cellstr([inputname(1) string_dim(nec,i)]);
+                elseif exist('dstr','var')
+                    desc(i)=cellstr([dstr         string_dim(nec,i)]);
+                else
+                    desc(i)=cellstr(['nec'        string_dim(nec,i)]);
+                end
+            end
+            desc=allempty(desc);
+        end
+        function [stype] =prop_stype(nec)
+            stype=cell(size(nec));
+            for i=1:numel(nec)
+                stype(i)=cellstr(nec(i).scale_type);
+            end
+            stype=allequal(stype,'none');
+        end
+        function [scale] =prop_scale(nec)
+            scale=zeros(size(nec));
+            for i=1:numel(nec)
+                scale(i)=nec(i).scale;
+            end
+            scale=allequal(scale,1.);
+        end
+        function [weight]=prop_weight(nec)
+            weight=[];
+        end
+        function [lower] =prop_lower(nec)
+            lower=[];
+        end
+        function [upper] =prop_upper(nec)
+            upper=[];
+        end
+        function [target]=prop_target(nec)
+            target=zeros(size(nec));
+            for i=1:numel(nec)
+                target(i)=nec(i).target;
+            end
+            target=allequal(target,0.);
+        end
+    end
+    
+    methods (Static)
+        function [rdesc]=dakota_write(fidi,dresp,rdesc)
+
+%  collect only the responses of the appropriate class
+
+            nec=struc_class(dresp,'nonlinear_equality_constraint');
+
+%  write responses
+
+            [rdesc]=rlist_write(fidi,'nonlinear_equality_constraints','nonlinear_equality',nec,rdesc);
+        end
+
+        function []=dakota_rlev_write(fidi,dresp,params)
+        end
+    end
+end
Index: /issm/trunk/src/m/classes/nonlinear_inequality_constraint.m
===================================================================
--- /issm/trunk/src/m/classes/nonlinear_inequality_constraint.m	(revision 3095)
+++ /issm/trunk/src/m/classes/nonlinear_inequality_constraint.m	(revision 3095)
@@ -0,0 +1,171 @@
+%
+%  constructor for the nonlinear_inequality_constraint class.
+%
+%  [nic]=nonlinear_inequality_constraint(varargin)
+%
+%  where the required varargin are:
+%    descriptor    (char, description, '')
+%    lower         (double, lower bound, -Inf)
+%    upper         (double, upper bound, 0.)
+%  and the optional varargin and defaults are:
+%    scale_type    (char, scaling type, 'none')
+%    scale         (double, scaling factor, 1.)
+%
+%  note that zero arguments constructs a default instance; one
+%  argument of the class copies the instance; and three or more
+%  arguments constructs a new instance from the arguments.
+%
+%  "Copyright 2009, by the California Institute of Technology.
+%  ALL RIGHTS RESERVED. United States Government Sponsorship
+%  acknowledged. Any commercial use must be negotiated with
+%  the Office of Technology Transfer at the California Institute
+%  of Technology.  (J. Schiermeier, NTR 47078)
+%
+%  This software may be subject to U.S. export control laws.
+%  By accepting this  software, the user agrees to comply with
+%  all applicable U.S. export laws and regulations. User has the
+%  responsibility to obtain export licenses, or other export
+%  authority as may be required before exporting such information
+%  to foreign countries or providing access to foreign persons."
+%
+classdef nonlinear_inequality_constraint
+    properties
+        descriptor='';
+        lower     =-Inf;
+        upper     = 0.;
+        scale_type='none';
+        scale     = 1.;
+    end
+    
+    methods
+        function [nic]=nonlinear_inequality_constraint(varargin)
+
+            switch nargin
+
+ %  create a default object
+
+                case 0
+
+%  copy the object
+
+                case 1
+                    if isa(varargin{1},'nonlinear_inequality_constraint')
+                        nic=varargin{1};
+                    else
+                        error('Object ''%s'' is a ''%s'' class object, not ''%s''.',...
+                            inputname(1),class(varargin{1}),'nonlinear_inequality_constraint');
+                    end
+
+%  not enough arguments
+
+                case 2
+                    error('Construction of ''%s'' class object requires at least %d inputs.',...
+                        'nonlinear_inequality_constraint',3)
+
+%  create the object from the input
+
+                otherwise
+                    nic.descriptor=varargin{1};
+                    nic.lower     =varargin{2};
+                    nic.upper     =varargin{3};
+
+                    if (nargin >= 4)
+                        nic.scale_type=varargin{4};
+                        if (nargin >= 5)
+                            nic.scale     =varargin{5};
+
+                            if (nargin > 5)
+                                warning('objective_function:extra_arg',...
+                                    'Extra arguments for object of class ''%s''.',...
+                                    class(nic));
+                            end
+                        end
+                    end
+            end
+
+        end
+
+        function []=disp(nic)
+
+%  display the object
+
+            disp(sprintf('\n'));
+            for i=1:numel(nic)
+                disp(sprintf('class ''%s'' object ''%s%s'' = \n',...
+                    class(nic),inputname(1),string_dim(nic,i)));
+                disp(sprintf('    descriptor: ''%s'''  ,nic(i).descriptor));
+                disp(sprintf('         lower: %g'      ,nic(i).lower));
+                disp(sprintf('         upper: %g'      ,nic(i).upper));
+                disp(sprintf('    scale_type: ''%s'''  ,nic(i).scale_type));
+                disp(sprintf('         scale: %g\n'    ,nic(i).scale));
+            end
+
+        end
+
+        function [desc]  =prop_desc(nic,dstr)
+            desc=cell(1,numel(nic));
+            for i=1:numel(nic)
+                if ~isempty(nic(i).descriptor)
+                    desc(i)=cellstr(nic(i).descriptor);
+                elseif ~isempty(inputname(1))
+                    desc(i)=cellstr([inputname(1) string_dim(nic,i)]);
+                elseif exist('dstr','var')
+                    desc(i)=cellstr([dstr         string_dim(nic,i)]);
+                else
+                    desc(i)=cellstr(['nic'        string_dim(nic,i)]);
+                end
+            end
+            desc=allempty(desc);
+        end
+        function [stype] =prop_stype(nic)
+            stype=cell(size(nic));
+            for i=1:numel(nic)
+                stype(i)=cellstr(nic(i).scale_type);
+            end
+            stype=allequal(stype,'none');
+        end
+        function [scale] =prop_scale(nic)
+            scale=zeros(size(nic));
+            for i=1:numel(nic)
+                scale(i)=nic(i).scale;
+            end
+            scale=allequal(scale,1.);
+        end
+        function [weight]=prop_weight(nic)
+            weight=[];
+        end
+        function [lower] =prop_lower(nic)
+            lower=zeros(size(nic));
+            for i=1:numel(nic)
+                lower(i)=nic(i).lower;
+            end
+            lower=allequal(lower,-Inf);
+        end
+        function [upper] =prop_upper(nic)
+            upper=zeros(size(nic));
+            for i=1:numel(nic)
+                upper(i)=nic(i).upper;
+            end
+            upper=allequal(upper,0.);
+        end
+        function [target]=prop_target(nic)
+            target=[];
+        end
+    end
+    
+    methods (Static)
+        function [rdesc]=dakota_write(fidi,dresp,rdesc)
+
+%  collect only the responses of the appropriate class
+
+            nic=struc_class(dresp,'nonlinear_inequality_constraint');
+
+%  write responses
+
+            [rdesc]=rlist_write(fidi,'nonlinear_inequality_constraints','nonlinear_inequality',nic,rdesc);
+        end
+
+        function []=dakota_rlev_write(fidi,dresp,params)
+        end
+    end
+end
Index: /issm/trunk/src/m/classes/normal_uncertain.m
===================================================================
--- /issm/trunk/src/m/classes/normal_uncertain.m	(revision 3095)
+++ /issm/trunk/src/m/classes/normal_uncertain.m	(revision 3095)
@@ -0,0 +1,171 @@
+%
+%  definition for the normal_uncertain class.
+%
+%  [nuv]=normal_uncertain(varargin)
+%
+%  where the required varargin are:
+%    descriptor    (char, description, '')
+%    mean          (double, mean, NaN)
+%    stddev        (double, standard deviation, NaN)
+%  and the optional varargin and defaults are:
+%    lower         (double, lower bound, -Inf)
+%    upper         (double, upper bound,  Inf)
+%
+%  note that zero arguments constructs a default instance; one
+%  argument of the class copies the instance; and three or more
+%  arguments constructs a new instance from the arguments.
+%
+%  "Copyright 2009, by the California Institute of Technology.
+%  ALL RIGHTS RESERVED. United States Government Sponsorship
+%  acknowledged. Any commercial use must be negotiated with
+%  the Office of Technology Transfer at the California Institute
+%  of Technology.  (J. Schiermeier, NTR 47078)
+%
+%  This software may be subject to U.S. export control laws.
+%  By accepting this  software, the user agrees to comply with
+%  all applicable U.S. export laws and regulations. User has the
+%  responsibility to obtain export licenses, or other export
+%  authority as may be required before exporting such information
+%  to foreign countries or providing access to foreign persons."
+%
+classdef normal_uncertain
+    properties
+        descriptor='';
+        mean      = NaN;
+        stddev    = NaN;
+        lower     =-Inf;
+        upper     = Inf;
+    end
+    
+    methods
+        function [nuv]=normal_uncertain(varargin)
+
+            switch nargin
+
+%  create a default object
+
+                case 0
+
+%  copy the object
+
+                case 1
+                    if isa(varargin{1},'normal_uncertain')
+                        nuv=varargin{1};
+                    else
+                        error('Object ''%s'' is a ''%s'' class object, not ''%s''.',...
+                            inputname(1),class(varargin{1}),'normal_uncertain');
+                    end
+
+%  not enough arguments
+
+                case 2
+                    error('Construction of ''%s'' class object requires at least %d inputs.',...
+                        'normal_uncertain',3)
+
+%  create the object from the input
+
+                otherwise
+                    nuv.descriptor=varargin{1};
+                    nuv.mean      =varargin{2};
+                    nuv.stddev    =varargin{3};
+
+                    if (nargin >= 4)
+                        nuv.lower     =varargin{4};
+                        if (nargin >= 5)
+                            nuv.upper     =varargin{5};
+                            if (nargin > 5)
+                                warning('normal_uncertain:extra_arg',...
+                                    'Extra arguments for object of class ''%s''.',...
+                                    class(nuv));
+                            end
+                        end
+                    end
+            end
+
+        end
+
+        function []=disp(nuv)
+
+%  display the object
+
+            disp(sprintf('\n'));
+            for i=1:numel(nuv)
+                disp(sprintf('class ''%s'' object ''%s%s'' = \n',...
+                    class(nuv),inputname(1),string_dim(nuv,i)));
+                disp(sprintf('    descriptor: ''%s'''  ,nuv(i).descriptor));
+                disp(sprintf('          mean: %g'      ,nuv(i).mean));
+                disp(sprintf('        stddev: %g'      ,nuv(i).stddev));
+                disp(sprintf('         lower: %g'      ,nuv(i).lower));
+                disp(sprintf('         upper: %g\n'    ,nuv(i).upper));
+            end
+
+        end
+
+        function [desc]  =prop_desc(nuv,dstr)
+            desc=cell(1,numel(nuv));
+            for i=1:numel(nuv)
+                if ~isempty(nuv(i).descriptor)
+                    desc(i)=cellstr(nuv(i).descriptor);
+                elseif ~isempty(inputname(1))
+                    desc(i)=cellstr([inputname(1) string_dim(nuv,i)]);
+                elseif exist('dstr','var')
+                    desc(i)=cellstr([dstr         string_dim(nuv,i)]);
+                else
+                    desc(i)=cellstr(['nuv'        string_dim(nuv,i)]);
+                end
+            end
+            desc=allempty(desc);
+        end
+        function [initpt]=prop_initpt(nuv)
+            initpt=[];
+        end
+        function [lower] =prop_lower(nuv)
+            lower=zeros(1,numel(nuv));
+            for i=1:numel(nuv)
+                lower(i)=nuv(i).lower;
+            end
+            lower=allequal(lower,-Inf);
+        end
+        function [upper] =prop_upper(nuv)
+            upper=zeros(1,numel(nuv));
+            for i=1:numel(nuv)
+                upper(i)=nuv(i).upper;
+            end
+            upper=allequal(upper, Inf);
+        end
+        function [mean]  =prop_mean(nuv)
+            mean=zeros(1,numel(nuv));
+            for i=1:numel(nuv)
+                mean(i)=nuv(i).mean;
+            end
+        end
+        function [stddev]=prop_stddev(nuv)
+            stddev=zeros(1,numel(nuv));
+            for i=1:numel(nuv)
+                stddev(i)=nuv(i).stddev;
+            end
+        end
+        function [initst]=prop_initst(nuv)
+            initst=[];
+        end
+        function [stype] =prop_stype(nuv)
+            stype={};
+        end
+        function [scale] =prop_scale(nuv)
+            scale=[];
+        end
+    end
+    
+    methods (Static)
+        function []=dakota_write(fidi,dvar)
+
+%  collect only the variables of the appropriate class
+
+            nuv=struc_class(dvar,'normal_uncertain');
+
+%  write variables
+
+            vlist_write(fidi,'normal_uncertain','nuv',nuv);
+        end
+    end
+end
Index: /issm/trunk/src/m/classes/objective_function.m
===================================================================
--- /issm/trunk/src/m/classes/objective_function.m	(revision 3095)
+++ /issm/trunk/src/m/classes/objective_function.m	(revision 3095)
@@ -0,0 +1,153 @@
+%
+%  definition for the objective_function class.
+%
+%  [of]=objective_function(varargin)
+%
+%  where the required varargin are:
+%    descriptor    (char, description, '')
+%  and the optional varargin and defaults are:
+%    scale_type    (char, scaling type, 'none')
+%    scale         (double, scaling factor, 1.)
+%    weight        (double, weighting factor, 1.)
+%
+%  note that zero arguments constructs a default instance; one
+%  argument of the class copies the instance; and one or more
+%  arguments constructs a new instance from the arguments.
+%
+%  "Copyright 2009, by the California Institute of Technology.
+%  ALL RIGHTS RESERVED. United States Government Sponsorship
+%  acknowledged. Any commercial use must be negotiated with
+%  the Office of Technology Transfer at the California Institute
+%  of Technology.  (J. Schiermeier, NTR 47078)
+%
+%  This software may be subject to U.S. export control laws.
+%  By accepting this  software, the user agrees to comply with
+%  all applicable U.S. export laws and regulations. User has the
+%  responsibility to obtain export licenses, or other export
+%  authority as may be required before exporting such information
+%  to foreign countries or providing access to foreign persons."
+%
+classdef objective_function
+    properties
+        descriptor='';
+        scale_type='none';
+        scale     = 1.;
+        weight    = 1.;
+    end
+    
+    methods
+        function [of]=objective_function(varargin)
+
+            switch nargin
+
+%  create a default object
+
+                case 0
+
+%  copy the object or create the object from the input
+
+                otherwise
+                    if  (nargin == 1) && isa(varargin{1},'objective_function')
+                        of=varargin{1};
+                    else
+                        of.descriptor=varargin{1};
+
+                        if (nargin >= 2)
+                            of.scale_type=varargin{2};
+                            if (nargin >= 3)
+                                of.scale     =varargin{3};
+                                if (nargin >= 4)
+                                    of.weight    =varargin{4};
+
+                                    if (nargin > 4)
+                                        warning('objective_function:extra_arg',...
+                                            'Extra arguments for object of class ''%s''.',...
+                                            class(of));
+                                    end
+                                end
+                            end
+                        end
+                    end
+            end
+
+        end
+
+        function []=disp(of)
+
+%  display the object
+
+            disp(sprintf('\n'));
+            for i=1:numel(of)
+                disp(sprintf('class ''%s'' object ''%s%s'' = \n',...
+                    class(of),inputname(1),string_dim(of,i)));
+                disp(sprintf('    descriptor: ''%s'''  ,of(i).descriptor));
+                disp(sprintf('    scale_type: ''%s'''  ,of(i).scale_type));
+                disp(sprintf('         scale: %g'      ,of(i).scale));
+                disp(sprintf('        weight: %g\n'    ,of(i).weight));
+            end
+
+        end
+
+        function [desc]  =prop_desc(of,dstr)
+            desc=cell(1,numel(of));
+            for i=1:numel(of)
+                if ~isempty(of(i).descriptor)
+                    desc(i)=cellstr(of(i).descriptor);
+                elseif ~isempty(inputname(1))
+                    desc(i)=cellstr([inputname(1) string_dim(of,i)]);
+                elseif exist('dstr','var')
+                    desc(i)=cellstr([dstr         string_dim(of,i)]);
+                else
+                    desc(i)=cellstr(['of'         string_dim(of,i)]);
+                end
+            end
+            desc=allempty(desc);
+        end
+        function [stype] =prop_stype(of)
+            stype=cell(1,numel(of));
+            for i=1:numel(of)
+                stype(i)=cellstr(of(i).scale_type);
+            end
+            stype=allequal(stype,'none');
+        end
+        function [scale] =prop_scale(of)
+            scale=zeros(1,numel(of));
+            for i=1:numel(of)
+                scale(i)=of(i).scale;
+            end
+            scale=allequal(scale,1.);
+        end
+        function [weight]=prop_weight(of)
+            weight=zeros(1,numel(of));
+            for i=1:numel(of)
+                weight(i)=of(i).weight;
+            end
+            weight=allequal(weight,1.);
+        end
+        function [lower] =prop_lower(of)
+            lower=[];
+        end
+        function [upper] =prop_upper(of)
+            upper=[];
+        end
+        function [target]=prop_target(of)
+            target=[];
+        end
+    end
+    
+    methods (Static)
+        function [rdesc]=dakota_write(fidi,dresp,rdesc)
+
+%  collect only the responses of the appropriate class
+
+            of=struc_class(dresp,'objective_function');
+
+%  write responses
+
+            [rdesc]=rlist_write(fidi,'objective_functions','objective_function',of,rdesc);
+        end
+
+        function []=dakota_rlev_write(fidi,dresp,params)
+        end
+    end
+end
Index: /issm/trunk/src/m/classes/response_function.m
===================================================================
--- /issm/trunk/src/m/classes/response_function.m	(revision 3095)
+++ /issm/trunk/src/m/classes/response_function.m	(revision 3095)
@@ -0,0 +1,171 @@
+%
+%  definition for the response_function class.
+%
+%  [rf]=response_function(varargin)
+%
+%  where the required varargin are:
+%    descriptor    (char, description, '')
+%  and the optional varargin and defaults are:
+%    respl         (double vector, response levels, [])
+%    probl         (double vector, probability levels, [])
+%    rell          (double vector, reliability levels, [])
+%    grell         (double vector, gen. reliability levels, [])
+%
+%  note that zero arguments constructs a default instance; one
+%  argument of the class copies the instance; and one or more
+%  arguments constructs a new instance from the arguments.
+%
+%  "Copyright 2009, by the California Institute of Technology.
+%  ALL RIGHTS RESERVED. United States Government Sponsorship
+%  acknowledged. Any commercial use must be negotiated with
+%  the Office of Technology Transfer at the California Institute
+%  of Technology.  (J. Schiermeier, NTR 47078)
+%
+%  This software may be subject to U.S. export control laws.
+%  By accepting this  software, the user agrees to comply with
+%  all applicable U.S. export laws and regulations. User has the
+%  responsibility to obtain export licenses, or other export
+%  authority as may be required before exporting such information
+%  to foreign countries or providing access to foreign persons."
+%
+classdef response_function
+    properties
+        descriptor='';
+        respl     =[];
+        probl     =[];
+        rell      =[];
+        grell     =[];
+    end
+    
+    methods
+        function [rf]=response_function(varargin)
+
+            switch nargin
+
+%  create a default object
+
+                case 0
+
+%  copy the object or create the object from the input
+
+                otherwise
+                    if  (nargin == 1) && isa(varargin{1},'response_function')
+                        rf=varargin{1};
+                    else
+                        rf.descriptor=varargin{1};
+
+                        if (nargin >= 2)
+                            rf.respl     =varargin{2};
+                            if (nargin >= 3)
+                                rf.probl     =varargin{3};
+                                if (nargin >= 4)
+                                    rf.rell      =varargin{4};
+                                    if (nargin >= 5)
+                                        rf.grell     =varargin{5};
+
+                                        if (nargin > 5)
+                                            warning('response_function:extra_arg',...
+                                                'Extra arguments for object of class ''%s''.',...
+                                                class(rf));
+                                        end
+                                    end
+                                end
+                            end
+                        end
+                    end
+            end
+
+        end
+
+        function []=disp(rf)
+
+        %  display the object
+
+            disp(sprintf('\n'));
+            for i=1:numel(rf)
+                disp(sprintf('class ''%s'' object ''%s%s'' = \n',...
+                    class(rf),inputname(1),string_dim(rf,i)));
+                disp(sprintf('    descriptor: ''%s'''  ,rf(i).descriptor));
+                disp(sprintf('         respl: %s'      ,string_vec(rf(i).respl)));
+                disp(sprintf('         probl: %s'      ,string_vec(rf(i).probl)));
+                disp(sprintf('          rell: %s'      ,string_vec(rf(i).rell)));
+                disp(sprintf('         grell: %s\n'    ,string_vec(rf(i).grell)));
+            end
+
+        end
+
+        function [desc]  =prop_desc(rf,dstr)
+            desc=cell(1,numel(rf));
+            for i=1:numel(rf)
+                if ~isempty(rf(i).descriptor)
+                    desc(i)=cellstr(rf(i).descriptor);
+                elseif ~isempty(inputname(1))
+                    desc(i)=cellstr([inputname(1) string_dim(rf,i)]);
+                elseif exist('dstr','var')
+                    desc(i)=cellstr([dstr         string_dim(rf,i)]);
+                else
+                    desc(i)=cellstr(['rf'         string_dim(rf,i)]);
+                end
+            end
+            desc=allempty(desc);
+        end
+        function [stype] =prop_stype(rf)
+            stype={};
+        end
+        function [scale] =prop_scale(rf)
+            scale=[];
+        end
+        function [weight]=prop_weight(rf)
+            weight=[];
+        end
+        function [lower] =prop_lower(rf)
+            lower=[];
+        end
+        function [upper] =prop_upper(rf)
+            upper=[];
+        end
+        function [target]=prop_target(rf)
+            target=[];
+        end
+        function [respl,probl,rell,grell]=prop_levels(rf)
+            respl=cell(1,numel(rf));
+            probl=cell(1,numel(rf));
+            rell =cell(1,numel(rf));
+            grell=cell(1,numel(rf));
+            for i=1:numel(rf)
+                respl(i)={rf(i).respl};
+                probl(i)={rf(i).probl};
+                rell (i)={rf(i).rell};
+                grell(i)={rf(i).grell};
+            end
+            respl=allempty(respl);
+            probl=allempty(probl);
+            rell =allempty(rell);
+            grell=allempty(grell);
+        end
+    end
+    
+    methods (Static)
+        function [rdesc]=dakota_write(fidi,dresp,rdesc)
+
+%  collect only the responses of the appropriate class
+
+            rf=struc_class(dresp,'response_function');
+
+%  write responses
+
+            [rdesc]=rlist_write(fidi,'response_functions','response_function',rf,rdesc);
+        end
+        
+        function []=dakota_rlev_write(fidi,dresp,params)
+
+%  collect only the responses of the appropriate class
+
+            rf=struc_class(dresp,'response_function');
+
+%  write response levels
+
+            rlev_write(fidi,rf,params);
+        end
+    end
+end
