def refine(self): """ Uniformly refine the domain mesh. Returns ------- domain : FEDomain instance The new domain with the refined mesh. Notes ----- Works only for meshes with single element type! Does not preserve node groups! """ names = set() for group in self.groups.itervalues(): names.add(group.gel.name) if len(names) != 1: msg = 'refine() works only for meshes with single element type!' raise NotImplementedError(msg) el_type = names.pop() if el_type == '2_3': mesh = refine_2_3(self.mesh, self.cmesh) elif el_type == '2_4': mesh = refine_2_4(self.mesh, self.cmesh) elif el_type == '3_4': mesh = refine_3_4(self.mesh, self.cmesh) elif el_type == '3_8': mesh = refine_3_8(self.mesh, self.cmesh) else: msg = 'unsupported element type! (%s)' % el_type raise NotImplementedError(msg) domain = FEDomain(self.name + '_r', mesh) return domain
def refine(self): """ Uniformly refine the domain mesh. Returns ------- domain : FEDomain instance The new domain with the refined mesh. Notes ----- Works only for meshes with single element type! Does not preserve node groups! """ if len(self.geom_els) != 1: msg = 'refine() works only for meshes with single element type!' raise NotImplementedError(msg) el_type = list(self.geom_els.values())[0].name if el_type == '1_2': mesh = refine_1_2(self.mesh) elif el_type == '2_3': mesh = refine_2_3(self.mesh) elif el_type == '2_4': mesh = refine_2_4(self.mesh) elif el_type == '3_4': mesh = refine_3_4(self.mesh) elif el_type == '3_8': mesh = refine_3_8(self.mesh) else: msg = 'unsupported element type! (%s)' % el_type raise NotImplementedError(msg) domain = FEDomain(self.name + '_r', mesh) return domain
def refine(self): """ Uniformly refine the domain mesh. Returns ------- domain : FEDomain instance The new domain with the refined mesh. Notes ----- Works only for meshes with single element type! Does not preserve node groups! """ if len(self.geom_els) != 1: msg = 'refine() works only for meshes with single element type!' raise NotImplementedError(msg) el_type = list(self.geom_els.values())[0].name if el_type == '2_3': mesh = refine_2_3(self.mesh) elif el_type == '2_4': mesh = refine_2_4(self.mesh) elif el_type == '3_4': mesh = refine_3_4(self.mesh) elif el_type == '3_8': mesh = refine_3_8(self.mesh) else: msg = 'unsupported element type! (%s)' % el_type raise NotImplementedError(msg) domain = FEDomain(self.name + '_r', mesh) return domain