コード例 #1
0
    def _add_output(self, name):
        """Adds the specified output variable and its associated surrogate Slot."""

        if "." not in name:  # non vartree variable
            self.surrogates[name] = None
            if self.default_surrogate is not None:
                surrogate = deepcopy(self.default_surrogate)
                self._default_surrogate_copies[name] = surrogate
                self._add_var_for_surrogate(surrogate, name)
            else:
                self.add_trait(name, self._clone_trait(name))
        else:
            self.surrogates[name] = None
            vartreename = name.split(".")[0]
            subvarname = name.split(".")[1]
            if not hasattr(self, vartreename):
                self.add_trait(vartreename,
                               _clone_trait(self.model.trait(vartreename)))
                setattr(self, vartreename, copy(getattr(self.model, vartreename)))

            if self.default_surrogate is not None:
                surrogate = deepcopy(self.default_surrogate)
                self._default_surrogate_copies[name] = surrogate
                self._add_var_for_surrogate(surrogate, name)
            else:
                metamodel_vartree_node = self.get(vartreename)
                model_vartree_node = self.model.get(vartreename)
                metamodel_vartree_node.add_trait(subvarname,
                                                 _clone_trait(model_vartree_node.trait(subvarname)))

        self._training_data[name] = []
コード例 #2
0
    def _add_output(self, name):
        """Adds the specified output variable and its associated surrogate Slot."""

        if "." not in name:  # non vartree variable
            self.surrogates[name] = None
            if self.default_surrogate is not None:
                surrogate = deepcopy(self.default_surrogate)
                self._default_surrogate_copies[name] = surrogate
                self._add_var_for_surrogate(surrogate, name)
            else:
                self.add_trait(name, self._clone_trait(name))
        else:
            self.surrogates[name] = None
            vartreename = name.split(".")[0]
            subvarname = name.split(".")[1]
            if not hasattr(self, vartreename):
                self.add_trait(vartreename,
                               _clone_trait(self.model.trait(vartreename)))
                setattr(self, vartreename, copy(getattr(self.model, vartreename)))

            if self.default_surrogate is not None:
                surrogate = deepcopy(self.default_surrogate)
                self._default_surrogate_copies[name] = surrogate
                self._add_var_for_surrogate(surrogate, name)
            else:
                metamodel_vartree_node = self.get(vartreename)
                model_vartree_node = self.model.get(vartreename)
                metamodel_vartree_node.add_trait(subvarname,
                                                 _clone_trait(model_vartree_node.trait(subvarname)))

        self._training_data[name] = []
コード例 #3
0
ファイル: metamodel.py プロジェクト: relf/OpenMDAO-Framework
    def _add_input(self, name):
        """Adds the specified input variable."""

        if "." not in name:  # non vartree variable
            self.add_trait(name, self._clone_trait(name))
            setattr(self, name, getattr(self.model, name))
        else:
            vartreename, subvarname = name.split(".")

            if not hasattr(self, vartreename):
                self.add_trait(vartreename, _clone_trait(self.model.trait(vartreename)))
                setattr(self, vartreename, copy(getattr(self.model, vartreename)))

            metamodel_vartree_node = self.get(vartreename)
            model_vartree_node = self.model.get(vartreename)
            metamodel_vartree_node.add_trait(subvarname, _clone_trait(model_vartree_node.trait(subvarname)))
            metamodel_vartree_node.set(subvarname, model_vartree_node.get(subvarname))
コード例 #4
0
    def _add_input(self, name):
        """Adds the specified input variable."""

        if "." not in name:  # non vartree variable
            self.add_trait(name, self._clone_trait(name))
            setattr(self, name, getattr(self.model, name))
        else:
            vartreename, subvarname = name.split(".")

            if not hasattr(self, vartreename):
                self.add_trait(vartreename,
                               _clone_trait(self.model.trait(vartreename)))
                setattr(self, vartreename, copy(getattr(self.model, vartreename)))

            metamodel_vartree_node = self.get(vartreename)
            model_vartree_node = self.model.get(vartreename)
            metamodel_vartree_node.add_trait(subvarname,
                                             _clone_trait(model_vartree_node.trait(subvarname)))
            metamodel_vartree_node.set(subvarname, model_vartree_node.get(subvarname))
コード例 #5
0
ファイル: metamodel.py プロジェクト: relf/OpenMDAO-Framework
 def _clone_trait(self, name):
     """ Return valid new trait for model trait `name`. """
     trait = self.model.trait(name)
     if hasattr(trait, "get"):  # Property trait -- don't use normal clone.
         val = getattr(self.model, name)
         metadata = {}
         for attr in ("iotype", "desc", "low", "high", "exclude_low", "exclude_high", "units"):
             try:
                 metadata[attr] = getattr(trait, attr)
             except AttributeError:
                 pass
         if metadata["iotype"] == "in":
             metadata["default_value"] = val
         if isinstance(val, float):
             trait = Float(**metadata)
         else:
             trait = Int(**metadata)
     else:
         trait = _clone_trait(trait)
     return trait
コード例 #6
0
 def _clone_trait(self, name):
     """ Return valid new trait for model trait `name`. """
     trait = self.model.trait(name)
     if hasattr(trait, 'get'):  # Property trait -- don't use normal clone.
         val = getattr(self.model, name)
         metadata = {}
         for attr in ('iotype', 'desc', 'low', 'high',
                      'exclude_low', 'exclude_high', 'units'):
             try:
                 metadata[attr] = getattr(trait, attr)
             except AttributeError:
                 pass
         if metadata['iotype'] == 'in':
             metadata['default_value'] = val
         if isinstance(val, float):
             trait = Float(**metadata)
         else:
             trait = Int(**metadata)
     else:
         trait = _clone_trait(trait)
     return trait
コード例 #7
0
 def _clone_trait(self, name):
     """ Return valid new trait for model trait `name`. """
     trait = self.model.trait(name)
     if hasattr(trait, 'get'):  # Property trait -- don't use normal clone.
         val = getattr(self.model, name)
         metadata = {}
         for attr in ('iotype', 'desc', 'low', 'high',
                      'exclude_low', 'exclude_high', 'units'):
             try:
                 metadata[attr] = getattr(trait, attr)
             except AttributeError:
                 pass
         if metadata['iotype'] == 'in':
             metadata['default_value'] = val
         if isinstance(val, float):
             trait = Float(**metadata)
         else:
             trait = Int(**metadata)
     else:
         trait = _clone_trait(trait)
     return trait