def __init__(self, geom_parts):
        super(STLGroup, self).__init__()

        self._comps = []
        self._i_comps = {}
        self._n_comps = 0

        for name,comp in geom_parts: 
            comp.name = name
            self._i_comps[name] = self._n_comps
            self._comps.append(comp)
            self._n_comps += 1
            self.add(name, VarTree(VariableTree(), iotype="in", desc=name%"inputs for %s component")) #create the input VariableTree for this comp

        io = self._build_io()
        for (comp_name, var_name), meta in io: 
            comp = self.get(comp_name)
            val = meta['value']
            del meta['value']
            comp.add(var_name, Array(val, **meta))

        #add the geometry var tree
        n_points = self.points.shape[0]
        n_tria = self.triangles.shape[0]
        self.add('geom_data', VarTree(GeomData(n_points, n_tria), iotype="out", desc="geometry points and connectivity"))
        self.geom_data.points = self.points
        self.geom_data.facets = self.triangles
        
        self._needs_linerize = True
dataset/ETHPy150Open OpenMDAO/OpenMDAO-Framework/openmdao.lib/src/openmdao/lib/geometry/stl_group.py/STLGroup.__init__/swapped operands of `%`