Ejemplo n.º 1
0
    def check_args(self):
        """
        Common checking to all terms.

        Check compatibility of field and term regions.
        """
        vns = self.get_variable_names()
        for name in vns:
            field = self._kwargs[name].get_field()
            if field is None:
                continue

            region = self.region
            if self.arg_traces[name]:
                mreg_name = self.arg_trace_regions[name]
                if mreg_name is None:
                    mreg_name = region.setup_mirror_region(mreg_name,
                                                           ret_name=True)
                    self.arg_trace_regions[name] = mreg_name
                else:
                    region.setup_mirror_region(mreg_name)

                region = region.get_mirror_region(mreg_name)

            if not nm.all(in1d(region.vertices, field.region.vertices)):
                msg = ('%s: incompatible regions: (self, field %s)'
                       + '(%s in %s)') %\
                       (self.name, field.name,
                        self.region.vertices, field.region.vertices)
                raise ValueError(msg)
Ejemplo n.º 2
0
def _permute_facets(facets, ori, ori_map):
    """
    Return a copy of `facets` array with vertices sorted lexicographically.
    """
    assert_((in1d(nm.unique(ori), ori_map.keys())).all())

    permuted_facets = facets.copy()

    for key, ori_map in ori_map.iteritems():
        perm = ori_map[1]
        ip = nm.where(ori == key)[0]
        for ic0, ic1 in enumerate(perm):
            permuted_facets[ip, ic0] = facets[ip, ic1]

    return permuted_facets
Ejemplo n.º 3
0
def _permute_facets(facets, ori, ori_map):
    """
    Return a copy of `facets` array with vertices sorted lexicographically.
    """
    assert_((in1d(nm.unique(ori), ori_map.keys())).all())

    permuted_facets = facets.copy()

    for key, ori_map in ori_map.iteritems():
        perm = ori_map[1]
        ip = nm.where(ori == key)[0]
        for ic0, ic1 in enumerate(perm):
            permuted_facets[ip,ic0] = facets[ip,ic1]

    return permuted_facets
Ejemplo n.º 4
0
    def check_args(self):
        """
        Common checking to all terms.

        Check compatibility of field and term regions.
        """
        vns = self.get_variable_names()
        for name in vns:
            field = self._kwargs[name].get_field()
            if field is None:
                continue

            if not nm.all(in1d(self.region.vertices, field.region.vertices)):
                msg = ('%s: incompatible regions: (self, field %s)'
                       + '(%s in %s)') %\
                       (self.name, field.name,
                        self.region.vertices, field.region.vertices)
                raise ValueError(msg)
Ejemplo n.º 5
0
    def check_args(self):
        """
        Common checking to all terms.

        Check compatibility of field and term regions.
        """
        vns = self.get_variable_names()
        for name in vns:
            field = self._kwargs[name].get_field()
            if field is None:
                continue

            if not nm.all(in1d(self.region.vertices,
                               field.region.vertices)):
                msg = ('%s: incompatible regions: (self, field %s)'
                       + '(%s in %s)') %\
                       (self.name, field.name,
                        self.region.vertices, field.region.vertices)
                raise ValueError(msg)
Ejemplo n.º 6
0
    def check_args(self):
        """
        Common checking to all terms.

        Check compatibility of field and term subdomain lists (igs).
        """
        igs = self.char_fun.igs
        vns = self.get_variable_names()
        for name in vns:
            field = self._kwargs[name].get_field()
            if field is None:
                continue

            if not nm.all(in1d(self.region.all_vertices, field.region.all_vertices)):
                msg = ("%s: incompatible regions: (self, field %s)" + "(%s in %s)") % (
                    self.name,
                    field.name,
                    self.region.all_vertices,
                    field.region.all_vertices,
                )
                raise ValueError(msg)