def __init__(self, problem, pdofs, drange, is_overlap, psol, comm, matrix_hook=None, verbose=False): BasicEvaluator.__init__(self, problem, matrix_hook=matrix_hook) Struct.__init__(self, pdofs=pdofs, drange=drange, is_overlap=is_overlap, comm=comm, verbose=verbose) variables = problem.get_variables() di = variables.di ebc_rows = [] for ii, variable in enumerate(variables.iter_state(ordered=True)): eq_map = variable.eq_map ebc_rows.append(eq_map.eq_ebc + di.ptr[ii]) self.ebc_rows = nm.concatenate(ebc_rows) self.psol_i = pp.create_local_petsc_vector(pdofs) self.gather, self.scatter = pp.create_gather_scatter(pdofs, self.psol_i, psol, comm=comm)
def __init__(self, problem, pdofs, drange, is_overlap, psol, comm, matrix_hook=None, verbose=False): BasicEvaluator.__init__(self, problem, matrix_hook=matrix_hook) Struct.__init__(self, pdofs=pdofs, drange=drange, is_overlap=is_overlap, comm=comm, verbose=verbose) self.psol_i = pp.create_local_petsc_vector(pdofs) self.gather, self.scatter = pp.create_gather_scatter(pdofs, self.psol_i, psol, comm=comm)