Hi folks, The following set of options: ap_mg_params = {"mat_type": "matfree", "snes_type": "ksponly", "ksp_type": "gmres", "ksp_rtol": 1.0e-8, "ksp_atol": 0.0, "ksp_max_it": 1000, "ksp_monitor": None, "ksp_converged_reason": None, "ksp_norm_type": "unpreconditioned", "pc_type": "mg", "mg_coarse_ksp_type": "preonly", "mg_coarse_pc_type": "python", "mg_coarse_pc_python_type": "firedrake.AssembledPC", "mg_coarse_assembled_pc_type": "lu", "mg_coarse_assembled_pc_factor_mat_solver_type": "mumps", "mg_levels_ksp_type": "richardson", "mg_levels_ksp_max_it": 1, "mg_levels_ksp_richardson_scale": 1/3, "mg_levels_pc_type": "python", "mg_levels_pc_python_type": "__main__.Shifted", "mg_levels_aux_pc_type": "python", "mg_levels_aux_pc_python_type": "firedrake.PatchPC", "mg_levels_aux_patch_pc_patch_save_operators": True, "mg_levels_aux_patch_pc_patch_partition_of_unity": False, "mg_levels_aux_patch_pc_patch_sub_mat_type": "seqaij", "mg_levels_aux_patch_pc_patch_construct_type": "star", "mg_levels_aux_patch_pc_patch_multiplicative": False, "mg_levels_aux_patch_pc_patch_symmetrise_sweep": False, "mg_levels_aux_patch_pc_patch_construct_dim": 0, "mg_levels_aux_patch_sub_ksp_type": "preonly", "mg_levels_aux_patch_sub_pc_type": "lu"} causes the message at the bottom of this email (below which is my Shifted class). What am I doing wrong? all the best --cjc Traceback (most recent call last): File "libpetsc4py/libpetsc4py.pyx", line 1343, in libpetsc4py.PCApply_Python File "/Users/colincotter/firedrake/src/firedrake/firedrake/preconditioners/assembled.py", line 114, in apply push_appctx(dm, self._ctx_ref) AttributeError: 'Shifted' object has no attribute '_ctx_ref' The above exception was the direct cause of the following exception: SystemError: <built-in method insert of list object at 0x1125f5548> returned a result with an error set Exception ignored in: 'petsc4py.PETSc.traceback' SystemError: <built-in method insert of list object at 0x1125f5548> returned a result with an error set class Shifted(AuxiliaryOperatorPC): def form(self, pc, test, trial): ur, ui = split(trial) vr, vi = split(test) hrP = tau*H/(arP**2 + aiP**2)*(arP*div(ur) + aiP*div(ui)) hiP = tau*H/(arP**2 + aiP**2)*(-aiP*div(ur) + arP*div(ui)) aP = ( inner(arP*ur,vr) - inner(aiP*ui, vr) - tau*inner(f*perp(ur),vr) + tau*g*inner(hr,div(vr)) + inner(arP*ui,vi) + inner(aiP*ur, vi) - tau*inner(f*perp(ui),vi) + tau*g*inner(hi,div(vi)) )*dx bcs = None return (aP, bcs)
OK folks, It turned out that this wasn't actually the primary error but a subsequent one (debugging Python inside C inside Python requires more care). It looks like the primary error is that AssembledPC needs to handle the bcs=None case better - I'll look into it. cheers --cjc ________________________________ From: Cotter, Colin J Sent: 31 May 2019 12:53:35 To: firedrake Subject: using AuxiliaryOperatorPC in MG Hi folks, The following set of options: ap_mg_params = {"mat_type": "matfree", "snes_type": "ksponly", "ksp_type": "gmres", "ksp_rtol": 1.0e-8, "ksp_atol": 0.0, "ksp_max_it": 1000, "ksp_monitor": None, "ksp_converged_reason": None, "ksp_norm_type": "unpreconditioned", "pc_type": "mg", "mg_coarse_ksp_type": "preonly", "mg_coarse_pc_type": "python", "mg_coarse_pc_python_type": "firedrake.AssembledPC", "mg_coarse_assembled_pc_type": "lu", "mg_coarse_assembled_pc_factor_mat_solver_type": "mumps", "mg_levels_ksp_type": "richardson", "mg_levels_ksp_max_it": 1, "mg_levels_ksp_richardson_scale": 1/3, "mg_levels_pc_type": "python", "mg_levels_pc_python_type": "__main__.Shifted", "mg_levels_aux_pc_type": "python", "mg_levels_aux_pc_python_type": "firedrake.PatchPC", "mg_levels_aux_patch_pc_patch_save_operators": True, "mg_levels_aux_patch_pc_patch_partition_of_unity": False, "mg_levels_aux_patch_pc_patch_sub_mat_type": "seqaij", "mg_levels_aux_patch_pc_patch_construct_type": "star", "mg_levels_aux_patch_pc_patch_multiplicative": False, "mg_levels_aux_patch_pc_patch_symmetrise_sweep": False, "mg_levels_aux_patch_pc_patch_construct_dim": 0, "mg_levels_aux_patch_sub_ksp_type": "preonly", "mg_levels_aux_patch_sub_pc_type": "lu"} causes the message at the bottom of this email (below which is my Shifted class). What am I doing wrong? all the best --cjc Traceback (most recent call last): File "libpetsc4py/libpetsc4py.pyx", line 1343, in libpetsc4py.PCApply_Python File "/Users/colincotter/firedrake/src/firedrake/firedrake/preconditioners/assembled.py", line 114, in apply push_appctx(dm, self._ctx_ref) AttributeError: 'Shifted' object has no attribute '_ctx_ref' The above exception was the direct cause of the following exception: SystemError: <built-in method insert of list object at 0x1125f5548> returned a result with an error set Exception ignored in: 'petsc4py.PETSc.traceback' SystemError: <built-in method insert of list object at 0x1125f5548> returned a result with an error set class Shifted(AuxiliaryOperatorPC): def form(self, pc, test, trial): ur, ui = split(trial) vr, vi = split(test) hrP = tau*H/(arP**2 + aiP**2)*(arP*div(ur) + aiP*div(ui)) hiP = tau*H/(arP**2 + aiP**2)*(-aiP*div(ur) + arP*div(ui)) aP = ( inner(arP*ur,vr) - inner(aiP*ui, vr) - tau*inner(f*perp(ur),vr) + tau*g*inner(hr,div(vr)) + inner(arP*ui,vi) + inner(aiP*ur, vi) - tau*inner(f*perp(ui),vi) + tau*g*inner(hi,div(vi)) )*dx bcs = None return (aP, bcs)
participants (1)
- 
                
                Cotter, Colin J