def constructBasis(basisallocator, basisrule): ''' Build an element to basis (distributed) map based on a basisrule''' manager = ppdd.ddictmanager(ppdd.elementddictinfo(basisallocator.mesh), True) etob = manager.getDict() localPopulateBasis(etob, basisrule, basisallocator) manager.sync() return pcbu.CellToBases(etob, range(basisallocator.mesh.nelements))
def __init__(self, problem, ibc, systemklass, quadpoints, factor = 1, *args, **kwargs): self.problem = problem self.etobmanager = ppdd.ddictmanager(ppdd.elementddictinfo(problem.mesh, True), True) self.etob = self.etobmanager.getDict() self.quadpoints = quadpoints self.controller = BasisController(problem.mesh, quadpoints, self.etob, ibc) self.etobmanager.sync() self.factor = factor self.nelements = problem.mesh.nelements self.sysargs = args self.syskwargs = kwargs self.systemklass = systemklass
def __init__(self, problem, controller, systemklass, *args, **kwargs): self.problem = problem self.etobmanager = ppdd.ddictmanager(ppdd.elementddictinfo(problem.mesh, True), True) self.etob = self.etobmanager.getDict() self.controller = controller self.createsys = lambda basis: systemklass(problem, basis, *args, **kwargs)