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)
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
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
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)
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)